From ecf42247c06486d1a8e1eeb85090bb517287556c Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 17 Jun 2026 09:58:11 -0400 Subject: [PATCH 1/2] feat(bigquery): add dynamic logging banner to nox mypy session --- packages/google-cloud-bigquery/noxfile.py | 25 ++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/google-cloud-bigquery/noxfile.py b/packages/google-cloud-bigquery/noxfile.py index c576870f9be9..c3e98a2c44dc 100644 --- a/packages/google-cloud-bigquery/noxfile.py +++ b/packages/google-cloud-bigquery/noxfile.py @@ -14,9 +14,11 @@ from __future__ import absolute_import +import contextlib from functools import wraps import os import pathlib +from typing import Generator import re import shutil import time @@ -80,6 +82,26 @@ def wrapper(*args, **kwargs): ] +@contextlib.contextmanager +def log_package_context(session: nox.Session) -> Generator[None, None, None]: + """Logs a highly visible package context banner right before a session exits. + + Ensures metadata is printed adjacent to Nox's final status log, + even if the session fails or raises an exception. + """ + # Dynamically extract current folder name (e.g., 'google-cloud-bigquery') + # Falls back to the root directory name if run from the repo root + package_name = os.path.basename(os.getcwd()) + + try: + # Hands control back to the session code block + yield + finally: + # This executes AFTER test output finishes, immediately above Nox's summary line + banner_text = f"Finished session for {package_name.lower()}" + session.log(banner_text) + + def default(session, install_extras=True): """Default unit test session. @@ -193,7 +215,8 @@ def mypy(session): "types-setuptools", ) session.run("python", "-m", "pip", "freeze") - session.run("mypy", "-p", "google", "--show-traceback") + with log_package_context(session): + session.run("mypy", "-p", "google", "--show-traceback") @nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS) From 042e991e0e5e41fdd95ec20c76373ffaf6640bc1 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 17 Jun 2026 10:38:12 -0400 Subject: [PATCH 2/2] style(bigquery): update package name derivation in log_package_context --- packages/google-cloud-bigquery/noxfile.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/google-cloud-bigquery/noxfile.py b/packages/google-cloud-bigquery/noxfile.py index c3e98a2c44dc..cfe3b60e0c51 100644 --- a/packages/google-cloud-bigquery/noxfile.py +++ b/packages/google-cloud-bigquery/noxfile.py @@ -90,8 +90,7 @@ def log_package_context(session: nox.Session) -> Generator[None, None, None]: even if the session fails or raises an exception. """ # Dynamically extract current folder name (e.g., 'google-cloud-bigquery') - # Falls back to the root directory name if run from the repo root - package_name = os.path.basename(os.getcwd()) + package_name = CURRENT_DIRECTORY.name try: # Hands control back to the session code block