===== pr-validator-mjhws-archive-logs-pod.log ===== [pod/pr-validator-mjhws-archive-logs-pod/prepare] 2026-07-12T17:00:27.550410671-05:00 2026/07/12 22:00:27 Entrypoint initialization [pod/pr-validator-mjhws-archive-logs-pod/place-scripts] 2026-07-12T17:00:27.787393952-05:00 2026/07/12 22:00:27 Decoded script /tekton/scripts/script-0-dgxnl [pod/pr-validator-mjhws-archive-logs-pod/place-scripts] 2026-07-12T17:00:27.807211680-05:00 2026/07/12 22:00:27 Decoded script /tekton/scripts/script-1-lnzzw [pod/pr-validator-mjhws-archive-logs-pod/step-collect-logs] 2026-07-12T17:00:32.257333431-05:00 ==> collecting pod logs for PipelineRun=pr-validator-mjhws ===== pr-validator-mjhws-check-container-pod.log ===== Error from server (BadRequest): container "prepare" in pod "pr-validator-mjhws-check-container-pod" is waiting to start: PodInitializing ===== pr-validator-mjhws-check-django-pod.log ===== [pod/pr-validator-mjhws-check-django-pod/prepare] 2026-07-12T17:00:31.490684470-05:00 2026/07/12 22:00:31 Entrypoint initialization Error from server (BadRequest): container "place-scripts" in pod "pr-validator-mjhws-check-django-pod" is waiting to start: PodInitializing ===== pr-validator-mjhws-check-infra-fmt-pod.log ===== [pod/pr-validator-mjhws-check-infra-fmt-pod/prepare] 2026-07-12T17:00:31.767990993-05:00 2026/07/12 22:00:31 Entrypoint initialization Error from server (BadRequest): container "place-scripts" in pod "pr-validator-mjhws-check-infra-fmt-pod" is waiting to start: PodInitializing ===== pr-validator-mjhws-check-lint-pod.log ===== Error from server (BadRequest): container "step-post-check" in pod "pr-validator-mjhws-check-lint-pod" is waiting to start: PodInitializing ===== pr-validator-mjhws-clone-pod.log ===== [pod/pr-validator-mjhws-clone-pod/prepare] 2026-07-12T16:59:55.729380524-05:00 2026/07/12 21:59:55 Entrypoint initialization [pod/pr-validator-mjhws-clone-pod/place-scripts] 2026-07-12T16:59:56.794991345-05:00 2026/07/12 21:59:56 Decoded script /tekton/scripts/script-0-2sflp [pod/pr-validator-mjhws-clone-pod/step-clone] 2026-07-12T17:00:02.159830384-05:00 From https://github.com/storeminder-ai/storeminder [pod/pr-validator-mjhws-clone-pod/step-clone] 2026-07-12T17:00:02.159851334-05:00 * branch 30507c1e6cb1b85d76fdd41ee0058b4fa2d4672c -> FETCH_HEAD [pod/pr-validator-mjhws-clone-pod/step-clone] 2026-07-12T17:00:02.193944707-05:00 Cloned 30507c1e6cb1b85d76fdd41ee0058b4fa2d4672c ===== pr-validator-mjhws-container-build-pod.log ===== [pod/pr-validator-mjhws-container-build-pod/prepare] 2026-07-12T17:00:07.410412223-05:00 2026/07/12 22:00:07 Entrypoint initialization [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.078572176-05:00 + INTERNAL_REGISTRY=storeminder-docker-registry.nexus.svc.cluster.local:5001 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.078607456-05:00 + BUILDER=storeminder-builder [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.078611836-05:00 + CONTEXT=/workspace/source/source/app [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.078615155-05:00 + DOCKERFILE=Dockerfile [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.078617945-05:00 + mkdir -p /tmp/buildkit [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.085915202-05:00 + cat [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.086770968-05:00 + docker buildx inspect storeminder-builder [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.132676806-05:00 + docker buildx create --name storeminder-builder --driver kubernetes --driver-opt 'namespace=tekton-pipelines,replicas=1' --config /tmp/buildkit/buildkitd.toml --bootstrap [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.945930936-05:00 storeminder-builder [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.951720519-05:00 + echo 'Dry-run building /workspace/source/source/app/Dockerfile on persistent BuildKit builder storeminder-builder (no push)...' [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.951747509-05:00 + docker buildx build --builder storeminder-builder --platform linux/amd64 -f /workspace/source/source/app/Dockerfile '--provenance=false' --output 'type=image,push=false' /workspace/source/source/app [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:12.951748839-05:00 Dry-run building /workspace/source/source/app/Dockerfile on persistent BuildKit builder storeminder-builder (no push)... [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:13.320661763-05:00 #0 building with "storeminder-builder" instance using kubernetes driver [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:13.320759223-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:13.320765613-05:00 #1 [internal] load build definition from Dockerfile [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:13.542303759-05:00 #1 transferring dockerfile: 1.24kB done [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:13.542330988-05:00 #1 DONE 0.1s [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:13.542335198-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:13.542340208-05:00 #2 [internal] load metadata for docker.io/library/python:3.12.7-slim [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.009842027-05:00 #2 DONE 0.6s [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.113868066-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.113898546-05:00 #3 [internal] load .dockerignore [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.113904685-05:00 #3 transferring context: 137B done [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.113909365-05:00 #3 DONE 0.1s [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.235944341-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.235976401-05:00 #4 [1/7] FROM docker.io/library/python:3.12.7-slim@sha256:60d9996b6a8a3689d36db740b49f4327be3be09a21122bd02fb8895abb38b50d [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.235983061-05:00 #4 resolve docker.io/library/python:3.12.7-slim@sha256:60d9996b6a8a3689d36db740b49f4327be3be09a21122bd02fb8895abb38b50d 0.0s done [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.235987541-05:00 #4 DONE 0.1s [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.235992111-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.235996921-05:00 #5 [internal] load build context [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.394156179-05:00 #5 transferring context: 32.69kB done [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.424528939-05:00 #5 DONE 0.3s [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525570442-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525600891-05:00 #6 [2/7] WORKDIR /app [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525606251-05:00 #6 CACHED [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525610231-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525615061-05:00 #7 [3/7] COPY requirements.txt . [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525619381-05:00 #7 CACHED [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525623101-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525628251-05:00 #8 [4/7] RUN pip install --no-cache-dir -r requirements.txt [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525633901-05:00 #8 CACHED [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525639661-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525645911-05:00 #9 [5/7] COPY . . [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525651961-05:00 #9 CACHED [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525657971-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525664841-05:00 #10 [6/7] RUN DJANGO_SECRET_KEY=build-time SM_DB_ENGINE=sqlite python manage.py collectstatic --noinput [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525671221-05:00 #10 CACHED [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525676741-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525695631-05:00 #11 [7/7] RUN useradd --system --uid 10001 appuser && chown -R appuser /app [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525723811-05:00 #11 CACHED [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525727331-05:00 [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525730761-05:00 #12 exporting to image [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525733741-05:00 #12 exporting layers done [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525736781-05:00 #12 exporting manifest sha256:f8cbd2d572a2fd0ad5ddfbcbde69c44d3bae2c890e711e4839f66b546c0a7854 0.1s done [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525740331-05:00 #12 exporting config sha256:10e5d9371f4f63a2dd5a790593df6503047be561b90169c0ebc4c82a7109b358 0.0s done [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.525743181-05:00 #12 DONE 0.1s [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.662700027-05:00 + echo '=== Dry-run build OK (Dockerfile builds; nothing pushed) ===' [pod/pr-validator-mjhws-container-build-pod/step-build-nopush] 2026-07-12T17:00:14.662719407-05:00 === Dry-run build OK (Dockerfile builds; nothing pushed) === ===== pr-validator-mjhws-django-pod.log ===== [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:11.667476666-05:00 Installing app deps (Django + psycopg + gunicorn + whitenoise)… [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:18.890657515-05:00 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning. [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:18.969827018-05:00 Waiting for the Postgres sidecar… [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:19.216670765-05:00 postgres ready [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:19.234600072-05:00 == manage.py check == [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:19.570238738-05:00 System check identified no issues (0 silenced). [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:19.623060044-05:00 == manage.py makemigrations --check --dry-run == [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:19.953432254-05:00 No changes detected [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.027331572-05:00 == manage.py test == [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.403186982-05:00 Creating test database for alias 'default' ('test_storeminder')... [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.500145303-05:00 Found 6 test(s). [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.500173513-05:00 Operations to perform: [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.500180343-05:00 Synchronize unmigrated apps: messages, staticfiles [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.500185873-05:00 Apply all migrations: admin, auth, contenttypes, sessions, stores [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.500190983-05:00 Synchronizing apps without migrations: [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.500195493-05:00 Creating tables... [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.500200612-05:00 Running deferred SQL... [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.500206602-05:00 Running migrations: [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.528080123-05:00 Applying contenttypes.0001_initial... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.711590394-05:00 Applying auth.0001_initial... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.744010814-05:00 Applying admin.0001_initial... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.752609154-05:00 Applying admin.0002_logentry_remove_auto_add... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.761092464-05:00 Applying admin.0003_logentry_add_action_flag_choices... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.774890380-05:00 Applying contenttypes.0002_remove_content_type_name... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.780767003-05:00 Applying auth.0002_alter_permission_name_max_length... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.786539217-05:00 Applying auth.0003_alter_user_email_max_length... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.793077356-05:00 Applying auth.0004_alter_user_username_opts... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.798656600-05:00 Applying auth.0005_alter_user_last_login_null... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.800313633-05:00 Applying auth.0006_require_contenttypes_0002... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.805770917-05:00 Applying auth.0007_alter_validators_add_error_messages... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.816307129-05:00 Applying auth.0008_alter_user_username_max_length... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.821396595-05:00 Applying auth.0009_alter_user_last_name_max_length... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.826779840-05:00 Applying auth.0010_alter_group_name_max_length... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.831517358-05:00 Applying auth.0011_update_proxy_permissions... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.836498985-05:00 Applying auth.0012_alter_user_first_name_max_length... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:20.858874962-05:00 Applying sessions.0001_initial... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.014685080-05:00 test_disconnect_sets_stopped (stores.tests.DisconnectActionTests.test_disconnect_sets_stopped) ... ok [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.272650595-05:00 test_notifies_owner_once (stores.tests.NotifyNewEnrollsTests.test_notifies_owner_once) ... ok [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.513975827-05:00 test_store_line_rows_are_ignored (stores.tests.NotifyNewEnrollsTests.test_store_line_rows_are_ignored) ... ok [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.528448120-05:00 test_inactive_store_404s (stores.tests.PublicProfileTests.test_inactive_store_404s) ... /usr/local/lib/python3.12/site-packages/django/core/handlers/base.py:61: UserWarning: No directory at: /workspace/source/source/app/staticfiles/ [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.528547550-05:00 mw_instance = middleware(adapted_handler) [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.535781587-05:00 ok [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.539900438-05:00 test_profile_renders_with_join_cta (stores.tests.PublicProfileTests.test_profile_renders_with_join_cta) ... ok [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.541880418-05:00 test_unknown_slug_404s (stores.tests.PublicProfileTests.test_unknown_slug_404s) ... ok [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.542404096-05:00 [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.542415496-05:00 ---------------------------------------------------------------------- [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.542419906-05:00 Ran 6 tests in 0.543s [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.542428966-05:00 [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.542432956-05:00 OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.542448716-05:00 Destroying test database for alias 'default' ('test_storeminder')... [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.657933671-05:00 Applying stores.0001_initial... OK [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.658029060-05:00 System check identified no issues (0 silenced). [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.658036860-05:00 new enroll: ••••••••0000 → Fastime (owner=owner@example.com, status=pending) [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.658042770-05:00 processed 1 new enroll(s), recorded 1. [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.658047450-05:00 processed 0 new enroll(s), recorded 0. [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.658052030-05:00 processed 0 new enroll(s), recorded 0. [pod/pr-validator-mjhws-django-pod/step-django-ci] 2026-07-12T17:00:21.718560580-05:00 === django-ci OK (check + migrations + tests green on Postgres) === [pod/pr-validator-mjhws-django-pod/sidecar-postgres] 2026-07-12T17:00:23.643234773-05:00 2026/07/12 22:00:23 Exiting... [pod/pr-validator-mjhws-django-pod/prepare] 2026-07-12T17:00:04.324897906-05:00 2026/07/12 22:00:04 Entrypoint initialization [pod/pr-validator-mjhws-django-pod/place-scripts] 2026-07-12T17:00:05.357945228-05:00 2026/07/12 22:00:05 Decoded script /tekton/scripts/script-0-mxtcr ===== pr-validator-mjhws-infra-fmt-pod.log ===== [pod/pr-validator-mjhws-infra-fmt-pod/prepare] 2026-07-12T17:00:07.549038123-05:00 2026/07/12 22:00:07 Entrypoint initialization [pod/pr-validator-mjhws-infra-fmt-pod/place-scripts] 2026-07-12T17:00:08.652946524-05:00 2026/07/12 22:00:08 Decoded script /tekton/scripts/script-0-thrbm [pod/pr-validator-mjhws-infra-fmt-pod/step-fmt-check] 2026-07-12T17:00:13.504525663-05:00 Checking canonical format of infra/ (tofu fmt -check -recursive)… [pod/pr-validator-mjhws-infra-fmt-pod/step-fmt-check] 2026-07-12T17:00:13.656047503-05:00 === infra/ is canonically formatted === ===== pr-validator-mjhws-lint-pod.log ===== [pod/pr-validator-mjhws-lint-pod/prepare] 2026-07-12T17:00:04.865114503-05:00 2026/07/12 22:00:04 Entrypoint initialization [pod/pr-validator-mjhws-lint-pod/place-scripts] 2026-07-12T17:00:05.352857692-05:00 2026/07/12 22:00:05 Decoded script /tekton/scripts/script-0-kn72r [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:11.672230884-05:00 Installing ruff==0.8.6 mypy==1.14.1 (+ lib runtime deps for mypy import resolution)… [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.484966773-05:00 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.578892928-05:00 == ruff check . == [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600374799-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:2:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600436559-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600442309-05:00 1 | # Force reload so updated .py files are always picked up (avoids stale .pyc cache) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600446159-05:00 2 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600449449-05:00 | ^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600452659-05:00 3 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600455799-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600458779-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600461999-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600464889-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600468049-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600473419-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600476578-05:00 1 | # Force reload so updated .py files are always picked up (avoids stale .pyc cache) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600479778-05:00 2 | / import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600482788-05:00 3 | | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600488178-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600491268-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600494548-05:00 5 | importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600497618-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600500638-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600503558-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600516208-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:8:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600519308-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600522308-05:00 6 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600525388-05:00 7 | pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600528768-05:00 8 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600531818-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600534798-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600538198-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600541928-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600546028-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600550638-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:8:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600555048-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600559648-05:00 6 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600564018-05:00 7 | pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600567068-05:00 8 | / from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600570028-05:00 9 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600573018-05:00 10 | | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600576008-05:00 11 | | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600579078-05:00 12 | | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600582038-05:00 13 | | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600585008-05:00 14 | | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600588098-05:00 15 | | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600597438-05:00 16 | | warnings.filterwarnings("ignore") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600599638-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600601778-05:00 17 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600603818-05:00 18 | os.environ["AI_PROVIDER"] = AI_PROVIDER [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600605888-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600607878-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600609838-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600611938-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:10:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600613958-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600616008-05:00 8 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600618008-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600620098-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600622168-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600624188-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600626188-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600628168-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600630198-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600632128-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600634238-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:10:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600636298-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600638308-05:00 8 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600640328-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600642348-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600644348-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600646348-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600648358-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600650398-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600652348-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600654338-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:10:17: F401 [*] `json` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600656348-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600658358-05:00 8 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600660398-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600662458-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600664448-05:00 | ^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600666458-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600668448-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600670438-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600672538-05:00 = help: Remove unused import: `json` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600674508-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600676508-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:11:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600678518-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600680528-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600682558-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600684588-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600686607-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600688597-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600690597-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600692527-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600694517-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:12:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600696517-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600698537-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600701027-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600704237-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600707407-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600715967-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600719357-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600721777-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600723727-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600725887-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:13:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600727917-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600729937-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600731957-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600733957-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600735947-05:00 | ^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600737987-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600740007-05:00 15 | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600742087-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600744037-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600746097-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:14:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600748117-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600750117-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600752127-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600754107-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600756087-05:00 | ^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600758117-05:00 15 | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600760167-05:00 16 | warnings.filterwarnings("ignore") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600762167-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600764117-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600766237-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:14:17: F401 [*] `numpy` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600768307-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600770307-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600784387-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600786697-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600788677-05:00 | ^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600790677-05:00 15 | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600793297-05:00 16 | warnings.filterwarnings("ignore") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600795297-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600797317-05:00 = help: Remove unused import: `numpy` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600799257-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600801387-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:15:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600803467-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600805557-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600807547-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600809627-05:00 15 | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600811637-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600813647-05:00 16 | warnings.filterwarnings("ignore") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600815647-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600817597-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600819647-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:33:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600821677-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600823697-05:00 31 | raise SystemExit [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600825737-05:00 32 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600827747-05:00 33 | from config import config [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600829757-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600831747-05:00 34 | config.AI_PROVIDER = AI_PROVIDER [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600833767-05:00 35 | config.VERTEX_SA_FILE = VERTEX_SA_FILE [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600835777-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600842417-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600844497-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:33:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600846547-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600848557-05:00 31 | raise SystemExit [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600850567-05:00 32 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600852587-05:00 33 | / from config import config [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600854607-05:00 34 | | config.AI_PROVIDER = AI_PROVIDER [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600856627-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600858617-05:00 35 | config.VERTEX_SA_FILE = VERTEX_SA_FILE [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600860607-05:00 36 | config.GOOGLE_PLACES_API_KEY = GOOGLE_PLACES_API_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600862597-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600864597-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600866537-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600868907-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:38:13: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600872027-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600875377-05:00 36 | config.GOOGLE_PLACES_API_KEY = GOOGLE_PLACES_API_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600878817-05:00 37 | config.STORE_PLACE_ID = STORE_PLACE_ID [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600881887-05:00 38 | if STORE_LAT: config.STORE_LAT = STORE_LAT [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600885087-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600888147-05:00 39 | if STORE_LON: config.STORE_LON = STORE_LON [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600890577-05:00 40 | if ANTHROPIC_KEY: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600892857-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600894837-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600896927-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:39:13: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600898916-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600900976-05:00 37 | config.STORE_PLACE_ID = STORE_PLACE_ID [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600902966-05:00 38 | if STORE_LAT: config.STORE_LAT = STORE_LAT [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600905006-05:00 39 | if STORE_LON: config.STORE_LON = STORE_LON [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600907006-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600909006-05:00 40 | if ANTHROPIC_KEY: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600911106-05:00 41 | config.ANTHROPIC_API_KEY = ANTHROPIC_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600913116-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600915046-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600921076-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:43:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600925036-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600927186-05:00 41 | config.ANTHROPIC_API_KEY = ANTHROPIC_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600929196-05:00 42 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600931786-05:00 43 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600933876-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600936006-05:00 44 | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600938086-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600940086-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600942026-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600944156-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:43:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600946156-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600948246-05:00 41 | config.ANTHROPIC_API_KEY = ANTHROPIC_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600950306-05:00 42 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600952356-05:00 43 | / from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600954416-05:00 44 | | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600956456-05:00 45 | | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600962576-05:00 46 | | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600964686-05:00 47 | | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600967376-05:00 48 | | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600969366-05:00 49 | | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600971396-05:00 50 | | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600973396-05:00 51 | | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600975576-05:00 52 | | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600977606-05:00 53 | | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600979616-05:00 54 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600981626-05:00 55 | | loader = DataLoader() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600983696-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600985716-05:00 56 | preprocessor = DataPreprocessor() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600988286-05:00 57 | # Use absolute path relative to notebook so DB is always in the same place [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600990286-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600992306-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600994256-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600996516-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:44:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.600998536-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601000546-05:00 43 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601002566-05:00 44 | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601004606-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601006586-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601008626-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601010986-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601013906-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601016966-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:45:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601019986-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601023206-05:00 43 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601030756-05:00 44 | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601033866-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601036766-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601038856-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601040936-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601042946-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601044896-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601049116-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:46:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601051206-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601053296-05:00 44 | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601055296-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601057316-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601060526-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601062606-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601064686-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601066796-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601072716-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601074846-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:47:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601076896-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601078926-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601081006-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601083086-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601085066-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601087116-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601089196-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601091196-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601093136-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601095156-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:48:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601097166-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601099186-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601101296-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601103346-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601105376-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601107366-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601109376-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601111436-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601113396-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601115406-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:49:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601117446-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601119485-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601121495-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601123485-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601125515-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601127645-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601129675-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601131675-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601133635-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601137035-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:50:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601139075-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601141115-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601143115-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601145195-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601147225-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601149245-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601151295-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601153355-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601155305-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601157725-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:50:40: F401 [*] `agents.router_agent.RouterAgent` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601159755-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601161795-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601167245-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601169345-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601203925-05:00 | ^^^^^^^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601207235-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601210305-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601213305-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601216355-05:00 = help: Remove unused import [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601219305-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601222405-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:50:53: F401 [*] `agents.router_agent.FocusedQueryAgent` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601225975-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601229035-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601232055-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601236815-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601240385-05:00 | ^^^^^^^^^^^^^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601250615-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601254095-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601257235-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601261055-05:00 = help: Remove unused import [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601264035-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601267135-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:51:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601270155-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601273245-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601276525-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601282575-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601286255-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601289275-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601292385-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601295405-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601298335-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601301405-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:52:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601304375-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601307365-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601310435-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601313465-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601316505-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601319485-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601322505-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601325425-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601328465-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:52:40: F401 [*] `crew.run_pipeline` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601331425-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601335475-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601340135-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601344704-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601355344-05:00 | ^^^^^^^^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601357484-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601359484-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601361594-05:00 = help: Remove unused import: `crew.run_pipeline` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601363534-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601365504-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:53:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601367484-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601369584-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601371604-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601373594-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601375584-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601377594-05:00 54 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601379624-05:00 55 | loader = DataLoader() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601381644-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601383594-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601386014-05:00 notebooks/archive/report_generator_v3.ipynb:cell 5:53:43: F811 [*] Redefinition of unused `ExternalContextAgent` from cell 5, line 8 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601388014-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601390094-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601392104-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601394174-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601396184-05:00 | ^^^^^^^^^^^^^^^^^^^^ F811 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601398184-05:00 54 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601400214-05:00 55 | loader = DataLoader() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601402274-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601404294-05:00 = help: Remove definition: `ExternalContextAgent` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601406254-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601408324-05:00 notebooks/archive/report_generator_v3.ipynb:cell 7:13:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601410324-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601412394-05:00 11 | print(f" Scan rows : {len(scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601414404-05:00 12 | print(f" Trans rows : {len(trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601417174-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601419294-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601421344-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601423414-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601425444-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601427384-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601429424-05:00 notebooks/archive/report_generator_v3.ipynb:cell 7:14:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601431454-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601433484-05:00 12 | print(f" Trans rows : {len(trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601435524-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601437534-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601439544-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601441564-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601446954-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601448934-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601450924-05:00 notebooks/archive/report_generator_v3.ipynb:cell 7:15:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601452904-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601454954-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601457014-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601458994-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601461004-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601463014-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601464944-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601467554-05:00 notebooks/archive/report_generator_v3.ipynb:cell 19:48:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601470444-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601472524-05:00 46 | print("Using CSV/NAXML seeding path") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601474564-05:00 47 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601476604-05:00 48 | import pandas as _pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601478654-05:00 | ^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601480674-05:00 49 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601482714-05:00 50 | print("Seeding historical baseline from current files...") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601484734-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601486654-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601488664-05:00 notebooks/archive/report_generator_v3.ipynb:cell 19:54:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601490654-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601492724-05:00 53 | # Delete existing snapshots for this store so broken old values don't persist [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601494734-05:00 54 | import sqlite3 as _sqlite3 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601496804-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601501654-05:00 55 | _db_str = str(_db_path) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601503754-05:00 56 | with _sqlite3.connect(_db_str) as _conn: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601505804-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601507754-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601509814-05:00 notebooks/archive/report_generator_v3.ipynb:cell 19:54:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601511814-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601513864-05:00 53 | # Delete existing snapshots for this store so broken old values don't persist [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601516284-05:00 54 | / import sqlite3 as _sqlite3 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601518334-05:00 55 | | _db_str = str(_db_path) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601520364-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601522454-05:00 56 | with _sqlite3.connect(_db_str) as _conn: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601524464-05:00 57 | _existing = _conn.execute( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601526594-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601528614-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601530564-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601532624-05:00 notebooks/archive/report_generator_v3.ipynb:cell 19:131:121: E501 Line too long (186 > 120) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601534624-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601536854-05:00 129 | _famts = pd.to_numeric(_fuel[_scan_amt], errors='coerce').fillna(0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601538954-05:00 130 | kpis['fuel_sales'] = round(float(_famts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601543664-05:00 131 | kpis['avg_fuel_ticket'] = round(kpis['fuel_sales'] / kpis['fuel_transactions'], 2) if kpis['fuel_transactions'] else 0.0 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601546464-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601551904-05:00 132 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601553954-05:00 133 | if _scan_amt: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601555954-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601557904-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601560004-05:00 notebooks/archive/report_generator_v3.ipynb:cell 19:181:34: F401 [*] `datetime.date` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601562083-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601564093-05:00 179 | print("\n=== Store Baseline Profile ===") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601566203-05:00 180 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601568223-05:00 181 | from datetime import date as _date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601570323-05:00 | ^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601572343-05:00 182 | _dow_profile = history_db.get_dow_profile(STORE_ID, report_date, weeks_back=52) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601574863-05:00 183 | _rolling = history_db.get_rolling_average(STORE_ID, report_date, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601577053-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601579193-05:00 = help: Remove unused import: `datetime.date` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601581123-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601583243-05:00 notebooks/archive/report_generator_v3.ipynb:cell 19:240:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601585243-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601587333-05:00 238 | if _b_fuel < 100 or _b_rev < 1000: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601589383-05:00 239 | print(f"⚠ WARNING: Baseline looks wrong — fuel={_b_fuel:.0f} gal, total=${_b_rev:.0f}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601591453-05:00 240 | print(f" This usually means Cell 7b was seeded with broken data.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601593513-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601595663-05:00 241 | print(f" ACTION: Set MERCURYONE_FILE in Cell 1 and re-run Cell 7b to reseed.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601597673-05:00 242 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601599683-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601601753-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601603703-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601605793-05:00 notebooks/archive/report_generator_v3.ipynb:cell 19:241:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601607793-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601611253-05:00 239 | print(f"⚠ WARNING: Baseline looks wrong — fuel={_b_fuel:.0f} gal, total=${_b_rev:.0f}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601614503-05:00 240 | print(f" This usually means Cell 7b was seeded with broken data.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601617543-05:00 241 | print(f" ACTION: Set MERCURYONE_FILE in Cell 1 and re-run Cell 7b to reseed.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601620723-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601623923-05:00 242 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601627513-05:00 243 | print(f"✓ Baseline quality OK — fuel={_b_fuel:,.0f} gal, inside=${_b_ins:,.0f}, total=${_b_rev:,.0f}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601630303-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601633223-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601635163-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601637183-05:00 notebooks/archive/report_generator_v3.ipynb:cell 21:24:25: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601639183-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601641313-05:00 23 | def color_sev(val): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601643323-05:00 24 | if val == 'HIGH': return 'background-color:#fed7d7;color:#c53030;font-weight:bold' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601645413-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601647453-05:00 25 | if val == 'MEDIUM': return 'background-color:#fefcbf;color:#744210' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601653233-05:00 26 | return '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601655353-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601657313-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601659373-05:00 notebooks/archive/report_generator_v3.ipynb:cell 21:25:27: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601661383-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601663403-05:00 23 | def color_sev(val): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601665543-05:00 24 | if val == 'HIGH': return 'background-color:#fed7d7;color:#c53030;font-weight:bold' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601667573-05:00 25 | if val == 'MEDIUM': return 'background-color:#fefcbf;color:#744210' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601669583-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601671613-05:00 26 | return '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601673653-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601675603-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601677613-05:00 notebooks/archive/report_generator_v3.ipynb:cell 23:6:59: UP032 [*] Use f-string instead of `format` call [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601679653-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601681963-05:00 4 | top_df.index = range(1, len(top_df) + 1) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601683993-05:00 5 | top_df.index.name = 'Rank' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601686013-05:00 6 | top_df['revenue'] = top_df['revenue'].apply(lambda x: '${:,.2f}'.format(x)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601688053-05:00 | ^^^^^^^^^^^^^^^^^^^^ UP032 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601692613-05:00 7 | display(top_df) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601694673-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601696733-05:00 = help: Convert to f-string [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601698673-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601701753-05:00 notebooks/archive/report_generator_v3.ipynb:cell 25:15:15: UP032 [*] Use f-string instead of `format` call [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601703773-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601705803-05:00 13 | bar = 'X' * int(n / max_tx * 35) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601707913-05:00 14 | low = ' <- LOW' if n < max_tx * 0.25 else '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601709933-05:00 15 | print(' {:02d}:00 {:<35} {:>3}{}'.format(h, bar, n, low)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601711993-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP032 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601713993-05:00 16 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601716013-05:00 17 | gaps = trans_summary.get('top_hourly_gaps', []) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601718013-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601720053-05:00 = help: Convert to f-string [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601722003-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601724113-05:00 notebooks/archive/report_generator_v3.ipynb:cell 29:2:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601726123-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601728143-05:00 1 | # Force reload in case file was updated [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601730133-05:00 2 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601732143-05:00 | ^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601734233-05:00 3 | for mod_name in [m for m in list(sys.modules.keys()) if 'fuel_pricing' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601736293-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601738293-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601740333-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601742273-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601744353-05:00 notebooks/archive/report_generator_v3.ipynb:cell 29:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601746343-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601748363-05:00 1 | # Force reload in case file was updated [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601750473-05:00 2 | / import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601752553-05:00 3 | | for mod_name in [m for m in list(sys.modules.keys()) if 'fuel_pricing' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601757993-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601760153-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601762173-05:00 5 | importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601764163-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601766173-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601768163-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601770223-05:00 notebooks/archive/report_generator_v3.ipynb:cell 29:8:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601772323-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601774343-05:00 6 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601776403-05:00 7 | pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601779193-05:00 8 | from agents.fuel_pricing_agent import FuelPricingAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601782443-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601785532-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601788652-05:00 10 | # Your own current fuel price — set manually or leave None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601791642-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601794532-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601797232-05:00 notebooks/archive/report_generator_v3.ipynb:cell 33:39:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601799312-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601801322-05:00 38 | print() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601803442-05:00 39 | from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601805462-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601807542-05:00 40 | display(Markdown(external_section)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601809522-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601811442-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601813522-05:00 notebooks/archive/report_generator_v3.ipynb:cell 33:39:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601815542-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601817532-05:00 38 | print() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601819542-05:00 39 | / from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601821552-05:00 40 | | display(Markdown(external_section)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601823562-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601825552-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601827562-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601829492-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601831622-05:00 notebooks/archive/report_generator_v3.ipynb:cell 37:9:61: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601834532-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601836592-05:00 7 | # Save KPI snapshot — rebuild to ensure post-merge fuel AND scan metrics included [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601838642-05:00 8 | today_kpis = {**trans_summary, **scan_summary} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601840722-05:00 9 | snapshot_kpis = {k: v for k, v in today_kpis.items() if isinstance(v, (int, float))} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601842742-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601844772-05:00 10 | # Explicitly add scan-sourced inside-sales metrics [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601846802-05:00 11 | for _k in ('total_sales', 'avg_item_price'): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601848832-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601850872-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601852802-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601854852-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:5:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601856872-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601859362-05:00 3 | # input file contains 3+ days). Can also be run manually for any multi-day file. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601861362-05:00 4 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601863392-05:00 5 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601869222-05:00 | ^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601871342-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601873432-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601875452-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601877522-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601879452-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601881512-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:5:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601883612-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601885742-05:00 3 | # input file contains 3+ days). Can also be run manually for any multi-day file. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601887822-05:00 4 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601889842-05:00 5 | / import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601891822-05:00 6 | | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601893842-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601895842-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601897922-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601899932-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601902002-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601903952-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601906012-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:7:8: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601908032-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601910042-05:00 5 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601912072-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601914082-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601916782-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601957772-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601960002-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601961952-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601964102-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:8:21: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601966172-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601972582-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601975912-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601979092-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601982212-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601985202-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601988422-05:00 10 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601991662-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601994722-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.601997832-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:10:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602000841-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602004061-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602006581-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602008721-05:00 10 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602011411-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602013481-05:00 11 | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602015511-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602017521-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602019471-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602021561-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:10:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602023661-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602030261-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602032331-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602034341-05:00 10 | / from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602036391-05:00 11 | | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602038471-05:00 12 | | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602040641-05:00 13 | | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602042681-05:00 14 | | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602046591-05:00 15 | | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602048651-05:00 16 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602050771-05:00 17 | | if report_type != "weekly": [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602052801-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602054851-05:00 18 | print(f"ℹ report_type='{report_type}' — this cell is for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602056961-05:00 19 | print(f" Input file has {_n_dates} day(s). Need ≥3 days for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602058991-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602061031-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602062991-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602065001-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:11:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602067011-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602069091-05:00 10 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602071121-05:00 11 | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602073151-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602075151-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602077181-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602079161-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602081111-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602083531-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:12:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602085531-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602087571-05:00 10 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602089761-05:00 11 | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602091781-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602093901-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602095911-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602097961-05:00 14 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602099971-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602101931-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602103991-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:13:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602106001-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602108011-05:00 11 | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602110051-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602112051-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602114051-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602116051-05:00 14 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602118041-05:00 15 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602123441-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602125421-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602127481-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:14:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602129531-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602131561-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602133571-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602135581-05:00 14 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602137581-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602139571-05:00 15 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602142061-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602144841-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602148011-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:15:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602151191-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602154321-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602157501-05:00 14 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602160481-05:00 15 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602163741-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602165841-05:00 16 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602167871-05:00 17 | if report_type != "weekly": [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602169931-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602171851-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602173911-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:20:11: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602175911-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602181031-05:00 18 | print(f"ℹ report_type='{report_type}' — this cell is for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602183181-05:00 19 | print(f" Input file has {_n_dates} day(s). Need ≥3 days for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602185251-05:00 20 | print(f" To force weekly: set report_type='weekly' before Cell 14.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602187291-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602189341-05:00 21 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602191391-05:00 22 | print(f"Weekly Deep Dive: {_date_start} → {_date_end} ({_n_dates} days)") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602193461-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602195531-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602197481-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602199541-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:109:24: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602201531-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602203551-05:00 107 | if _day_b: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602206331-05:00 108 | for k, v in _day_b.items(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602209051-05:00 109 | if isinstance(v, (int, float)): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602211191-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602213310-05:00 110 | _wb_accum[k] = _wb_accum.get(k, 0) + v [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602215450-05:00 111 | _wb_counts[k] = _wb_counts.get(k, 0) + 1 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602217480-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602219510-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602221470-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602223500-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:118:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602231460-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602233540-05:00 116 | weekly_baseline = dict(_wb_accum) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602235630-05:00 117 | weekly_baseline['sample_count'] = _n_dates [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602237730-05:00 118 | print(f" Weekly baseline (summed per-DOW):") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602239780-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602241840-05:00 119 | for _k in ['total_revenue','fuel_gallons','total_sales']: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602243870-05:00 120 | if _k in weekly_baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602245870-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602247970-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602249910-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602251960-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:124:47: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602253970-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602256000-05:00 122 | elif baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602258020-05:00 123 | # Fallback: flat multiply (less accurate but better than nothing) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602260080-05:00 124 | weekly_baseline = {k: v * _n_dates if isinstance(v, (int, float)) else v [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602262100-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602264130-05:00 125 | for k, v in baseline.items()} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602266150-05:00 126 | weekly_baseline['sample_count'] = _n_dates [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602268170-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602270200-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602272140-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602274180-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:133:121: E501 Line too long (129 > 120) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602276230-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602278320-05:00 131 | _worst = min(weekly_days, key=lambda x: x['total_revenue']) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602280350-05:00 132 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602284360-05:00 133 | print(f"Week total: {_week_fuel_gal:,.0f} gal | ${_week_inside:,.0f} inside | ${_week_revenue:,.0f} total | {_week_tx:,} tx") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602286450-05:00 | ^^^^^^^^^ E501 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602288540-05:00 134 | print(f"Best day: {_best['dow_name']} (${_best['total_revenue']:,.0f})") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602290610-05:00 135 | print(f"Worst day: {_worst['dow_name']} (${_worst['total_revenue']:,.0f})") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602292610-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602294550-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602296530-05:00 notebooks/archive/report_generator_v3.ipynb:cell 40:206:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602298530-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602300600-05:00 204 | print("=" * 60) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602302600-05:00 205 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602304600-05:00 206 | / from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602306620-05:00 207 | | display(Markdown(weekly_report.split('---SMS---')[0])) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602308660-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602310670-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602312680-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602314620-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602316590-05:00 notebooks/archive/report_generator_v4.ipynb:cell 3:1:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602318630-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602320660-05:00 1 | import sys, os [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602322680-05:00 | ^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602339430-05:00 2 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602343120-05:00 3 | # ── Suppress __pycache__ creation ──────────────────────────────────────────── [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602346370-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602349510-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602351730-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602353830-05:00 notebooks/archive/report_generator_v4.ipynb:cell 3:1:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602355880-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602357890-05:00 1 | / import sys, os [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602359980-05:00 2 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602362280-05:00 3 | | # ── Suppress __pycache__ creation ──────────────────────────────────────────── [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602364300-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602366440-05:00 4 | sys.dont_write_bytecode = True [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602368450-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602370440-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602372380-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602374490-05:00 notebooks/archive/report_generator_v4.ipynb:cell 3:10:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602376500-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602378610-05:00 8 | os.getcwd(), 'data', 'history.db') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602380700-05:00 9 | # Resolve relative to notebook location [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602382730-05:00 10 | import pathlib [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602384740-05:00 | ^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602386860-05:00 11 | _db_path = pathlib.Path('.').resolve() / 'data' / 'history.db' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602399300-05:00 12 | if _db_path.exists(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602409320-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602412520-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602419970-05:00 notebooks/archive/report_generator_v4.ipynb:cell 3:10:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602422570-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602425339-05:00 8 | os.getcwd(), 'data', 'history.db') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602428159-05:00 9 | # Resolve relative to notebook location [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602432539-05:00 10 | / import pathlib [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602435469-05:00 11 | | _db_path = pathlib.Path('.').resolve() / 'data' / 'history.db' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602438289-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602440749-05:00 12 | if _db_path.exists(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602443209-05:00 13 | _db_path.unlink() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602445769-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602448299-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602450629-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602453139-05:00 notebooks/archive/report_generator_v4.ipynb:cell 3:16:11: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602455629-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602458129-05:00 14 | print(f"✓ Cleared history DB: {_db_path}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602460649-05:00 15 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602463639-05:00 16 | print(f"✓ No existing history DB to clear") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602466129-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602468589-05:00 17 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602471569-05:00 18 | # ═══════════════════════════════════════════════════════════════════════════════ [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602474719-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602477329-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602479749-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602483139-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:2:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602493509-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602496109-05:00 1 | # Force reload so updated .py files are always picked up (avoids stale .pyc cache) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602498639-05:00 2 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602501089-05:00 | ^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602503559-05:00 3 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602506019-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602508469-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602510929-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602513289-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602515769-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602518209-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602520679-05:00 1 | # Force reload so updated .py files are always picked up (avoids stale .pyc cache) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602523129-05:00 2 | / import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602525619-05:00 3 | | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602528089-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602530509-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602533809-05:00 5 | importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602536309-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602538739-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602541099-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602543679-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:8:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602546309-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602548789-05:00 6 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602551229-05:00 7 | pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602553819-05:00 8 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602556349-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602558799-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602561249-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602563699-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602566049-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602568539-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:8:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602570949-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602573369-05:00 6 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602575769-05:00 7 | pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602578189-05:00 8 | / from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602580569-05:00 9 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602582989-05:00 10 | | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602585439-05:00 11 | | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602587899-05:00 12 | | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602590339-05:00 13 | | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602592759-05:00 14 | | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602595359-05:00 15 | | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602597889-05:00 16 | | warnings.filterwarnings("ignore") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602600339-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602602739-05:00 17 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602605209-05:00 18 | os.environ["AI_PROVIDER"] = AI_PROVIDER [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602607649-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602610059-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602612399-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602614859-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:10:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602621789-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602624289-05:00 8 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602626759-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602629209-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602631639-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602634089-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602636638-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602639068-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602641518-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602643868-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602646368-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:10:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602648768-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602651208-05:00 8 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602653648-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602656618-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602659108-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602661538-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602663958-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602666358-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602668688-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602671168-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:10:17: F401 [*] `json` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602673588-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602676118-05:00 8 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602678558-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602680988-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602683408-05:00 | ^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602685808-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602688268-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602690738-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602693188-05:00 = help: Remove unused import: `json` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602695528-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602697938-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:11:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602700348-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602703388-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602705828-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602708338-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602710798-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602713258-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602715678-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602718008-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602723258-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:12:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602725838-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602728288-05:00 10 | import os, sys, json, warnings [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602730798-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602733258-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602735678-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602738098-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602740478-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602742848-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602745198-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602747648-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:13:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602750098-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602752518-05:00 11 | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602754928-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602761438-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602763888-05:00 | ^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602767258-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602769808-05:00 15 | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602772298-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602774778-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602777348-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:14:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602779888-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602782398-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602784798-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602787228-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602789628-05:00 | ^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602792048-05:00 15 | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602794518-05:00 16 | warnings.filterwarnings("ignore") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602796918-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602799308-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602801728-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:14:17: F401 [*] `numpy` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602804158-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602806588-05:00 12 | from datetime import date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602809008-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602811418-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602813838-05:00 | ^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602816268-05:00 15 | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602818718-05:00 16 | warnings.filterwarnings("ignore") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602821158-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602823598-05:00 = help: Remove unused import: `numpy` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602825928-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602828398-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:15:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602830848-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602833298-05:00 13 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602835728-05:00 14 | import numpy as np [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602838218-05:00 15 | from IPython.display import display, Markdown, HTML [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602840658-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602843068-05:00 16 | warnings.filterwarnings("ignore") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602845498-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602848677-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602851157-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:33:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602853597-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602856017-05:00 31 | raise SystemExit [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602858537-05:00 32 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602861127-05:00 33 | from config import config [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602863627-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602866047-05:00 34 | config.AI_PROVIDER = AI_PROVIDER [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602868437-05:00 35 | config.VERTEX_SA_FILE = VERTEX_SA_FILE [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602870837-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602873227-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602875677-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:33:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602878087-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602880527-05:00 31 | raise SystemExit [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602882947-05:00 32 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602885367-05:00 33 | / from config import config [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602887777-05:00 34 | | config.AI_PROVIDER = AI_PROVIDER [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602890197-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602892677-05:00 35 | config.VERTEX_SA_FILE = VERTEX_SA_FILE [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602899137-05:00 36 | config.GOOGLE_PLACES_API_KEY = GOOGLE_PLACES_API_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602901627-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602904057-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602906387-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602908827-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:38:13: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602911237-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602913687-05:00 36 | config.GOOGLE_PLACES_API_KEY = GOOGLE_PLACES_API_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602916307-05:00 37 | config.STORE_PLACE_ID = STORE_PLACE_ID [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602924457-05:00 38 | if STORE_LAT: config.STORE_LAT = STORE_LAT [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602930287-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602932857-05:00 39 | if STORE_LON: config.STORE_LON = STORE_LON [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602935287-05:00 40 | if ANTHROPIC_KEY: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602937737-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602940077-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602942547-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:39:13: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602945027-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602947527-05:00 37 | config.STORE_PLACE_ID = STORE_PLACE_ID [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602950047-05:00 38 | if STORE_LAT: config.STORE_LAT = STORE_LAT [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602952477-05:00 39 | if STORE_LON: config.STORE_LON = STORE_LON [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602954887-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602957327-05:00 40 | if ANTHROPIC_KEY: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602959767-05:00 41 | config.ANTHROPIC_API_KEY = ANTHROPIC_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602962167-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602964547-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602967027-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:43:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602969447-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602971897-05:00 41 | config.ANTHROPIC_API_KEY = ANTHROPIC_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602974357-05:00 42 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602976807-05:00 43 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602979297-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602981727-05:00 44 | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602984227-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602987967-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.602991687-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603000167-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:43:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603003427-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603006717-05:00 41 | config.ANTHROPIC_API_KEY = ANTHROPIC_KEY [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603010067-05:00 42 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603013347-05:00 43 | / from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603016547-05:00 44 | | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603019757-05:00 45 | | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603022997-05:00 46 | | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603026277-05:00 47 | | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603029527-05:00 48 | | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603032827-05:00 49 | | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603043267-05:00 50 | | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603046857-05:00 51 | | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603056597-05:00 52 | | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603060776-05:00 53 | | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603064556-05:00 54 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603068096-05:00 55 | | loader = DataLoader() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603071716-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603074896-05:00 56 | preprocessor = DataPreprocessor() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603078266-05:00 57 | # Use absolute path relative to notebook so DB is always in the same place [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603081276-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603083926-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603086396-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603088956-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:44:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603091536-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603094096-05:00 43 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603096796-05:00 44 | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603099366-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603101976-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603104536-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603107106-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603109556-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603112096-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:45:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603114636-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603117266-05:00 43 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603119916-05:00 44 | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603122576-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603125216-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603127846-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603131286-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603133946-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603136366-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603138926-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:46:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603141436-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603143956-05:00 44 | from data.history_store import HistoryStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603146656-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603149296-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603151906-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603154496-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603157046-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603159616-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603162066-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603164596-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:47:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603167146-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603169706-05:00 45 | from data.conversation_store import ConversationStore [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603172326-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603174976-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603177476-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603184856-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603187476-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603190086-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603192636-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603195096-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:48:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603197756-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603200456-05:00 46 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603203066-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603205756-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603208396-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603211016-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603213536-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603216106-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603218536-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603221056-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:49:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603223596-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603226176-05:00 47 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603228846-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603231436-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603234006-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603236646-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603239206-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603241836-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603244266-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603246996-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:50:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603249636-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603252166-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603254756-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603257346-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603259996-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603262556-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603265046-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603267556-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603269926-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603272705-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:50:40: F401 [*] `agents.router_agent.RouterAgent` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603275255-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603277845-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603280415-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603284185-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603286825-05:00 | ^^^^^^^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603289445-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603292125-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603294805-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603301595-05:00 = help: Remove unused import [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603304285-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603306905-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:50:53: F401 [*] `agents.router_agent.FocusedQueryAgent` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603309655-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603312335-05:00 48 | from agents.inside_sales_agent import InsideSalesAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603314885-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603317505-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603320135-05:00 | ^^^^^^^^^^^^^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603322775-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603325375-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603327915-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603330585-05:00 = help: Remove unused import [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603333505-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603335985-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:51:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603338605-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603341195-05:00 49 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603343725-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603346265-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603348925-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603351465-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603354345-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603357625-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603360645-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603363385-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:52:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603366365-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603369365-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603372205-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603374995-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603377675-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603380365-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603382925-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603385355-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603387965-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:52:40: F401 [*] `crew.run_pipeline` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603390595-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603393115-05:00 50 | from agents.router_agent import RouterAgent, FocusedQueryAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603395755-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603398395-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603401015-05:00 | ^^^^^^^^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603403655-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603406295-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603408925-05:00 = help: Remove unused import: `crew.run_pipeline` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603411315-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603415525-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:53:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603422755-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603425575-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603428285-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603431165-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603434055-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603437045-05:00 54 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603439875-05:00 55 | loader = DataLoader() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603441835-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603443715-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603445785-05:00 notebooks/archive/report_generator_v4.ipynb:cell 5:53:43: F811 [*] Redefinition of unused `ExternalContextAgent` from cell 5, line 8 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603447755-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603449815-05:00 51 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603451755-05:00 52 | from crew import run_pipeline, reply_to_query [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603453765-05:00 53 | from agents.external_context_agent import ExternalContextAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603456435-05:00 | ^^^^^^^^^^^^^^^^^^^^ F811 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603458425-05:00 54 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603460405-05:00 55 | loader = DataLoader() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603462355-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603464325-05:00 = help: Remove definition: `ExternalContextAgent` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603466265-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603468335-05:00 notebooks/archive/report_generator_v4.ipynb:cell 7:13:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603470265-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603472285-05:00 11 | print(f" Scan rows : {len(scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603474285-05:00 12 | print(f" Trans rows : {len(trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603476325-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603478275-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603480345-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603482305-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603484234-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603486154-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603488084-05:00 notebooks/archive/report_generator_v4.ipynb:cell 7:14:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603490024-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603492004-05:00 12 | print(f" Trans rows : {len(trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603493954-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603497854-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603499854-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603501814-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603503844-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603505764-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603507704-05:00 notebooks/archive/report_generator_v4.ipynb:cell 7:15:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603510154-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603512134-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603514244-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603516304-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603521824-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603523814-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603525704-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603527644-05:00 notebooks/archive/report_generator_v4.ipynb:cell 19:48:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603529954-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603531924-05:00 46 | print("Using CSV/NAXML seeding path") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603533914-05:00 47 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603535884-05:00 48 | import pandas as _pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603537954-05:00 | ^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603539914-05:00 49 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603541884-05:00 50 | print("Seeding historical baseline from current files...") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603543844-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603545714-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603547644-05:00 notebooks/archive/report_generator_v4.ipynb:cell 19:54:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603549614-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603551644-05:00 53 | # Delete existing snapshots for this store so broken old values don't persist [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603553584-05:00 54 | import sqlite3 as _sqlite3 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603555534-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603557454-05:00 55 | _db_str = str(_db_path) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603559494-05:00 56 | with _sqlite3.connect(_db_str) as _conn: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603561434-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603563314-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603565334-05:00 notebooks/archive/report_generator_v4.ipynb:cell 19:54:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603567274-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603569304-05:00 53 | # Delete existing snapshots for this store so broken old values don't persist [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603571314-05:00 54 | / import sqlite3 as _sqlite3 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603573294-05:00 55 | | _db_str = str(_db_path) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603575264-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603577204-05:00 56 | with _sqlite3.connect(_db_str) as _conn: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603579154-05:00 57 | _existing = _conn.execute( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603581114-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603583064-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603584934-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603586854-05:00 notebooks/archive/report_generator_v4.ipynb:cell 19:131:121: E501 Line too long (186 > 120) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603588814-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603590844-05:00 129 | _famts = pd.to_numeric(_fuel[_scan_amt], errors='coerce').fillna(0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603592794-05:00 130 | kpis['fuel_sales'] = round(float(_famts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603595094-05:00 131 | kpis['avg_fuel_ticket'] = round(kpis['fuel_sales'] / kpis['fuel_transactions'], 2) if kpis['fuel_transactions'] else 0.0 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603598244-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603600224-05:00 132 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603602194-05:00 133 | if _scan_amt: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603604154-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603606024-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603608044-05:00 notebooks/archive/report_generator_v4.ipynb:cell 19:181:34: F401 [*] `datetime.date` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603609994-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603612014-05:00 179 | print("\n=== Store Baseline Profile ===") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603614014-05:00 180 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603651494-05:00 181 | from datetime import date as _date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603653544-05:00 | ^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603655524-05:00 182 | _dow_profile = history_db.get_dow_profile(STORE_ID, report_date, weeks_back=52) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603657544-05:00 183 | _rolling = history_db.get_rolling_average(STORE_ID, report_date, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603659494-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603661464-05:00 = help: Remove unused import: `datetime.date` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603663404-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603665424-05:00 notebooks/archive/report_generator_v4.ipynb:cell 19:245:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603667334-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603669304-05:00 243 | f'effective_fuel_price absurd (${_b_eff_p:.2f}/gal — should be ~$3-5)' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603671254-05:00 244 | print(f" Reason: {_reason}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603673264-05:00 245 | print(f" This usually means Cell 7b was seeded with broken data.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603676094-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603678034-05:00 246 | print(f" ACTION: Set MERCURYONE_FILE in Cell 1 and re-run Cell 7b to reseed.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603680054-05:00 247 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603682014-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603683984-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603685864-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603687884-05:00 notebooks/archive/report_generator_v4.ipynb:cell 19:246:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603689814-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603691944-05:00 244 | print(f" Reason: {_reason}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603694514-05:00 245 | print(f" This usually means Cell 7b was seeded with broken data.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603696503-05:00 246 | print(f" ACTION: Set MERCURYONE_FILE in Cell 1 and re-run Cell 7b to reseed.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603698523-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603700503-05:00 247 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603702563-05:00 248 | print(f"✓ Baseline quality OK — fuel={_b_fuel:,.0f} gal, inside=${_b_ins:,.0f}, total=${_b_rev:,.0f}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603705333-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603707293-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603709183-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603712163-05:00 notebooks/archive/report_generator_v4.ipynb:cell 21:24:25: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603714183-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603716133-05:00 23 | def color_sev(val): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603718153-05:00 24 | if val == 'HIGH': return 'background-color:#fed7d7;color:#c53030;font-weight:bold' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603720113-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603722113-05:00 25 | if val == 'MEDIUM': return 'background-color:#fefcbf;color:#744210' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603724183-05:00 26 | return '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603726143-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603728013-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603729983-05:00 notebooks/archive/report_generator_v4.ipynb:cell 21:25:27: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603732043-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603734113-05:00 23 | def color_sev(val): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603736183-05:00 24 | if val == 'HIGH': return 'background-color:#fed7d7;color:#c53030;font-weight:bold' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603738173-05:00 25 | if val == 'MEDIUM': return 'background-color:#fefcbf;color:#744210' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603743733-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603745793-05:00 26 | return '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603747733-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603749643-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603751563-05:00 notebooks/archive/report_generator_v4.ipynb:cell 23:6:59: UP032 [*] Use f-string instead of `format` call [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603753583-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603755593-05:00 4 | top_df.index = range(1, len(top_df) + 1) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603757623-05:00 5 | top_df.index.name = 'Rank' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603759593-05:00 6 | top_df['revenue'] = top_df['revenue'].apply(lambda x: '${:,.2f}'.format(x)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603761533-05:00 | ^^^^^^^^^^^^^^^^^^^^ UP032 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603763583-05:00 7 | display(top_df) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603765553-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603767523-05:00 = help: Convert to f-string [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603769443-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603771633-05:00 notebooks/archive/report_generator_v4.ipynb:cell 25:15:15: UP032 [*] Use f-string instead of `format` call [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603773573-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603775533-05:00 13 | bar = 'X' * int(n / max_tx * 35) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603777503-05:00 14 | low = ' <- LOW' if n < max_tx * 0.25 else '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603779443-05:00 15 | print(' {:02d}:00 {:<35} {:>3}{}'.format(h, bar, n, low)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603781403-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP032 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603783353-05:00 16 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603785373-05:00 17 | gaps = trans_summary.get('top_hourly_gaps', []) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603787343-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603789343-05:00 = help: Convert to f-string [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603791213-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603793143-05:00 notebooks/archive/report_generator_v4.ipynb:cell 29:2:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603795103-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603797103-05:00 1 | # Force reload in case file was updated [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603799063-05:00 2 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603801003-05:00 | ^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603802953-05:00 3 | for mod_name in [m for m in list(sys.modules.keys()) if 'fuel_pricing' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603804893-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603806893-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603808983-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603811393-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603813443-05:00 notebooks/archive/report_generator_v4.ipynb:cell 29:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603815383-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603817333-05:00 1 | # Force reload in case file was updated [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603819303-05:00 2 | / import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603821263-05:00 3 | | for mod_name in [m for m in list(sys.modules.keys()) if 'fuel_pricing' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603823223-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603825193-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603827133-05:00 5 | importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603829113-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603831063-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603832923-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603834933-05:00 notebooks/archive/report_generator_v4.ipynb:cell 29:8:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603836883-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603838853-05:00 6 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603844333-05:00 7 | pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603846403-05:00 8 | from agents.fuel_pricing_agent import FuelPricingAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603848393-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603850333-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603852283-05:00 10 | # Your own current fuel price — set manually or leave None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603854223-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603856163-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603858203-05:00 notebooks/archive/report_generator_v4.ipynb:cell 33:39:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603860243-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603862303-05:00 38 | print() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603864473-05:00 39 | from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603866533-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603868523-05:00 40 | display(Markdown(external_section)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603870573-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603872573-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603874603-05:00 notebooks/archive/report_generator_v4.ipynb:cell 33:39:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603876543-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603878573-05:00 38 | print() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603880573-05:00 39 | / from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603882553-05:00 40 | | display(Markdown(external_section)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603884553-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603886503-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603888543-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603890393-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603892333-05:00 notebooks/archive/report_generator_v4.ipynb:cell 35:7:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603894293-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603896283-05:00 5 | schedule_section = None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603898233-05:00 6 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603900193-05:00 7 | / from agents.schedule_agent import ( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603902133-05:00 8 | | ScheduleAgent, FASTIME_SCHEDULE_MAY_2026, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603904083-05:00 9 | | parse_schedule_image, parse_schedule_csv) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603906003-05:00 10 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603907962-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603909912-05:00 11 | _sched_img = SCHEDULE_IMAGE_FILE if 'SCHEDULE_IMAGE_FILE' in dir() else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603911932-05:00 12 | _sched_csv = SCHEDULE_FILE if 'SCHEDULE_FILE' in dir() else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603913872-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603915822-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603923012-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603928252-05:00 notebooks/archive/report_generator_v4.ipynb:cell 37:9:61: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603931242-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603934242-05:00 7 | # Save KPI snapshot — rebuild to ensure post-merge fuel AND scan metrics included [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603937332-05:00 8 | today_kpis = {**trans_summary, **scan_summary} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603942582-05:00 9 | snapshot_kpis = {k: v for k, v in today_kpis.items() if isinstance(v, (int, float))} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603945422-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603948192-05:00 10 | # Explicitly add scan-sourced inside-sales metrics [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603950922-05:00 11 | for _k in ('total_sales', 'avg_item_price'): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603953682-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603956312-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603964512-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603967462-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:5:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603970372-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603973392-05:00 3 | # input file contains 3+ days). Can also be run manually for any multi-day file. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603976102-05:00 4 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603978762-05:00 5 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603981452-05:00 | ^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603984162-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603986922-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603989692-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603992442-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603995042-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.603997772-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:5:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604000442-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604003142-05:00 3 | # input file contains 3+ days). Can also be run manually for any multi-day file. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604005922-05:00 4 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604008632-05:00 5 | / import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604011392-05:00 6 | | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604014132-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604016842-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604019552-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604022172-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604024872-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604027512-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604030202-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:7:8: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604032922-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604035602-05:00 5 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604038332-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604041022-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604043782-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604046482-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604049172-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604051752-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604054482-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:8:21: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604057232-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604059972-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604062752-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604065412-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604068142-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604070862-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604073582-05:00 10 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604076342-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604078862-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604081552-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:10:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604084362-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604087122-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604089862-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604092582-05:00 10 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604095372-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604098182-05:00 11 | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604105282-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604108152-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604110682-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604113342-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:10:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604116112-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604118962-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604121722-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604124462-05:00 10 | / from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604127262-05:00 11 | | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604131351-05:00 12 | | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604134111-05:00 13 | | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604136851-05:00 14 | | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604139651-05:00 15 | | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604142401-05:00 16 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604145191-05:00 17 | | if report_type != "weekly": [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604147941-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604150801-05:00 18 | print(f"ℹ report_type='{report_type}' — this cell is for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604153561-05:00 19 | print(f" Input file has {_n_dates} day(s). Need ≥3 days for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604156251-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604159031-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604161671-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604164381-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:11:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604167031-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604169841-05:00 10 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604172551-05:00 11 | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604175271-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604177991-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604180741-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604183471-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604186021-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604188651-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:12:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604191391-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604194161-05:00 10 | from agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604196841-05:00 11 | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604199601-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604202351-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604205101-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604211461-05:00 14 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604214321-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604216991-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604219801-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:13:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604222521-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604225251-05:00 11 | from agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604232391-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604235131-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604237821-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604240631-05:00 14 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604243291-05:00 15 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604246091-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604248701-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604251491-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:14:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604254171-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604256891-05:00 12 | from agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604259651-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604262451-05:00 14 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604265261-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604268051-05:00 15 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604270721-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604273371-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604276161-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:15:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604278861-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604281501-05:00 13 | from agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604284251-05:00 14 | from report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604286971-05:00 15 | from data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604289811-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604292601-05:00 16 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604295301-05:00 17 | if report_type != "weekly": [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604298021-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604300561-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604303221-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:20:11: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604305871-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604308611-05:00 18 | print(f"ℹ report_type='{report_type}' — this cell is for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604311371-05:00 19 | print(f" Input file has {_n_dates} day(s). Need ≥3 days for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604314071-05:00 20 | print(f" To force weekly: set report_type='weekly' before Cell 14.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604316741-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604319521-05:00 21 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604322301-05:00 22 | print(f"Weekly Deep Dive: {_date_start} → {_date_end} ({_n_dates} days)") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604325011-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604327831-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604330441-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604333131-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:103:121: E501 Line too long (139 > 120) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604335891-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604338691-05:00 102 | # Fetch this day's DOW baseline for per-day trend comparison [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604342001-05:00 103 | _db = history_db.get_same_dow_baseline(STORE_ID, _d, weeks_back=52, min_samples=2) if 'history_db' in dir() else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604344851-05:00 | ^^^^^^^^^^^^^^^^^^^ E501 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604351740-05:00 104 | if not _db and 'history_db' in dir(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604354520-05:00 105 | _db = history_db.get_rolling_average(STORE_ID, _d, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604357240-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604359840-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604362580-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:166:24: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604365270-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604368030-05:00 164 | if _day_b: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604370770-05:00 165 | for k, v in _day_b.items(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604373480-05:00 166 | if isinstance(v, (int, float)): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604376280-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604379080-05:00 167 | _wb_accum[k] = _wb_accum.get(k, 0) + v [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604381810-05:00 168 | _wb_counts[k] = _wb_counts.get(k, 0) + 1 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604384560-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604387310-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604389950-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604392660-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:196:19: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604395370-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604398170-05:00 194 | if weekly_baseline.get('avg_fuel_ticket', 0) > 100: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604400880-05:00 195 | weekly_baseline.pop('avg_fuel_ticket', None) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604403690-05:00 196 | print(f" ⚠ avg_fuel_ticket baseline >$100 — suppressed (data error)") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604406410-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604409140-05:00 197 | if _wb_tx > 0: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604411890-05:00 198 | weekly_baseline['avg_ticket'] = round(_wb_ins/_wb_tx,2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604414650-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604417350-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604420010-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604422730-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:201:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604425490-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604429910-05:00 199 | if _wb_rev > 0: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604432720-05:00 200 | weekly_baseline['inside_sales_share_pct'] = round(_wb_ins/_wb_rev*100,1) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604435520-05:00 201 | print(f" Weekly baseline (summed per-DOW):") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604447250-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604457300-05:00 202 | for _k in ['total_revenue','fuel_gallons','total_sales']: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604460650-05:00 203 | if _k in weekly_baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604463750-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604465840-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604467820-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604474310-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:213:48: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604476520-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604478790-05:00 211 | 'forecourt_conversion_pct'} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604480990-05:00 212 | weekly_baseline = {k: (v if k in _ratio_keys else [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604483470-05:00 213 | v * _n_dates if isinstance(v,(int,float)) else v) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604486390-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604495650-05:00 214 | for k, v in baseline.items()} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604497920-05:00 215 | weekly_baseline['sample_count'] = _n_dates [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604500130-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604502470-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604504470-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604506530-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:235:121: E501 Line too long (129 > 120) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604508580-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604510940-05:00 233 | _worst = min(weekly_days, key=lambda x: x['total_revenue']) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604513010-05:00 234 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604516270-05:00 235 | print(f"Week total: {_week_fuel_gal:,.0f} gal | ${_week_inside:,.0f} inside | ${_week_revenue:,.0f} total | {_week_tx:,} tx") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604518310-05:00 | ^^^^^^^^^ E501 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604520400-05:00 236 | print(f"Best day: {_best['dow_name']} (${_best['total_revenue']:,.0f})") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604522540-05:00 237 | print(f"Worst day: {_worst['dow_name']} (${_worst['total_revenue']:,.0f})") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604524560-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604526530-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604528860-05:00 notebooks/archive/report_generator_v4.ipynb:cell 40:374:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604530900-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604532930-05:00 372 | print("=" * 60) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604535710-05:00 373 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604537770-05:00 374 | / from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604539870-05:00 375 | | display(Markdown(weekly_report.split('---SMS---')[0])) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604542950-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604545030-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604547070-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604549180-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604551250-05:00 notebooks/archive/report_generator_v4.ipynb:cell 41:35:12: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604553320-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604555470-05:00 33 | print("⚠ No SMS digest found — ---SMS--- delimiter missing from LLM output.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604557670-05:00 34 | _raw = (sms_text or '')[:200].replace('\n',' ') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604559770-05:00 35 | if _raw: print(f" Raw output starts with: {_raw!r}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604562190-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604564290-05:00 36 | print(" This usually means the LLM hit a token/rate limit. Re-run Cell 34 or 39.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604566370-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604568350-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604570489-05:00 notebooks/archive/report_generator_v4.ipynb:cell 41:49:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604572559-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604574619-05:00 47 | saved = output.get('sms_block_paths', {}) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604576669-05:00 48 | if saved: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604578789-05:00 49 | print(f"\nBlock files saved:") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604582789-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604584889-05:00 50 | for name, path in saved.items(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604587019-05:00 51 | print(f" {name}: {path}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604589049-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604591159-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604593159-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604596259-05:00 notebooks/archive/report_generator_v6.ipynb:cell 5:1:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604602509-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604604679-05:00 1 | / from datetime import date, timedelta [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604608069-05:00 2 | | from pathlib import Path [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604610149-05:00 3 | | from storeminder import runner, s3sync [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604612179-05:00 4 | | from storeminder.batch import load_conf [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604614179-05:00 5 | | from storeminder.crew import run_pipeline [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604616249-05:00 6 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604618409-05:00 7 | | run_date = date.fromisoformat(RUN_DATE) if RUN_DATE else (date.today() - timedelta(days=1)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604620629-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604622709-05:00 8 | weekly = (MODE == 'weekly') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604624759-05:00 9 | conf = load_conf(STORE_ID) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604626879-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604628939-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604630929-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604633059-05:00 notebooks/archive/report_generator_v6.ipynb:cell 5:17:60: UP034 [*] Avoid extraneous parentheses [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604635119-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604637159-05:00 15 | curated_dir = work / 'curated' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604639189-05:00 16 | reports_dir = work / 'reports' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604641329-05:00 17 | span_dates = [run_date - timedelta(days=i) for i in range((7 if weekly else 1))] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604643429-05:00 | ^^^^^^^^^^^^^^^^^^^^ UP034 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604645519-05:00 18 | print(f'{MODE} run | store={STORE_ID} (pos={pos_prefix}) | dates={span_dates[-1]}..{run_date}') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604647589-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604649639-05:00 = help: Remove extraneous parentheses [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604651599-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604653629-05:00 notebooks/archive/report_generator_v6.ipynb:cell 7:6:20: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604655669-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604657789-05:00 4 | assert pulled, f'no raw journals found for {STORE_ID} {span_dates}' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604659889-05:00 5 | print(f'pulled {len(pulled)} raw journal file(s) -> {raw_dir}') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604662429-05:00 6 | for p in pulled[:6]: print(' ', Path(p).name) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604664469-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604666499-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604668489-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604670509-05:00 notebooks/archive/report_generator_v6.ipynb:cell 9:2:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604672519-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604674579-05:00 1 | scan_csv, trans_csv = runner.curate_raw_dir(str(raw_dir), str(curated_dir)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604676619-05:00 2 | import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604678679-05:00 | ^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604680729-05:00 3 | print('scan :', Path(scan_csv).name, '|', len(pd.read_csv(scan_csv)), 'rows') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604685269-05:00 4 | print('trans:', Path(trans_csv).name, '|', len(pd.read_csv(trans_csv)), 'rows') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604687409-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604689379-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604691949-05:00 notebooks/archive/report_generator_v6.ipynb:cell 9:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604693999-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604696049-05:00 1 | scan_csv, trans_csv = runner.curate_raw_dir(str(raw_dir), str(curated_dir)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604698339-05:00 2 | / import pandas as pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604700409-05:00 3 | | print('scan :', Path(scan_csv).name, '|', len(pd.read_csv(scan_csv)), 'rows') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604706039-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604708189-05:00 4 | print('trans:', Path(trans_csv).name, '|', len(pd.read_csv(trans_csv)), 'rows') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604710259-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604712309-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604714279-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604716359-05:00 notebooks/configure_twilio.ipynb:cell 7:43:37: E702 Multiple statements on one line (semicolon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604718379-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604720449-05:00 41 | params = () [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604722499-05:00 42 | if store_id: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604724559-05:00 43 | sql += " WHERE store_id = ?"; params = (store_id,) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604726629-05:00 | ^ E702 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604728719-05:00 44 | sql += " ORDER BY store_id, role, phone" [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604730769-05:00 45 | with db.connection() as conn: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604732799-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604734799-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604736879-05:00 notebooks/report_generator_daily.ipynb:cell 5:3:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604738899-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604741019-05:00 1 | # Optional interactive controls. Active ONLY in an interactive kernel and a [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604743119-05:00 2 | # NO-OP under papermill (headless), so injected parameters are never overridden. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604745169-05:00 3 | / import os [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604747259-05:00 4 | | _INTERACTIVE = (os.environ.get('PAPERMILL_OUTPUT_PATH') is None and [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604749289-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604751329-05:00 5 | os.environ.get('PAPERMILL_INPUT_PATH') is None) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604753409-05:00 6 | _WIDGETS = None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604755519-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604757529-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604759499-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604761539-05:00 notebooks/report_generator_daily.ipynb:cell 5:9:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604763539-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604765569-05:00 7 | if _INTERACTIVE: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604767619-05:00 8 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604769739-05:00 9 | / import ipywidgets as W [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604771849-05:00 10 | | from IPython.display import display [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604774039-05:00 11 | | from storeminder.runner import discover_stores [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604776129-05:00 12 | | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604778159-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604780189-05:00 13 | _stores = discover_stores() or [STORE_ID] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604782269-05:00 14 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604784289-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604786399-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604788369-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604790459-05:00 notebooks/report_generator_daily.ipynb:cell 5:22:37: E702 Multiple statements on one line (semicolon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604792478-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604794528-05:00 20 | _w_end = W.Text(value=str(END_DATE or ''), description='End date', [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604796628-05:00 21 | placeholder='YYYY-MM-DD (blank = yesterday)') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604798658-05:00 22 | _WIDGETS['store'] = _w_store; _WIDGETS['end'] = _w_end [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604800678-05:00 | ^ E702 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604802728-05:00 23 | _row = [_w_store, _w_end] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604804828-05:00 24 | _w_push = W.Checkbox(value=bool(PUSH), description='Push to S3') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604811208-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604813218-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604815278-05:00 notebooks/report_generator_daily.ipynb:cell 7:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604817428-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604819518-05:00 1 | # Build + validate the run parameters (one schema; widgets OR papermill). [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604821578-05:00 2 | / from storeminder.params import ReportParams [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604823658-05:00 3 | | def _val(key, default): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604825718-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604827748-05:00 4 | if _WIDGETS and key in _WIDGETS: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604829848-05:00 5 | v = _WIDGETS[key].value [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604831928-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604834078-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604836058-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604838168-05:00 notebooks/report_generator_daily.ipynb:cell 9:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604840278-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604842348-05:00 1 | # Run the full artifact flow (pull -> curate -> pipeline -> push -> deliver). [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604844378-05:00 2 | / from storeminder import runner [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604846408-05:00 3 | | result = runner.run_report(params) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604848448-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604850478-05:00 4 | print('status:', result.get('status'), '| cadence:', result.get('cadence')) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604852518-05:00 5 | print('report html:', (result or {}).get('html')) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604855398-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604857468-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604859448-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604861518-05:00 notebooks/report_generator_v5.ipynb:cell 3:1:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604863578-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604865628-05:00 1 | import sys, os [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604867868-05:00 | ^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604869928-05:00 2 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604875308-05:00 3 | # ── Suppress __pycache__ creation ──────────────────────────────────────────── [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604877508-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604879568-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604881528-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604883688-05:00 notebooks/report_generator_v5.ipynb:cell 3:1:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604885738-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604887778-05:00 1 | / import sys, os [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604889898-05:00 2 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604892448-05:00 3 | | # ── Suppress __pycache__ creation ──────────────────────────────────────────── [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604894568-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604896718-05:00 4 | sys.dont_write_bytecode = True [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604898748-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604900858-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604902838-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604904978-05:00 notebooks/report_generator_v5.ipynb:cell 3:10:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604907028-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604909148-05:00 8 | os.getcwd(), 'data', 'history.db') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604913308-05:00 9 | # Resolve relative to notebook location [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604915428-05:00 10 | import pathlib [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604922358-05:00 | ^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604934688-05:00 11 | _db_path = pathlib.Path('.').resolve() / 'data' / 'history.db' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604936778-05:00 12 | if _db_path.exists(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604938798-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604940778-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604942908-05:00 notebooks/report_generator_v5.ipynb:cell 3:10:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604945018-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604947198-05:00 8 | os.getcwd(), 'data', 'history.db') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604949228-05:00 9 | # Resolve relative to notebook location [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604951278-05:00 10 | / import pathlib [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604953328-05:00 11 | | _db_path = pathlib.Path('.').resolve() / 'data' / 'history.db' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604955448-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604957518-05:00 12 | if _db_path.exists(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604959568-05:00 13 | _db_path.unlink() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604961598-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604963628-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604965588-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604968478-05:00 notebooks/report_generator_v5.ipynb:cell 3:16:11: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604970498-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604972558-05:00 14 | print(f"✓ Cleared history DB: {_db_path}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604974688-05:00 15 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604976768-05:00 16 | print(f"✓ No existing history DB to clear") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604978808-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604980868-05:00 17 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604983358-05:00 18 | # ═══════════════════════════════════════════════════════════════════════════════ [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604985398-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604987438-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604989398-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604991478-05:00 notebooks/report_generator_v5.ipynb:cell 6:3:12: F821 Undefined name `loader` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604993528-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604995548-05:00 1 | print("Loading files...\n") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604997608-05:00 2 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.604999658-05:00 3 | scan_df = loader.load_scan_data(SCAN_FILE) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605001708-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605003758-05:00 4 | trans_df = loader.load_trans_data(TRANS_FILE) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605005788-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605007768-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605009887-05:00 notebooks/report_generator_v5.ipynb:cell 6:4:12: F821 Undefined name `loader` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605011917-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605013977-05:00 3 | scan_df = loader.load_scan_data(SCAN_FILE) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605016007-05:00 4 | trans_df = loader.load_trans_data(TRANS_FILE) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605018027-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605020047-05:00 5 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605022107-05:00 6 | hist_scan_df = loader.load_scan_data(HIST_SCAN_FILE) if HIST_SCAN_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605024157-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605026137-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605028177-05:00 notebooks/report_generator_v5.ipynb:cell 6:6:17: F821 Undefined name `loader` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605030217-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605032267-05:00 4 | trans_df = loader.load_trans_data(TRANS_FILE) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605034297-05:00 5 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605036427-05:00 6 | hist_scan_df = loader.load_scan_data(HIST_SCAN_FILE) if HIST_SCAN_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605042007-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605044147-05:00 7 | hist_trans_df = loader.load_trans_data(HIST_TRANS_FILE) if HIST_TRANS_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605046447-05:00 8 | weather_df = loader.load_weather_data(WEATHER_FILE) if WEATHER_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605048477-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605050447-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605052447-05:00 notebooks/report_generator_v5.ipynb:cell 6:7:17: F821 Undefined name `loader` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605054487-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605056557-05:00 6 | hist_scan_df = loader.load_scan_data(HIST_SCAN_FILE) if HIST_SCAN_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605058637-05:00 7 | hist_trans_df = loader.load_trans_data(HIST_TRANS_FILE) if HIST_TRANS_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605060677-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605062757-05:00 8 | weather_df = loader.load_weather_data(WEATHER_FILE) if WEATHER_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605064817-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605066827-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605068887-05:00 notebooks/report_generator_v5.ipynb:cell 6:8:17: F821 Undefined name `loader` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605070917-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605072987-05:00 6 | hist_scan_df = loader.load_scan_data(HIST_SCAN_FILE) if HIST_SCAN_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605075037-05:00 7 | hist_trans_df = loader.load_trans_data(HIST_TRANS_FILE) if HIST_TRANS_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605077067-05:00 8 | weather_df = loader.load_weather_data(WEATHER_FILE) if WEATHER_FILE else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605084127-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605087197-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605090377-05:00 10 | print() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605093237-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605096037-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605099217-05:00 notebooks/report_generator_v5.ipynb:cell 6:13:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605102347-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605104447-05:00 11 | print(f" Scan rows : {len(scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605107187-05:00 12 | print(f" Trans rows : {len(trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605109367-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605111457-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605115387-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605117547-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605119597-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605121567-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605123647-05:00 notebooks/report_generator_v5.ipynb:cell 6:14:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605125707-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605128347-05:00 12 | print(f" Trans rows : {len(trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605130477-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605132617-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605134717-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605136777-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605138857-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605140847-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605142917-05:00 notebooks/report_generator_v5.ipynb:cell 6:15:29: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605144947-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605147657-05:00 13 | if hist_scan_df is not None: print(f" Hist scan : {len(hist_scan_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605160067-05:00 14 | if hist_trans_df is not None: print(f" Hist trans : {len(hist_trans_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605162417-05:00 15 | if weather_df is not None: print(f" Weather : {len(weather_df):,}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605164567-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605166637-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605168637-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605170727-05:00 notebooks/report_generator_v5.ipynb:cell 8:16:26: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605172747-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605174817-05:00 14 | if 'date' in col.lower() or col == 'datetime': [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605176887-05:00 15 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605179037-05:00 16 | parsed = pd.to_datetime(df[col], errors='coerce').dropna() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605181067-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605183707-05:00 17 | if len(parsed): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605185857-05:00 18 | print(f"\n Date range: {parsed.min().date()} -> {parsed.max().date()}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605187937-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605189947-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605192067-05:00 notebooks/report_generator_v5.ipynb:cell 14:14:31: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605194127-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605196187-05:00 12 | if _col.lower() == 'business date': [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605198927-05:00 13 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605200997-05:00 14 | _parsed_all = pd.to_datetime(_df_chk[_col], errors='coerce').dropna() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605203087-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605205127-05:00 15 | _all_dates.update(_parsed_all.dt.date.unique()) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605207167-05:00 16 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605209307-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605211297-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605213377-05:00 notebooks/report_generator_v5.ipynb:cell 14:41:19: F821 Undefined name `preprocessor` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605215397-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605217497-05:00 39 | _filter_date = report_date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605219607-05:00 40 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605221696-05:00 41 | scan_summary = preprocessor.scan_summary(scan_df, top_n=50, report_date=_filter_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605223736-05:00 | ^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605225766-05:00 42 | trans_summary = preprocessor.transaction_summary(trans_df, report_date=_filter_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605227806-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605229796-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605231886-05:00 notebooks/report_generator_v5.ipynb:cell 14:42:19: F821 Undefined name `preprocessor` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605233916-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605236026-05:00 41 | scan_summary = preprocessor.scan_summary(scan_df, top_n=50, report_date=_filter_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605238096-05:00 42 | trans_summary = preprocessor.transaction_summary(trans_df, report_date=_filter_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605240176-05:00 | ^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605242236-05:00 43 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605244306-05:00 44 | # ── Supplement scan inside sales with unscanned transaction revenue ──────── [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605246346-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605248336-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605250416-05:00 notebooks/report_generator_v5.ipynb:cell 14:53:37: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605252496-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605254556-05:00 51 | _si_mask = ( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605256676-05:00 52 | (scan_df[_cat_col].astype(str).str.lower() != 'fuel') & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605263696-05:00 53 | (scan_df.get('Line Status', pd.Series(['normal']*len(scan_df))) == 'normal') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605265776-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605267826-05:00 54 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605269886-05:00 55 | # Restrict to report_date using normalized 'date' column [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605271916-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605273926-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605275966-05:00 notebooks/report_generator_v5.ipynb:cell 14:57:23: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605278006-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605280136-05:00 55 | # Restrict to report_date using normalized 'date' column [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605282206-05:00 56 | if 'date' in scan_df.columns: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605284236-05:00 57 | _scan_dates = pd.to_datetime(scan_df['date'], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605286266-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605288306-05:00 58 | _si_mask = _si_mask & (_scan_dates == _filter_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605290386-05:00 59 | _scan_txids = set(scan_df.loc[_si_mask, 'Transaction ID'].dropna()) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605292466-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605294436-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605296496-05:00 notebooks/report_generator_v5.ipynb:cell 14:66:21: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605298566-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605300646-05:00 64 | # Filter trans_df to report date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605303166-05:00 65 | _td = trans_df.copy() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605305246-05:00 66 | _td['_bdate'] = pd.to_datetime(_td['Business Date'], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605307366-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605309426-05:00 67 | _td = _td[(_td['_bdate'] == _filter_date) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605311526-05:00 68 | (_td['Type'].isin(['sale', 'network sale']))] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605313576-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605315566-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605317596-05:00 notebooks/report_generator_v5.ipynb:cell 14:72:37: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605319726-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605321786-05:00 70 | ~_td['Transaction ID'].isin(_scan_txids) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605323836-05:00 71 | ~_td['Transaction ID'].isin(_fuel_txids) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605325886-05:00 72 | (_td.get('Item Line Count', pd.Series([1]*len(_td))) > 0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605327946-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605331116-05:00 73 | ] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605333246-05:00 74 | _amt_col = 'Total Amount' if 'Total Amount' in _td.columns else 'Grand Total' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605335296-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605337266-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605339376-05:00 notebooks/report_generator_v5.ipynb:cell 14:85:19: F821 Undefined name `preprocessor` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605341416-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605343606-05:00 83 | except Exception as _eg: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605345656-05:00 84 | print(f" ⚠ Scan gap check failed: {_eg}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605347786-05:00 85 | weather_summary = preprocessor.weather_summary(weather_df) if weather_df is not None else {} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605349846-05:00 | ^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605351886-05:00 86 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605354016-05:00 87 | hist_scan_summary = preprocessor.scan_summary(hist_scan_df, top_n=50) if hist_scan_df is not None else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605356056-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605358076-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605363646-05:00 notebooks/report_generator_v5.ipynb:cell 14:87:22: F821 Undefined name `preprocessor` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605365746-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605369916-05:00 85 | weather_summary = preprocessor.weather_summary(weather_df) if weather_df is not None else {} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605372046-05:00 86 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605374156-05:00 87 | hist_scan_summary = preprocessor.scan_summary(hist_scan_df, top_n=50) if hist_scan_df is not None else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605376256-05:00 | ^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605378426-05:00 88 | hist_trans_summary = preprocessor.transaction_summary(hist_trans_df) if hist_trans_df is not None else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605380456-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605382446-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605384456-05:00 notebooks/report_generator_v5.ipynb:cell 14:88:22: F821 Undefined name `preprocessor` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605386506-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605388576-05:00 87 | hist_scan_summary = preprocessor.scan_summary(hist_scan_df, top_n=50) if hist_scan_df is not None else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605391496-05:00 88 | hist_trans_summary = preprocessor.transaction_summary(hist_trans_df) if hist_trans_df is not None else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605393576-05:00 | ^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605395646-05:00 89 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605397806-05:00 90 | print("SCAN SUMMARY") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605399866-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605401856-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605403966-05:00 notebooks/report_generator_v5.ipynb:cell 14:111:17: F821 Undefined name `preprocessor` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605406016-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605408076-05:00 109 | # Merge fuel KPIs from scan into trans_summary so FuelAgent sees them. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605410116-05:00 110 | # baseline not yet computed — merge fuel without gap calculation [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605412256-05:00 111 | trans_summary = preprocessor.merge_fuel_from_scan(trans_summary, scan_summary) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605414346-05:00 | ^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605416396-05:00 112 | if trans_summary.get('fuel_gallons'): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605418456-05:00 113 | print(f" Fuel (from scan): {trans_summary['fuel_gallons']:,.1f} gal | " [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605421156-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605423126-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605425146-05:00 notebooks/report_generator_v5.ipynb:cell 14:126:9: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605427186-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605429256-05:00 124 | _cat_rev = {c['category']: c['revenue'] for c in _cat_mix if c.get('category') and c.get('revenue')} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605431316-05:00 125 | if _cat_rev: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605433365-05:00 126 | history_db.save_category_day(STORE_ID, report_date, _cat_rev) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605435465-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605437515-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605439505-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605442175-05:00 notebooks/report_generator_v5.ipynb:cell 16:11:26: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605444195-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605446335-05:00 9 | if 'date' in col.lower() or col == 'datetime': [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605448415-05:00 10 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605450545-05:00 11 | parsed = pd.to_datetime(df[col], errors='coerce').dropna() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605452605-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605454655-05:00 12 | if len(parsed): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605456695-05:00 13 | report_date = parsed.max().date() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605458745-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605464335-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605466445-05:00 notebooks/report_generator_v5.ipynb:cell 16:21:19: F821 Undefined name `date` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605468495-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605470585-05:00 20 | if report_date is None: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605472665-05:00 21 | report_date = date.today() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605474765-05:00 | ^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605476845-05:00 22 | print(f"Could not detect date from data — using today: {report_date}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605478935-05:00 23 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605480975-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605482975-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605485005-05:00 notebooks/report_generator_v5.ipynb:cell 16:31:34: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605487015-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605489085-05:00 29 | if 'datetime' in c.lower() or 'date' in c.lower()), None) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605491235-05:00 30 | if dt_col: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605493295-05:00 31 | hist_trans_df['_date'] = pd.to_datetime( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605495315-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605497355-05:00 32 | hist_trans_df[dt_col], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605499405-05:00 33 | amount_col = next((c for c in hist_trans_df.columns [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605501435-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605503415-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605505515-05:00 notebooks/report_generator_v5.ipynb:cell 16:50:31: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605507585-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605509645-05:00 48 | if amount_col: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605511785-05:00 49 | # avg_ticket = inside 'sale' tx only — never blended with fuel tx [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605513895-05:00 50 | inside_amts = pd.to_numeric(inside_grp[amount_col], errors='coerce').clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605515975-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605518055-05:00 51 | all_amts = pd.to_numeric(grp[amount_col], errors='coerce').clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605520085-05:00 52 | kpis['total_revenue'] = round(float(all_amts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605522185-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605524165-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605526185-05:00 notebooks/report_generator_v5.ipynb:cell 16:51:31: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605528215-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605530325-05:00 49 | # avg_ticket = inside 'sale' tx only — never blended with fuel tx [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605532465-05:00 50 | inside_amts = pd.to_numeric(inside_grp[amount_col], errors='coerce').clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605534695-05:00 51 | all_amts = pd.to_numeric(grp[amount_col], errors='coerce').clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605536815-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605538865-05:00 52 | kpis['total_revenue'] = round(float(all_amts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605541695-05:00 53 | kpis['avg_ticket'] = round(float(inside_amts[inside_amts > 0].mean()), 2) \ [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605543735-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605545725-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605547745-05:00 notebooks/report_generator_v5.ipynb:cell 16:56:24: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605549825-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605551905-05:00 54 | if len(inside_amts[inside_amts > 0]) > 0 else 0.0 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605553995-05:00 55 | if fuel_col: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605558065-05:00 56 | gals = pd.to_numeric(grp[fuel_col], errors='coerce').fillna(0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605563895-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605565995-05:00 57 | kpis['fuel_gallons'] = round(float(gals.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605568025-05:00 58 | kpis['fuel_transactions'] = int((gals > 0).sum()) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605570095-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605572085-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605574105-05:00 notebooks/report_generator_v5.ipynb:cell 16:59:13: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605576125-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605578175-05:00 57 | kpis['fuel_gallons'] = round(float(gals.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605580275-05:00 58 | kpis['fuel_transactions'] = int((gals > 0).sum()) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605582545-05:00 59 | history_db.save_day(STORE_ID, day, kpis) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605584565-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605586635-05:00 60 | days_seeded += 1 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605588705-05:00 61 | print(f"Seeded {days_seeded} historical daily snapshots") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605590805-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605592785-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605594875-05:00 notebooks/report_generator_v5.ipynb:cell 16:63:12: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605596925-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605599055-05:00 61 | print(f"Seeded {days_seeded} historical daily snapshots") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605601145-05:00 62 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605603225-05:00 63 | baseline = history_db.get_same_dow_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605605305-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605607425-05:00 64 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605609495-05:00 65 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605611535-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605613515-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605615625-05:00 notebooks/report_generator_v5.ipynb:cell 16:65:16: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605617645-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605619735-05:00 63 | baseline = history_db.get_same_dow_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605621885-05:00 64 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605623995-05:00 65 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605626135-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605628225-05:00 66 | min_samples=config.SAME_DOW_MIN_SAMPLES, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605630275-05:00 67 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605632315-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605634265-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605636305-05:00 notebooks/report_generator_v5.ipynb:cell 16:66:17: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605638325-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605640345-05:00 64 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605642405-05:00 65 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605644505-05:00 66 | min_samples=config.SAME_DOW_MIN_SAMPLES, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605646554-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605648584-05:00 67 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605650614-05:00 68 | if baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605652684-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605654634-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605656734-05:00 notebooks/report_generator_v5.ipynb:cell 16:74:16: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605658774-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605660794-05:00 72 | print(f" Avg fuel gallons: {baseline.get('fuel_gallons', 0):,.1f}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605662814-05:00 73 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605664904-05:00 74 | baseline = history_db.get_rolling_average(STORE_ID, report_date, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605670434-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605672554-05:00 75 | if baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605674694-05:00 76 | print(f"Baseline fallback: {baseline.get('sample_days',0)}-day rolling average") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605676754-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605678724-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605680734-05:00 notebooks/report_generator_v5.ipynb:cell 16:81:17: F821 Undefined name `preprocessor` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605682744-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605684844-05:00 80 | # Re-merge now that baseline is available — computes fuel-vs-inside attachment gap [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605686964-05:00 81 | trans_summary = preprocessor.merge_fuel_from_scan(trans_summary, scan_summary, baseline=baseline) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605689014-05:00 | ^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605691074-05:00 82 | if trans_summary.get('fuel_inside_gap_pct') is not None: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605693174-05:00 83 | gap = trans_summary['fuel_inside_gap_pct'] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605695214-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605697174-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605699264-05:00 notebooks/report_generator_v5.ipynb:cell 18:21:9: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605701294-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605703344-05:00 20 | for _snap in _merc_snaps: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605705444-05:00 21 | history_db.save_day(STORE_ID, _snap['date'], _snap['kpis']) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605707494-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605709514-05:00 22 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605711554-05:00 23 | print(f"Seeded {len(_merc_snaps)} daily snapshots from MercuryOne export") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605714134-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605716154-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605718154-05:00 notebooks/report_generator_v5.ipynb:cell 18:26:16: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605720194-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605722314-05:00 25 | # Fetch updated baseline [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605724424-05:00 26 | baseline = history_db.get_same_dow_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605726464-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605728684-05:00 27 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605730694-05:00 28 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605732734-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605734704-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605736804-05:00 notebooks/report_generator_v5.ipynb:cell 18:28:20: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605739024-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605741094-05:00 26 | baseline = history_db.get_same_dow_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605743234-05:00 27 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605745284-05:00 28 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605747424-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605749464-05:00 29 | min_samples=config.SAME_DOW_MIN_SAMPLES, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605752224-05:00 30 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605754284-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605756304-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605758344-05:00 notebooks/report_generator_v5.ipynb:cell 18:29:21: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605760384-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605762434-05:00 27 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605764454-05:00 28 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605766474-05:00 29 | min_samples=config.SAME_DOW_MIN_SAMPLES, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605768484-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605770514-05:00 30 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605772604-05:00 31 | if not baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605778224-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605780244-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605782274-05:00 notebooks/report_generator_v5.ipynb:cell 18:32:20: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605784304-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605786374-05:00 30 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605788414-05:00 31 | if not baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605790494-05:00 32 | baseline = history_db.get_rolling_average(STORE_ID, report_date, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605792594-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605794634-05:00 33 | if baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605796744-05:00 34 | n = baseline.get('sample_count', baseline.get('sample_days', '?')) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605800634-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605802694-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605804774-05:00 notebooks/report_generator_v5.ipynb:cell 18:48:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605806874-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605808924-05:00 46 | print("Using CSV/NAXML seeding path") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605810974-05:00 47 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605813014-05:00 48 | import pandas as _pd [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605815044-05:00 | ^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605817574-05:00 49 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605819624-05:00 50 | print("Seeding historical baseline from current files...") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605821674-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605823634-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605825684-05:00 notebooks/report_generator_v5.ipynb:cell 18:54:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605827714-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605829804-05:00 53 | # Delete existing snapshots for this store so broken old values don't persist [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605831864-05:00 54 | import sqlite3 as _sqlite3 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605833914-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605836004-05:00 55 | _db_str = str(_db_path) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605838034-05:00 56 | with _sqlite3.connect(_db_str) as _conn: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605840054-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605842044-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605844154-05:00 notebooks/report_generator_v5.ipynb:cell 18:54:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605846184-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605848254-05:00 53 | # Delete existing snapshots for this store so broken old values don't persist [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605850314-05:00 54 | / import sqlite3 as _sqlite3 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605852364-05:00 55 | | _db_str = str(_db_path) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605854394-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605856433-05:00 56 | with _sqlite3.connect(_db_str) as _conn: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605858513-05:00 57 | _existing = _conn.execute( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605860533-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605862563-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605864543-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605866633-05:00 notebooks/report_generator_v5.ipynb:cell 18:76:20: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605868633-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605870683-05:00 74 | for col in df.columns: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605872733-05:00 75 | if 'business' in col.lower() and 'date' in col.lower(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605875463-05:00 76 | return pd.to_datetime(df[col], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605877553-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605879613-05:00 77 | if col.lower() in ('date', 'business_date'): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605881733-05:00 78 | return pd.to_datetime(df[col], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605883783-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605889233-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605891303-05:00 notebooks/report_generator_v5.ipynb:cell 18:78:20: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605893323-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605895373-05:00 76 | return pd.to_datetime(df[col], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605898333-05:00 77 | if col.lower() in ('date', 'business_date'): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605900403-05:00 78 | return pd.to_datetime(df[col], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605902463-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605904503-05:00 79 | return None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605906513-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605908513-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605910533-05:00 notebooks/report_generator_v5.ipynb:cell 18:84:19: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605912573-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605914623-05:00 82 | _scan_dates = _get_dates(_scan_raw) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605916693-05:00 83 | if _scan_dates is not None: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605926163-05:00 84 | _scan_dates = pd.to_datetime(_scan_dates, errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605928273-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605930343-05:00 85 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605932403-05:00 86 | if _trans_dates is None: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605934453-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605936493-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605938533-05:00 notebooks/report_generator_v5.ipynb:cell 18:128:28: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605940573-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605942643-05:00 127 | if _amt_col: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605944823-05:00 128 | _all_amts = pd.to_numeric(_day_tx[_amt_col], errors='coerce').fillna(0).clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605946883-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605949013-05:00 129 | _inside_amts = pd.to_numeric(_inside_tx[_amt_col], errors='coerce').fillna(0).clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605951083-05:00 130 | kpis['total_revenue'] = round(float(_all_amts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605953193-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605955163-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605957153-05:00 notebooks/report_generator_v5.ipynb:cell 18:129:28: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605959213-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605961283-05:00 127 | if _amt_col: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605963353-05:00 128 | _all_amts = pd.to_numeric(_day_tx[_amt_col], errors='coerce').fillna(0).clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605965453-05:00 129 | _inside_amts = pd.to_numeric(_inside_tx[_amt_col], errors='coerce').fillna(0).clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605967593-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605969713-05:00 130 | kpis['total_revenue'] = round(float(_all_amts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605972363-05:00 131 | # avg_ticket = inside 'sale' tx only — never blended with fuel tx [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605974503-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605976483-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605978523-05:00 notebooks/report_generator_v5.ipynb:cell 18:139:25: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605980553-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605982623-05:00 137 | _fuel = _day_scan[_day_scan[_type_col].astype(str).str.lower() == 'fuel'] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605984693-05:00 138 | if len(_fuel): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605986873-05:00 139 | _gals = pd.to_numeric(_fuel[_qty_col], errors='coerce').fillna(0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605988963-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605991063-05:00 140 | kpis['fuel_gallons'] = round(float(_gals.sum()), 3) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605996833-05:00 141 | kpis['fuel_transactions'] = int(_fuel['Event Seq ID'].nunique() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.605998913-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606000893-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606002913-05:00 notebooks/report_generator_v5.ipynb:cell 18:146:30: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606004953-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606007023-05:00 144 | kpis['avg_gallons_per_tx'] = round(kpis['fuel_gallons'] / kpis['fuel_transactions'], 3) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606009153-05:00 145 | if _scan_amt: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606011213-05:00 146 | _famts = pd.to_numeric(_fuel[_scan_amt], errors='coerce').fillna(0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606013283-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606015393-05:00 147 | kpis['fuel_sales'] = round(float(_famts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606019903-05:00 148 | kpis['avg_fuel_ticket'] = round(kpis['fuel_sales'] / kpis['fuel_transactions'], 2) if kpis['fuel_transactions'] else 0.0 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606022063-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606024073-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606026153-05:00 notebooks/report_generator_v5.ipynb:cell 18:148:121: E501 Line too long (186 > 120) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606028163-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606030823-05:00 146 | _famts = pd.to_numeric(_fuel[_scan_amt], errors='coerce').fillna(0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606032903-05:00 147 | kpis['fuel_sales'] = round(float(_famts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606034983-05:00 148 | kpis['avg_fuel_ticket'] = round(kpis['fuel_sales'] / kpis['fuel_transactions'], 2) if kpis['fuel_transactions'] else 0.0 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606037443-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E501 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606039533-05:00 149 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606041643-05:00 150 | if _scan_amt: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606043723-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606045713-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606047843-05:00 notebooks/report_generator_v5.ipynb:cell 18:152:26: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606049983-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606052033-05:00 150 | if _scan_amt: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606054143-05:00 151 | _items = _day_scan[_day_scan[_type_col].astype(str).str.lower() != 'fuel'] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606056213-05:00 152 | _iamts = pd.to_numeric(_items[_scan_amt], errors='coerce').fillna(0).clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606058343-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606060403-05:00 153 | kpis['total_sales'] = round(float(_iamts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606062473-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606064453-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606066563-05:00 notebooks/report_generator_v5.ipynb:cell 18:158:28: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606068613-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606070683-05:00 156 | if _scan_dates is not None and _scan_amt and _type_col: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606072733-05:00 157 | _day_inside = _day_scan[_day_scan[_type_col].astype(str).str.lower() != 'fuel'] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606074803-05:00 158 | _inside_amts = pd.to_numeric(_day_inside[_scan_amt], errors='coerce').fillna(0).clip(lower=0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606076872-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606078902-05:00 159 | kpis['total_sales'] = round(float(_inside_amts.sum()), 2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606084562-05:00 160 | # Derived metrics [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606086642-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606088642-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606090672-05:00 notebooks/report_generator_v5.ipynb:cell 18:168:9: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606092702-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606094782-05:00 166 | if kpis.get('total_revenue',0) > 0 and kpis.get('total_sales',0) > 0: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606096852-05:00 167 | kpis['inside_sales_share_pct'] = round(kpis['total_sales'] / kpis['total_revenue'] * 100, 1) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606098972-05:00 168 | history_db.save_day(STORE_ID, _d, kpis) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606101032-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606103562-05:00 169 | seeded += 1 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606105632-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606107622-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606109732-05:00 notebooks/report_generator_v5.ipynb:cell 18:176:16: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606111842-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606113972-05:00 175 | # Re-fetch baseline now that it's seeded [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606116592-05:00 176 | baseline = history_db.get_same_dow_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606118672-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606120722-05:00 177 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606122762-05:00 178 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606124802-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606126802-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606128962-05:00 notebooks/report_generator_v5.ipynb:cell 18:178:20: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606131012-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606133082-05:00 176 | baseline = history_db.get_same_dow_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606135142-05:00 177 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606137202-05:00 178 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606139252-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606141302-05:00 179 | min_samples=config.SAME_DOW_MIN_SAMPLES, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606143352-05:00 180 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606145422-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606147402-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606149442-05:00 notebooks/report_generator_v5.ipynb:cell 18:179:21: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606151492-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606153562-05:00 177 | STORE_ID, report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606155582-05:00 178 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606157612-05:00 179 | min_samples=config.SAME_DOW_MIN_SAMPLES, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606159672-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606161802-05:00 180 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606163932-05:00 181 | if not baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606166012-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606168012-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606170142-05:00 notebooks/report_generator_v5.ipynb:cell 18:182:20: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606172272-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606174422-05:00 180 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606177032-05:00 181 | if not baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606179152-05:00 182 | baseline = history_db.get_rolling_average(STORE_ID, report_date, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606181222-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606183302-05:00 183 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606185382-05:00 184 | if baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606187422-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606189422-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606191482-05:00 notebooks/report_generator_v5.ipynb:cell 18:198:34: F401 [*] `datetime.date` imported but unused [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606197192-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606199302-05:00 196 | print("\n=== Store Baseline Profile ===") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606201362-05:00 197 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606203422-05:00 198 | from datetime import date as _date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606205462-05:00 | ^^^^^ F401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606208792-05:00 199 | _dow_profile = history_db.get_dow_profile(STORE_ID, report_date, weeks_back=52) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606211922-05:00 200 | _rolling = history_db.get_rolling_average(STORE_ID, report_date, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606215072-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606218162-05:00 = help: Remove unused import: `datetime.date` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606221052-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606234222-05:00 notebooks/report_generator_v5.ipynb:cell 18:199:20: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606239392-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606242462-05:00 197 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606245292-05:00 198 | from datetime import date as _date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606249132-05:00 199 | _dow_profile = history_db.get_dow_profile(STORE_ID, report_date, weeks_back=52) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606251952-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606255122-05:00 200 | _rolling = history_db.get_rolling_average(STORE_ID, report_date, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606257882-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606260442-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606266882-05:00 notebooks/report_generator_v5.ipynb:cell 18:200:20: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606269832-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606272812-05:00 198 | from datetime import date as _date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606275782-05:00 199 | _dow_profile = history_db.get_dow_profile(STORE_ID, report_date, weeks_back=52) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606278592-05:00 200 | _rolling = history_db.get_rolling_average(STORE_ID, report_date, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606281482-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606284232-05:00 201 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606287072-05:00 202 | if _rolling: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606289722-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606292202-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606294872-05:00 notebooks/report_generator_v5.ipynb:cell 18:262:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606297431-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606303991-05:00 260 | f'effective_fuel_price absurd (${_b_eff_p:.2f}/gal — should be ~$3-5)' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606306761-05:00 261 | print(f" Reason: {_reason}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606309561-05:00 262 | print(f" This usually means Cell 7b was seeded with broken data.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606312571-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606315431-05:00 263 | print(f" ACTION: Set MERCURYONE_FILE in Cell 1 and re-run Cell 7b to reseed.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606318191-05:00 264 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606320901-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606323691-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606326421-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606329261-05:00 notebooks/report_generator_v5.ipynb:cell 18:263:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606332061-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606334921-05:00 261 | print(f" Reason: {_reason}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606337701-05:00 262 | print(f" This usually means Cell 7b was seeded with broken data.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606340491-05:00 263 | print(f" ACTION: Set MERCURYONE_FILE in Cell 1 and re-run Cell 7b to reseed.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606350481-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606353271-05:00 264 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606356201-05:00 265 | print(f"✓ Baseline quality OK — fuel={_b_fuel:,.0f} gal, inside=${_b_ins:,.0f}, total=${_b_rev:,.0f}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606358931-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606361671-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606364221-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606366911-05:00 notebooks/report_generator_v5.ipynb:cell 20:3:9: F821 Undefined name `AnomalyAgent` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606369661-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606372741-05:00 1 | today_kpis = {**trans_summary, **scan_summary} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606375591-05:00 2 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606378741-05:00 3 | flags = AnomalyAgent().run(today_kpis=today_kpis, baseline=baseline) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606381791-05:00 | ^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606384681-05:00 4 | high_flags = [f for f in flags if f['severity'] == 'HIGH'] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606387341-05:00 5 | medium_flags = [f for f in flags if f['severity'] == 'MEDIUM'] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606390281-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606392761-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606395251-05:00 notebooks/report_generator_v5.ipynb:cell 20:21:16: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606398061-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606400901-05:00 19 | 'Note' : f['note'], [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606403831-05:00 20 | }) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606406591-05:00 21 | flags_df = pd.DataFrame(rows) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606409441-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606412181-05:00 22 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606414941-05:00 23 | def color_sev(val): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606417691-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606420331-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606423121-05:00 notebooks/report_generator_v5.ipynb:cell 20:24:25: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606425881-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606428731-05:00 23 | def color_sev(val): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606431701-05:00 24 | if val == 'HIGH': return 'background-color:#fed7d7;color:#c53030;font-weight:bold' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606434481-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606437221-05:00 25 | if val == 'MEDIUM': return 'background-color:#fefcbf;color:#744210' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606440041-05:00 26 | return '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606442761-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606445351-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606448041-05:00 notebooks/report_generator_v5.ipynb:cell 20:25:27: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606450721-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606453511-05:00 23 | def color_sev(val): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606457771-05:00 24 | if val == 'HIGH': return 'background-color:#fed7d7;color:#c53030;font-weight:bold' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606460581-05:00 25 | if val == 'MEDIUM': return 'background-color:#fefcbf;color:#744210' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606463361-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606466021-05:00 26 | return '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606468711-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606471231-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606473881-05:00 notebooks/report_generator_v5.ipynb:cell 22:3:14: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606476551-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606479201-05:00 1 | top_items = scan_summary.get('top_items', [])[:20] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606483191-05:00 2 | if top_items: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606485971-05:00 3 | top_df = pd.DataFrame(top_items) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606493161-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606495971-05:00 4 | top_df.index = range(1, len(top_df) + 1) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606498601-05:00 5 | top_df.index.name = 'Rank' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606501291-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606503801-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606506561-05:00 notebooks/report_generator_v5.ipynb:cell 22:6:59: UP032 [*] Use f-string instead of `format` call [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606509101-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606511911-05:00 4 | top_df.index = range(1, len(top_df) + 1) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606514461-05:00 5 | top_df.index.name = 'Rank' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606517151-05:00 6 | top_df['revenue'] = top_df['revenue'].apply(lambda x: '${:,.2f}'.format(x)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606519860-05:00 | ^^^^^^^^^^^^^^^^^^^^ UP032 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606522640-05:00 7 | display(top_df) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606525420-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606528010-05:00 = help: Convert to f-string [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606530500-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606533140-05:00 notebooks/report_generator_v5.ipynb:cell 24:3:17: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606535850-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606538530-05:00 1 | hourly = trans_summary.get('hourly_transactions', []) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606541580-05:00 2 | if hourly: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606544350-05:00 3 | hourly_df = pd.DataFrame(hourly).rename( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606547680-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606550530-05:00 4 | columns={'_hour': 'Hour', 'tx_count': 'Transactions'}) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606553320-05:00 5 | hourly_df = hourly_df.sort_values('Hour') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606556050-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606558610-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606564590-05:00 notebooks/report_generator_v5.ipynb:cell 24:15:15: UP032 [*] Use f-string instead of `format` call [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606567620-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606570380-05:00 13 | bar = 'X' * int(n / max_tx * 35) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606573360-05:00 14 | low = ' <- LOW' if n < max_tx * 0.25 else '' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606576040-05:00 15 | print(' {:02d}:00 {:<35} {:>3}{}'.format(h, bar, n, low)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606578860-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP032 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606581650-05:00 16 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606584330-05:00 17 | gaps = trans_summary.get('top_hourly_gaps', []) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606586980-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606589660-05:00 = help: Convert to f-string [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606592250-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606594890-05:00 notebooks/report_generator_v5.ipynb:cell 26:1:15: F821 Undefined name `FuelAgent` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606597600-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606600240-05:00 1 | fuel_agent = FuelAgent() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606602980-05:00 | ^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606605720-05:00 2 | fuel_result = fuel_agent.run( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606608440-05:00 3 | fuel_kpis = trans_summary, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606611080-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606613560-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606616320-05:00 notebooks/report_generator_v5.ipynb:cell 26:10:9: F821 Undefined name `Markdown` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606619100-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606621760-05:00 8 | fuel_md = fuel_result['section_markdown'] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606624410-05:00 9 | print(f"Fuel section: {len(fuel_md):,} chars\n") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606627070-05:00 10 | display(Markdown(fuel_md)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606629740-05:00 | ^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606636850-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606639540-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606642310-05:00 notebooks/report_generator_v5.ipynb:cell 28:2:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606644910-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606647570-05:00 1 | # Force reload in case file was updated [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606650270-05:00 2 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606652910-05:00 | ^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606655710-05:00 3 | for mod_name in [m for m in list(sys.modules.keys()) if 'fuel_pricing' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606658460-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606661220-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606663900-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606666550-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606669270-05:00 notebooks/report_generator_v5.ipynb:cell 28:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606672030-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606674850-05:00 1 | # Force reload in case file was updated [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606677710-05:00 2 | / import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606680520-05:00 3 | | for mod_name in [m for m in list(sys.modules.keys()) if 'fuel_pricing' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606683200-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606686530-05:00 4 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606689310-05:00 5 | importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606691980-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606694800-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606697390-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606700230-05:00 notebooks/report_generator_v5.ipynb:cell 28:8:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606703120-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606705900-05:00 6 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606708770-05:00 7 | pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606711710-05:00 8 | from storeminder.agents.fuel_pricing_agent import FuelPricingAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606714470-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606717210-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606720020-05:00 10 | # Your own current fuel price — set manually or leave None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606722780-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606725380-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606728220-05:00 notebooks/report_generator_v5.ipynb:cell 28:22:27: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606731040-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606734560-05:00 20 | store_lon = STORE_LON, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606737390-05:00 21 | google_api_key = GOOGLE_PLACES_API_KEY, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606740149-05:00 22 | history_store = history_db, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606742969-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606745779-05:00 23 | store_id = STORE_ID, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606748489-05:00 24 | report_date = report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606751179-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606753779-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606756529-05:00 notebooks/report_generator_v5.ipynb:cell 28:58:13: F821 Undefined name `Markdown` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606759299-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606762079-05:00 57 | print() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606764839-05:00 58 | display(Markdown(fuel_pricing_md)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606767669-05:00 | ^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606770409-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606772999-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606775569-05:00 notebooks/report_generator_v5.ipynb:cell 30:1:17: F821 Undefined name `InsideSalesAgent` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606778139-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606780769-05:00 1 | inside_agent = InsideSalesAgent() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606788409-05:00 | ^^^^^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606791269-05:00 2 | inside_result = inside_agent.run( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606794019-05:00 3 | scan_summary = scan_summary, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606796929-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606799549-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606802259-05:00 notebooks/report_generator_v5.ipynb:cell 30:11:9: F821 Undefined name `Markdown` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606805039-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606807889-05:00 9 | inside_md = inside_result['section_markdown'] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606810809-05:00 10 | print(f"Inside sales section: {len(inside_md):,} chars\n") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606813589-05:00 11 | display(Markdown(inside_md)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606816399-05:00 | ^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606819209-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606821919-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606824719-05:00 notebooks/report_generator_v5.ipynb:cell 32:1:14: F821 Undefined name `ExternalContextAgent` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606827529-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606830359-05:00 1 | ext_agent = ExternalContextAgent() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606833109-05:00 | ^^^^^^^^^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606835929-05:00 2 | ext_result = ext_agent.run( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606838659-05:00 3 | store_place_id = STORE_PLACE_ID or None, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606841389-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606844049-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606846809-05:00 notebooks/report_generator_v5.ipynb:cell 32:10:24: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606849579-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606852329-05:00 8 | anomaly_flags = flags, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606855069-05:00 9 | trans_summary = trans_summary, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606857929-05:00 10 | reviews_max_days = config.REVIEWS_MAX_DAYS_BACK, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606860789-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606863559-05:00 11 | language = LANGUAGE, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606866369-05:00 12 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606868999-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606871419-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606873959-05:00 notebooks/report_generator_v5.ipynb:cell 32:46:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606876579-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606879159-05:00 45 | print() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606881729-05:00 46 | from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606884429-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606887249-05:00 47 | display(Markdown(external_section)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606889989-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606892649-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606895359-05:00 notebooks/report_generator_v5.ipynb:cell 32:46:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606898169-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606901069-05:00 45 | print() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606907099-05:00 46 | / from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606909939-05:00 47 | | display(Markdown(external_section)) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606912779-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606915549-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606923069-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606928159-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606931709-05:00 notebooks/report_generator_v5.ipynb:cell 34:7:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606934579-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606937299-05:00 5 | schedule_section = None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606940039-05:00 6 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606942819-05:00 7 | / from storeminder.agents.schedule_agent import ( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606950939-05:00 8 | | ScheduleAgent, FASTIME_SCHEDULE_MAY_2026, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606953869-05:00 9 | | parse_schedule_image, parse_schedule_csv) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606956649-05:00 10 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606959458-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606962338-05:00 11 | _sched_img = SCHEDULE_IMAGE_FILE if 'SCHEDULE_IMAGE_FILE' in dir() else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606965248-05:00 12 | _sched_csv = SCHEDULE_FILE if 'SCHEDULE_FILE' in dir() else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606968058-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606970678-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606973188-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606975788-05:00 notebooks/report_generator_v5.ipynb:cell 34:45:22: F821 Undefined name `conv_store` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606978378-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606981048-05:00 43 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606983888-05:00 44 | # Pull any stored open action items and merge with manual ones [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606986748-05:00 45 | stored_actions = conv_store.get_open_action_items(STORE_ID) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606989548-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606992318-05:00 46 | all_prior = (PRIOR_ACTIONS or []) + stored_actions [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606995158-05:00 47 | if stored_actions: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.606997928-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607000578-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607003568-05:00 notebooks/report_generator_v5.ipynb:cell 34:65:23: F821 Undefined name `SynthesisAgent` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607006328-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607009128-05:00 63 | weather_api = None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607011908-05:00 64 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607014688-05:00 65 | report_markdown = SynthesisAgent().run( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607017478-05:00 | ^^^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607020268-05:00 66 | report_date = report_date, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607023058-05:00 67 | store_id = STORE_ID, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607025838-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607028418-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607031178-05:00 notebooks/report_generator_v5.ipynb:cell 36:9:61: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607033898-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607036658-05:00 7 | # Save KPI snapshot — rebuild to ensure post-merge fuel AND scan metrics included [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607039458-05:00 8 | today_kpis = {**trans_summary, **scan_summary} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607042268-05:00 9 | snapshot_kpis = {k: v for k, v in today_kpis.items() if isinstance(v, (int, float))} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607045128-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607047898-05:00 10 | # Explicitly add scan-sourced inside-sales metrics [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607050828-05:00 11 | for _k in ('total_sales', 'avg_item_price'): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607053488-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607056148-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607058798-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607061478-05:00 notebooks/report_generator_v5.ipynb:cell 36:19:5: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607064128-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607066738-05:00 17 | if _k not in snapshot_kpis and trans_summary.get(_k) is not None: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607069538-05:00 18 | snapshot_kpis[_k] = trans_summary[_k] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607072318-05:00 19 | history_db.save_day(STORE_ID, report_date, snapshot_kpis) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607075008-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607077668-05:00 20 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607085458-05:00 21 | # Get/create session and store report in conversation history [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607088288-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607090918-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607093558-05:00 notebooks/report_generator_v5.ipynb:cell 36:22:18: F821 Undefined name `conv_store` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607096368-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607099298-05:00 21 | # Get/create session and store report in conversation history [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607102028-05:00 22 | session_id = conv_store.get_or_create_session(STORE_ID, report_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607104688-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607107478-05:00 23 | conv_store.add_report(STORE_ID, session_id, report_markdown, report_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607110958-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607113398-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607115998-05:00 notebooks/report_generator_v5.ipynb:cell 36:23:5: F821 Undefined name `conv_store` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607118688-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607121398-05:00 21 | # Get/create session and store report in conversation history [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607124078-05:00 22 | session_id = conv_store.get_or_create_session(STORE_ID, report_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607127008-05:00 23 | conv_store.add_report(STORE_ID, session_id, report_markdown, report_date) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607129658-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607132438-05:00 24 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607135178-05:00 25 | # Save HTML + markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607137808-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607140398-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607142988-05:00 notebooks/report_generator_v5.ipynb:cell 36:26:14: F821 Undefined name `ReportManager` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607145608-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607148258-05:00 25 | # Save HTML + markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607150888-05:00 26 | mgr = ReportManager() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607153498-05:00 | ^^^^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607156188-05:00 27 | output = mgr.save_report( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607158808-05:00 28 | text = report_markdown, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607161508-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607163988-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607166548-05:00 notebooks/report_generator_v5.ipynb:cell 36:34:28: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607169138-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607171777-05:00 32 | 'high_flags' : len(high_flags), [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607174457-05:00 33 | 'label' : mytest, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607177127-05:00 34 | 'provider' : config.AI_PROVIDER, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607179897-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607182707-05:00 35 | 'session_id' : session_id, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607185397-05:00 36 | }, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607187947-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607190447-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607193017-05:00 notebooks/report_generator_v5.ipynb:cell 39:5:1: E401 [*] Multiple imports on one line [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607195747-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607198287-05:00 3 | # input file contains 3+ days). Can also be run manually for any multi-day file. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607200957-05:00 4 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607203677-05:00 5 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607206337-05:00 | ^^^^^^^^^^^^^^^^^^^^^ E401 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607212167-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607215027-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607217827-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607220697-05:00 = help: Split imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607227537-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607230427-05:00 notebooks/report_generator_v5.ipynb:cell 39:5:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607233307-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607236087-05:00 3 | # input file contains 3+ days). Can also be run manually for any multi-day file. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607238837-05:00 4 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607241497-05:00 5 | / import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607244187-05:00 6 | | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607246807-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607249547-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607252367-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607255127-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607257807-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607260377-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607263177-05:00 notebooks/report_generator_v5.ipynb:cell 39:7:8: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607265897-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607268627-05:00 5 | import importlib, sys [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607271507-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607274247-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607276957-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607279677-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607282447-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607285047-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607287697-05:00 notebooks/report_generator_v5.ipynb:cell 39:8:21: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607290297-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607292987-05:00 6 | for mod_name in [m for m in list(sys.modules.keys()) if 'agents' in m or 'data' in m]: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607295617-05:00 7 | try: importlib.reload(sys.modules[mod_name]) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607298287-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607300957-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607303587-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607306317-05:00 10 | from storeminder.agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607309067-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607311567-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607314167-05:00 notebooks/report_generator_v5.ipynb:cell 39:10:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607316967-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607320157-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607322907-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607325627-05:00 10 | from storeminder.agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607328357-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607331037-05:00 11 | from storeminder.agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607333937-05:00 12 | from storeminder.agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607336587-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607339097-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607341927-05:00 notebooks/report_generator_v5.ipynb:cell 39:10:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607344697-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607347617-05:00 8 | except Exception: pass [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607350587-05:00 9 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607353167-05:00 10 | / from storeminder.agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607355807-05:00 11 | | from storeminder.agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607364577-05:00 12 | | from storeminder.agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607367477-05:00 13 | | from storeminder.agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607370287-05:00 14 | | from storeminder.report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607373097-05:00 15 | | from storeminder.data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607375867-05:00 16 | | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607378707-05:00 17 | | if report_type != "weekly": [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607381527-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607384346-05:00 18 | print(f"ℹ report_type='{report_type}' — this cell is for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607387156-05:00 19 | print(f" Input file has {_n_dates} day(s). Need ≥3 days for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607389946-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607392766-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607395396-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607398096-05:00 notebooks/report_generator_v5.ipynb:cell 39:11:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607400696-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607403416-05:00 10 | from storeminder.agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607406106-05:00 11 | from storeminder.agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607408816-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607411666-05:00 12 | from storeminder.agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607414466-05:00 13 | from storeminder.agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607417376-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607419976-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607422706-05:00 notebooks/report_generator_v5.ipynb:cell 39:12:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607425426-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607428176-05:00 10 | from storeminder.agents.fuel_agent import FuelAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607430946-05:00 11 | from storeminder.agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607433766-05:00 12 | from storeminder.agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607436676-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607439506-05:00 13 | from storeminder.agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607442216-05:00 14 | from storeminder.report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607444846-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607447426-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607450116-05:00 notebooks/report_generator_v5.ipynb:cell 39:13:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607452776-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607455596-05:00 11 | from storeminder.agents.category_management_agent import CategoryManagementAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607458426-05:00 12 | from storeminder.agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607464376-05:00 13 | from storeminder.agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607467216-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607469926-05:00 14 | from storeminder.report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607472676-05:00 15 | from storeminder.data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607475506-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607478246-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607487826-05:00 notebooks/report_generator_v5.ipynb:cell 39:14:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607490626-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607493476-05:00 12 | from storeminder.agents.anomaly_agent import AnomalyAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607496466-05:00 13 | from storeminder.agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607499326-05:00 14 | from storeminder.report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607502116-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607504956-05:00 15 | from storeminder.data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607507816-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607510406-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607513296-05:00 notebooks/report_generator_v5.ipynb:cell 39:15:1: E402 Module level import not at top of cell [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607516226-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607519106-05:00 13 | from storeminder.agents.synthesis_agent import SynthesisAgent [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607522086-05:00 14 | from storeminder.report_manager import ReportManager [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607524996-05:00 15 | from storeminder.data.ingestion import DataLoader, DataPreprocessor [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607527836-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E402 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607530736-05:00 16 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607533536-05:00 17 | if report_type != "weekly": [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607536356-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607538916-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607541656-05:00 notebooks/report_generator_v5.ipynb:cell 39:20:11: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607544476-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607547406-05:00 18 | print(f"ℹ report_type='{report_type}' — this cell is for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607550086-05:00 19 | print(f" Input file has {_n_dates} day(s). Need ≥3 days for weekly mode.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607552976-05:00 20 | print(f" To force weekly: set report_type='weekly' before Cell 14.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607555826-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607558606-05:00 21 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607561336-05:00 22 | print(f"Weekly Deep Dive: {_date_start} → {_date_end} ({_n_dates} days)") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607564056-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607566876-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607569516-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607572306-05:00 notebooks/report_generator_v5.ipynb:cell 39:54:28: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607575086-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607577906-05:00 52 | _cat_col39 = 'category' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607580576-05:00 53 | _sd39 = scan_df.copy() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607583326-05:00 54 | _sd39['_bd'] = pd.to_datetime(_sd39['date'], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607586816-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607589696-05:00 55 | _si39 = _sd39[(_sd39['_bd']==_d) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607592396-05:00 56 | (_sd39[_cat_col39].astype(str).str.lower() != 'fuel') & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607595145-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607597735-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607600445-05:00 notebooks/report_generator_v5.ipynb:cell 39:57:53: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607603315-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607606115-05:00 55 | _si39 = _sd39[(_sd39['_bd']==_d) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607613775-05:00 56 | (_sd39[_cat_col39].astype(str).str.lower() != 'fuel') & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607616695-05:00 57 | (_sd39.get('Line Status', pd.Series(['normal']*len(_sd39)))=='normal')] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607619525-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607622245-05:00 58 | _sc_ids39 = set(_si39['Transaction ID'].dropna()) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607625045-05:00 59 | _fu39 = _sd39[(_sd39['_bd']==_d) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607627785-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607630495-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607633275-05:00 notebooks/report_generator_v5.ipynb:cell 39:63:28: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607636045-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607638815-05:00 61 | _fu_ids39 = set(_fu39['Transaction ID'].dropna()) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607641695-05:00 62 | _td39 = trans_df.copy() [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607645425-05:00 63 | _td39['_bd'] = pd.to_datetime(_td39['Business Date'], errors='coerce').dt.date [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607648415-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607651495-05:00 64 | _td39 = _td39[(_td39['_bd']==_d) & (_td39['Type'].isin(['sale','network sale']))] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607654465-05:00 65 | _unsc39 = _td39[~_td39['Transaction ID'].isin(_sc_ids39) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607658725-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607661535-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607664595-05:00 notebooks/report_generator_v5.ipynb:cell 39:67:59: F821 Undefined name `pd` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607667695-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607670665-05:00 65 | _unsc39 = _td39[~_td39['Transaction ID'].isin(_sc_ids39) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607674315-05:00 66 | ~_td39['Transaction ID'].isin(_fu_ids39) & [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607677435-05:00 67 | (_td39.get('Item Line Count', pd.Series([1]*len(_td39))) > 0)] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607680515-05:00 | ^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607682615-05:00 68 | _amt_col39 = 'Total Amount' if 'Total Amount' in _td39.columns else 'Grand Total' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607684675-05:00 69 | _gap39 = float(_unsc39[_amt_col39].sum()) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607686705-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607688645-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607690675-05:00 notebooks/report_generator_v5.ipynb:cell 39:85:23: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607692725-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607697695-05:00 83 | _low_fuel = float(_fuel_gal or 0) < 50 # <50 gal = not a real trading day [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607699755-05:00 84 | if _few_tx or _low_fuel or _scan_warned: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607701865-05:00 85 | if _few_tx: reason = f'only {_ts.get("total_transactions",0)} transactions' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607703885-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607705915-05:00 86 | elif _low_fuel: reason = f'only {_fuel_gal:.0f} fuel gallons (stub/overflow)' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607707955-05:00 87 | else: reason = 'no scan rows matched this date' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607709965-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607711935-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607713905-05:00 notebooks/report_generator_v5.ipynb:cell 39:86:27: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607715925-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607718005-05:00 84 | if _few_tx or _low_fuel or _scan_warned: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607720055-05:00 85 | if _few_tx: reason = f'only {_ts.get("total_transactions",0)} transactions' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607725995-05:00 86 | elif _low_fuel: reason = f'only {_fuel_gal:.0f} fuel gallons (stub/overflow)' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607728035-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607730075-05:00 87 | else: reason = 'no scan rows matched this date' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607732065-05:00 88 | print(f" Skipping {_d} — {reason}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607734075-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607736015-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607737995-05:00 notebooks/report_generator_v5.ipynb:cell 39:87:17: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607739975-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607742055-05:00 85 | if _few_tx: reason = f'only {_ts.get("total_transactions",0)} transactions' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607744295-05:00 86 | elif _low_fuel: reason = f'only {_fuel_gal:.0f} fuel gallons (stub/overflow)' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607746355-05:00 87 | else: reason = 'no scan rows matched this date' [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607748435-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607750445-05:00 88 | print(f" Skipping {_d} — {reason}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607752445-05:00 89 | continue [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607754445-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607756405-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607758405-05:00 notebooks/report_generator_v5.ipynb:cell 39:111:15: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607760435-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607762505-05:00 110 | # Fetch this day's DOW baseline for per-day trend comparison [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607764895-05:00 111 | _db = history_db.get_same_dow_baseline(STORE_ID, _d, weeks_back=52, min_samples=2) if 'history_db' in dir() else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607766935-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607768935-05:00 112 | if not _db and 'history_db' in dir(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607771655-05:00 113 | _db = history_db.get_rolling_average(STORE_ID, _d, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607773685-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607775655-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607777615-05:00 notebooks/report_generator_v5.ipynb:cell 39:111:121: E501 Line too long (139 > 120) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607779625-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607781715-05:00 110 | # Fetch this day's DOW baseline for per-day trend comparison [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607783795-05:00 111 | _db = history_db.get_same_dow_baseline(STORE_ID, _d, weeks_back=52, min_samples=2) if 'history_db' in dir() else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607785835-05:00 | ^^^^^^^^^^^^^^^^^^^ E501 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607787865-05:00 112 | if not _db and 'history_db' in dir(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607789905-05:00 113 | _db = history_db.get_rolling_average(STORE_ID, _d, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607791945-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607793875-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607795895-05:00 notebooks/report_generator_v5.ipynb:cell 39:113:19: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607797895-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607799895-05:00 111 | _db = history_db.get_same_dow_baseline(STORE_ID, _d, weeks_back=52, min_samples=2) if 'history_db' in dir() else None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607801995-05:00 112 | if not _db and 'history_db' in dir(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607803975-05:00 113 | _db = history_db.get_rolling_average(STORE_ID, _d, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607805964-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607808664-05:00 114 | weekly_days.append({ [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607814424-05:00 115 | 'date': str(_d), [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607816464-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607818394-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607820414-05:00 notebooks/report_generator_v5.ipynb:cell 39:184:70: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607822414-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607824414-05:00 182 | _top_wk = _wi.groupby('item').agg( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607826484-05:00 183 | revenue=('amount','sum'), units=('Sales Qty','sum') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607828524-05:00 184 | ).reset_index().sort_values('revenue', ascending=False).head(config.MAX_TOP_ITEMS) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607830524-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607833174-05:00 185 | weekly_scan_summary['top_items'] = [ [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607835204-05:00 186 | {'item': row['item'], 'revenue': round(float(row['revenue']),2), [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607837214-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607839154-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607841194-05:00 notebooks/report_generator_v5.ipynb:cell 39:206:22: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607843244-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607845324-05:00 204 | import datetime as _dt2 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607847354-05:00 205 | _day_d = _dt2.date.fromisoformat(_day_info['date']) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607849374-05:00 206 | _day_b = history_db.get_same_dow_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607851434-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607853424-05:00 207 | STORE_ID, _day_d, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607855444-05:00 208 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607857514-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607859474-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607861484-05:00 notebooks/report_generator_v5.ipynb:cell 39:208:28: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607863494-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607867514-05:00 206 | _day_b = history_db.get_same_dow_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607869554-05:00 207 | STORE_ID, _day_d, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607871574-05:00 208 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607873594-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607875614-05:00 209 | min_samples=config.SAME_DOW_MIN_SAMPLES, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607877704-05:00 210 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607879704-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607881634-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607883674-05:00 notebooks/report_generator_v5.ipynb:cell 39:209:29: F821 Undefined name `config` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607885664-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607888054-05:00 207 | STORE_ID, _day_d, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607891094-05:00 208 | weeks_back=config.LOOKBACK_WEEKS, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607894244-05:00 209 | min_samples=config.SAME_DOW_MIN_SAMPLES, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607897324-05:00 | ^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607900224-05:00 210 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607902944-05:00 211 | if not _day_b: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607905814-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607908734-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607911034-05:00 notebooks/report_generator_v5.ipynb:cell 39:212:26: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607913024-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607915124-05:00 210 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607921724-05:00 211 | if not _day_b: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607927134-05:00 212 | _day_b = history_db.get_rolling_average(STORE_ID, _day_d, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607933754-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607935984-05:00 213 | if _day_b: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607938414-05:00 214 | for k, v in _day_b.items(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607940404-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607942334-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607944374-05:00 notebooks/report_generator_v5.ipynb:cell 39:215:24: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607946484-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607948474-05:00 213 | if _day_b: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607950564-05:00 214 | for k, v in _day_b.items(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607952574-05:00 215 | if isinstance(v, (int, float)): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607954604-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607956714-05:00 216 | _wb_accum[k] = _wb_accum.get(k, 0) + v [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607958814-05:00 217 | _wb_counts[k] = _wb_counts.get(k, 0) + 1 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607960814-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607962844-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607964774-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607966804-05:00 notebooks/report_generator_v5.ipynb:cell 39:245:19: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607968794-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607970814-05:00 243 | if weekly_baseline.get('avg_fuel_ticket', 0) > 100: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607972814-05:00 244 | weekly_baseline.pop('avg_fuel_ticket', None) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607975234-05:00 245 | print(f" ⚠ avg_fuel_ticket baseline >$100 — suppressed (data error)") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607978454-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607981544-05:00 246 | if _wb_tx > 0: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607984514-05:00 247 | weekly_baseline['avg_ticket'] = round(_wb_ins/_wb_tx,2) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607987204-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607989274-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607991214-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607993184-05:00 notebooks/report_generator_v5.ipynb:cell 39:250:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607995174-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607997174-05:00 248 | if _wb_rev > 0: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.607999184-05:00 249 | weekly_baseline['inside_sales_share_pct'] = round(_wb_ins/_wb_rev*100,1) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608001194-05:00 250 | print(f" Weekly baseline (summed per-DOW):") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608003244-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608005304-05:00 251 | for _k in ['total_revenue','fuel_gallons','total_sales']: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608007364-05:00 252 | if _k in weekly_baseline: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608009364-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608011394-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608013314-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608015314-05:00 notebooks/report_generator_v5.ipynb:cell 39:262:48: UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608017344-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608019434-05:00 260 | 'forecourt_conversion_pct'} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608021584-05:00 261 | weekly_baseline = {k: (v if k in _ratio_keys else [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608023573-05:00 262 | v * _n_dates if isinstance(v,(int,float)) else v) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608025583-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^^^ UP038 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608031873-05:00 263 | for k, v in baseline.items()} [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608033903-05:00 264 | weekly_baseline['sample_count'] = _n_dates [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608036043-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608038153-05:00 = help: Convert to `X | Y` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608040113-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608042093-05:00 notebooks/report_generator_v5.ipynb:cell 39:284:121: E501 Line too long (129 > 120) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608044163-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608046243-05:00 282 | _worst = min(weekly_days, key=lambda x: x['total_revenue']) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608048253-05:00 283 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608050373-05:00 284 | print(f"Week total: {_week_fuel_gal:,.0f} gal | ${_week_inside:,.0f} inside | ${_week_revenue:,.0f} total | {_week_tx:,} tx") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608052843-05:00 | ^^^^^^^^^ E501 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608056023-05:00 285 | print(f"Best day: {_best['dow_name']} (${_best['total_revenue']:,.0f})") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608059233-05:00 286 | print(f"Worst day: {_worst['dow_name']} (${_worst['total_revenue']:,.0f})") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608062323-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608064293-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608066283-05:00 notebooks/report_generator_v5.ipynb:cell 39:315:31: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608068343-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608070373-05:00 313 | store_lat=STORE_LAT, store_lon=STORE_LON, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608072423-05:00 314 | google_api_key=GOOGLE_PLACES_API_KEY, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608074463-05:00 315 | history_store=history_db, store_id=STORE_ID, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608079333-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608081443-05:00 316 | report_date=_date_end, language=LANGUAGE, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608083523-05:00 317 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608085573-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608087533-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608089513-05:00 notebooks/report_generator_v5.ipynb:cell 39:357:35: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608091513-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608093523-05:00 355 | dow_profile = dow_profile if 'dow_profile' in dir() else None, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608095523-05:00 356 | schedule_section = schedule_section if 'schedule_section' in dir() else None, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608097563-05:00 357 | category_baselines = history_db.get_category_baseline(STORE_ID, _date_end, days=28) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608099573-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608101603-05:00 358 | if 'history_db' in dir() else {}, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608103673-05:00 359 | weekly_category_totals = _week_cat, # actual accumulated weekly totals [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608105693-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608107623-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608109693-05:00 notebooks/report_generator_v5.ipynb:cell 39:372:33: F821 Undefined name `conv_store` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608111743-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608113823-05:00 370 | fuel_pricing_section = _w_fuel_pricing_md, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608115863-05:00 371 | prior_actions = (PRIOR_ACTIONS or []) + [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608117913-05:00 372 | (conv_store.get_open_action_items(STORE_ID) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608119913-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608121973-05:00 373 | if 'conv_store' in dir() else []), [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608131223-05:00 374 | ) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608134443-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608137323-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608140013-05:00 notebooks/report_generator_v5.ipynb:cell 39:412:29: F821 Undefined name `history_db` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608142033-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608144063-05:00 410 | cat_name: { [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608146093-05:00 411 | 'revenue': cat_rev, [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608148223-05:00 412 | 'baseline': history_db.get_category_baseline( [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608150233-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608152263-05:00 413 | STORE_ID, report_date, days=28).get(cat_name, 0) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608154263-05:00 414 | if 'history_db' in dir() else 0 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608156303-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608158233-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608160363-05:00 notebooks/report_generator_v5.ipynb:cell 39:449:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608162523-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608164553-05:00 447 | print("=" * 60) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608166543-05:00 448 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608168593-05:00 449 | / from IPython.display import display, Markdown [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608170683-05:00 450 | | _wr_text = weekly_report.text if hasattr(weekly_report, 'text') else str(weekly_report) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608172723-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608174773-05:00 451 | display(Markdown(_wr_text.split('---SMS---')[0])) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608176783-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608178813-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608180753-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608182833-05:00 notebooks/report_generator_v5.ipynb:cell 40:35:12: E701 Multiple statements on one line (colon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608184883-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608186973-05:00 33 | print("⚠ No SMS digest found — ---SMS--- delimiter missing from LLM output.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608189083-05:00 34 | _raw = (sms_text or '')[:200].replace('\n',' ') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608191153-05:00 35 | if _raw: print(f" Raw output starts with: {_raw!r}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608193253-05:00 | ^ E701 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608195293-05:00 36 | print(" This usually means the LLM hit a token/rate limit. Re-run Cell 34 or 39.") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608197333-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608199283-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608201393-05:00 notebooks/report_generator_v5.ipynb:cell 40:49:15: F541 [*] f-string without any placeholders [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608203473-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608206003-05:00 47 | saved = output.get('sms_block_paths', {}) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608210333-05:00 48 | if saved: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608213443-05:00 49 | print(f"\nBlock files saved:") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608215973-05:00 | ^^^^^^^^^^^^^^^^^^^^^^^ F541 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608217983-05:00 50 | for name, path in saved.items(): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608219983-05:00 51 | print(f" {name}: {path}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608222093-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608224113-05:00 = help: Remove extraneous `f` prefix [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608226033-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608228033-05:00 notebooks/report_generator_v5.ipynb:cell 42:6:13: F821 Undefined name `HTML` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608230533-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608232583-05:00 4 | print(' Weekly mode: run Cell 39 — it sets output automatically.') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608234623-05:00 5 | else: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608240563-05:00 6 | display(HTML(output['html_content'])) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608242753-05:00 | ^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608245282-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608247252-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608249252-05:00 notebooks/report_generator_v5.ipynb:cell 43:1:11: F821 Undefined name `conv_store` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608251252-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608253302-05:00 1 | summary = conv_store.get_session_summary(STORE_ID, session_id) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608255342-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608257422-05:00 2 | print(f"Session : {summary['session_id']}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608259452-05:00 3 | print(f"Messages : {summary['messages']}") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608261462-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608263412-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608265422-05:00 notebooks/report_generator_v5.ipynb:cell 44:1:16: F821 Undefined name `conv_store` [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608267422-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608269462-05:00 1 | open_actions = conv_store.get_open_action_items(STORE_ID) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608271612-05:00 | ^^^^^^^^^^ F821 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608273642-05:00 2 | if open_actions: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608275752-05:00 3 | print(f"{len(open_actions)} open action item(s) for {STORE_ID}:\n") [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608277762-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608279702-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608282212-05:00 notebooks/report_generator_weekly.ipynb:cell 5:3:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608285392-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608288462-05:00 1 | # Optional interactive controls. Active ONLY in an interactive kernel and a [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608291502-05:00 2 | # NO-OP under papermill (headless), so injected parameters are never overridden. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608293552-05:00 3 | / import os [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608295592-05:00 4 | | _INTERACTIVE = (os.environ.get('PAPERMILL_OUTPUT_PATH') is None and [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608297602-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608305642-05:00 5 | os.environ.get('PAPERMILL_INPUT_PATH') is None) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608307842-05:00 6 | _WIDGETS = None [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608309842-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608311862-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608313812-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608316052-05:00 notebooks/report_generator_weekly.ipynb:cell 5:9:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608318092-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608320132-05:00 7 | if _INTERACTIVE: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608322182-05:00 8 | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608324232-05:00 9 | / import ipywidgets as W [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608326332-05:00 10 | | from IPython.display import display [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608328332-05:00 11 | | from storeminder.runner import discover_stores [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608330352-05:00 12 | | try: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608332512-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608338212-05:00 13 | _stores = discover_stores() or [STORE_ID] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608340292-05:00 14 | except Exception: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608342372-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608344412-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608346372-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608348422-05:00 notebooks/report_generator_weekly.ipynb:cell 5:22:37: E702 Multiple statements on one line (semicolon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608350682-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608352762-05:00 20 | _w_end = W.Text(value=str(END_DATE or ''), description='End date', [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608354822-05:00 21 | placeholder='YYYY-MM-DD (blank = yesterday)') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608362882-05:00 22 | _WIDGETS['store'] = _w_store; _WIDGETS['end'] = _w_end [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608367142-05:00 | ^ E702 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608369942-05:00 23 | _row = [_w_store, _w_end] [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608372062-05:00 24 | _w_start = W.Text(value=str(START_DATE or ''), description='Start date', [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608374082-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608376002-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608378072-05:00 notebooks/report_generator_weekly.ipynb:cell 5:26:30: E702 Multiple statements on one line (semicolon) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608380082-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608382132-05:00 24 | _w_start = W.Text(value=str(START_DATE or ''), description='Start date', [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608384252-05:00 25 | placeholder='YYYY-MM-DD (blank = END_DATE - 6)') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608386272-05:00 26 | _row.append(_w_start); _WIDGETS['start'] = _w_start [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608388292-05:00 | ^ E702 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608390362-05:00 27 | _w_push = W.Checkbox(value=bool(PUSH), description='Push to S3') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608392392-05:00 28 | _w_deliv = W.Checkbox(value=bool(DELIVER), description='Deliver SMS/email') [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608394482-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608396422-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608398452-05:00 notebooks/report_generator_weekly.ipynb:cell 7:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608400442-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608402442-05:00 1 | # Build + validate the run parameters (one schema; widgets OR papermill). [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608404452-05:00 2 | / from storeminder.params import ReportParams [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608406452-05:00 3 | | def _val(key, default): [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608408472-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608410472-05:00 4 | if _WIDGETS and key in _WIDGETS: [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608412472-05:00 5 | v = _WIDGETS[key].value [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608414472-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608416482-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608418412-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608420462-05:00 notebooks/report_generator_weekly.ipynb:cell 9:2:1: I001 [*] Import block is un-sorted or un-formatted [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608422472-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608424492-05:00 1 | # Run the full artifact flow (pull -> curate -> pipeline -> push -> deliver). [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608426512-05:00 2 | / from storeminder import runner [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608428552-05:00 3 | | result = runner.run_report(params) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608430582-05:00 | |_^ I001 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608432612-05:00 4 | print('status:', result.get('status'), '| cadence:', result.get('cadence')) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608434662-05:00 5 | print('report html:', (result or {}).get('html')) [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608437512-05:00 | [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608441032-05:00 = help: Organize imports [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608443912-05:00 [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608446312-05:00 Found 305 errors. [pod/pr-validator-mjhws-lint-pod/step-ruff-mypy] 2026-07-12T17:00:19.608448432-05:00 [*] 94 fixable with the `--fix` option (9 hidden fixes can be enabled with the `--unsafe-fixes` option). ===== pr-validator-mjhws-post-status-pod.log ===== [pod/pr-validator-mjhws-post-status-pod/prepare] 2026-07-12T17:00:30.100093913-05:00 2026/07/12 22:00:30 Entrypoint initialization [pod/pr-validator-mjhws-post-status-pod/place-scripts] 2026-07-12T17:00:32.395952138-05:00 2026/07/12 22:00:32 Decoded script /tekton/scripts/script-0-ptbv5 Error from server (BadRequest): container "step-post-status" in pod "pr-validator-mjhws-post-status-pod" is waiting to start: PodInitializing ===== pr-validator-mjhws-reclaim-workspace-pod.log ===== [pod/pr-validator-mjhws-reclaim-workspace-pod/prepare] 2026-07-12T17:00:32.234523617-05:00 2026/07/12 22:00:32 Entrypoint initialization Error from server (BadRequest): container "place-scripts" in pod "pr-validator-mjhws-reclaim-workspace-pod" is waiting to start: PodInitializing ===== pr-validator-mjhws-status-container-pod.log ===== [pod/pr-validator-mjhws-status-container-pod/prepare] 2026-07-12T17:00:28.014119780-05:00 2026/07/12 22:00:28 Entrypoint initialization [pod/pr-validator-mjhws-status-container-pod/place-scripts] 2026-07-12T17:00:28.908380752-05:00 2026/07/12 22:00:28 Decoded script /tekton/scripts/script-0-pl56r [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.551414583-05:00 Posting commit status to GitHub [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.551456223-05:00 Repo: storeminder-ai/storeminder [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.551461933-05:00 SHA: 30507c1e6cb1b85d76fdd41ee0058b4fa2d4672c [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.551465003-05:00 State: success (Succeeded) [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.551468093-05:00 Target URL: https://ci-logs.storeminder.ai/storeminder-ai/storeminder/pr-621/pr-validator-mjhws/logs.txt [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.932953742-05:00 { [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.932985651-05:00 "url": "https://api.github.com/repos/storeminder-ai/storeminder/statuses/30507c1e6cb1b85d76fdd41ee0058b4fa2d4672c", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.932992051-05:00 "avatar_url": "https://avatars.githubusercontent.com/u/702924?v=4", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.932997391-05:00 "id": 50347149695, [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933003041-05:00 "node_id": "SC_kwDOS9o4_c8AAAALuOyJfw", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933007711-05:00 "state": "success", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933012321-05:00 "description": "Checks passed", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933018171-05:00 "target_url": "https://ci-logs.storeminder.ai/storeminder-ai/storeminder/pr-621/pr-validator-mjhws/logs.txt", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933022751-05:00 "context": "tekton/container-build", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933027471-05:00 "created_at": "2026-07-12T22:00:33Z", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933032241-05:00 "updated_at": "2026-07-12T22:00:33Z", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933036751-05:00 "creator": { [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933041721-05:00 "login": "steveblackmon", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933046211-05:00 "id": 702924, [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933050681-05:00 "node_id": "MDQ6VXNlcjcwMjkyNA==", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933058631-05:00 "avatar_url": "https://avatars.githubusercontent.com/u/702924?v=4", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933063251-05:00 "gravatar_id": "", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933069401-05:00 "url": "https://api.github.com/users/steveblackmon", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933074311-05:00 "html_url": "https://github.com/steveblackmon", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933078871-05:00 "followers_url": "https://api.github.com/users/steveblackmon/followers", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933084481-05:00 "following_url": "https://api.github.com/users/steveblackmon/following{/other_user}", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933088961-05:00 "gists_url": "https://api.github.com/users/steveblackmon/gists{/gist_id}", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933093441-05:00 "starred_url": "https://api.github.com/users/steveblackmon/starred{/owner}{/repo}", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933098051-05:00 "subscriptions_url": "https://api.github.com/users/steveblackmon/subscriptions", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933102941-05:00 "organizations_url": "https://api.github.com/users/steveblackmon/orgs", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933107391-05:00 "repos_url": "https://api.github.com/users/steveblackmon/repos", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933111911-05:00 "events_url": "https://api.github.com/users/steveblackmon/events{/privacy}", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933116361-05:00 "received_events_url": "https://api.github.com/users/steveblackmon/received_events", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933120891-05:00 "type": "User", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933125411-05:00 "user_view_type": "public", [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933129901-05:00 "site_admin": false [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933134411-05:00 } [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.933138961-05:00 } [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.936815414-05:00 [pod/pr-validator-mjhws-status-container-pod/step-post-status] 2026-07-12T17:00:33.936893363-05:00 Status posted successfully ===== pr-validator-mjhws-status-django-pod.log ===== [pod/pr-validator-mjhws-status-django-pod/prepare] 2026-07-12T17:00:25.020566900-05:00 2026/07/12 22:00:25 Entrypoint initialization [pod/pr-validator-mjhws-status-django-pod/place-scripts] 2026-07-12T17:00:25.638192157-05:00 2026/07/12 22:00:25 Decoded script /tekton/scripts/script-0-t8wgf [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.109107781-05:00 Posting commit status to GitHub [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.109143381-05:00 Repo: storeminder-ai/storeminder [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.109147791-05:00 SHA: 30507c1e6cb1b85d76fdd41ee0058b4fa2d4672c [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.109151081-05:00 State: success (Succeeded) [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.109154321-05:00 Target URL: https://ci-logs.storeminder.ai/storeminder-ai/storeminder/pr-621/pr-validator-mjhws/logs.txt [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525491729-05:00 { [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525585469-05:00 "url": "https://api.github.com/repos/storeminder-ai/storeminder/statuses/30507c1e6cb1b85d76fdd41ee0058b4fa2d4672c", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525591869-05:00 "avatar_url": "https://avatars.githubusercontent.com/u/702924?v=4", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525596319-05:00 "id": 50347148178, [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525600729-05:00 "node_id": "SC_kwDOS9o4_c8AAAALuOyDkg", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525605049-05:00 "state": "success", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525609679-05:00 "description": "Checks passed", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525613959-05:00 "target_url": "https://ci-logs.storeminder.ai/storeminder-ai/storeminder/pr-621/pr-validator-mjhws/logs.txt", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525618409-05:00 "context": "tekton/django", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525622409-05:00 "created_at": "2026-07-12T22:00:29Z", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525627229-05:00 "updated_at": "2026-07-12T22:00:29Z", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525631199-05:00 "creator": { [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525635899-05:00 "login": "steveblackmon", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525639879-05:00 "id": 702924, [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525643798-05:00 "node_id": "MDQ6VXNlcjcwMjkyNA==", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525647818-05:00 "avatar_url": "https://avatars.githubusercontent.com/u/702924?v=4", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525651958-05:00 "gravatar_id": "", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525656118-05:00 "url": "https://api.github.com/users/steveblackmon", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525660018-05:00 "html_url": "https://github.com/steveblackmon", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525663958-05:00 "followers_url": "https://api.github.com/users/steveblackmon/followers", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525668208-05:00 "following_url": "https://api.github.com/users/steveblackmon/following{/other_user}", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525672208-05:00 "gists_url": "https://api.github.com/users/steveblackmon/gists{/gist_id}", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525676148-05:00 "starred_url": "https://api.github.com/users/steveblackmon/starred{/owner}{/repo}", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525687658-05:00 "subscriptions_url": "https://api.github.com/users/steveblackmon/subscriptions", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525692048-05:00 "organizations_url": "https://api.github.com/users/steveblackmon/orgs", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525696118-05:00 "repos_url": "https://api.github.com/users/steveblackmon/repos", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525700098-05:00 "events_url": "https://api.github.com/users/steveblackmon/events{/privacy}", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525704178-05:00 "received_events_url": "https://api.github.com/users/steveblackmon/received_events", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525708138-05:00 "type": "User", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525712088-05:00 "user_view_type": "public", [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525715988-05:00 "site_admin": false [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525719978-05:00 } [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.525723898-05:00 } [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.528658684-05:00 [pod/pr-validator-mjhws-status-django-pod/step-post-status] 2026-07-12T17:00:29.528670934-05:00 Status posted successfully ===== pr-validator-mjhws-status-infra-fmt-pod.log ===== [pod/pr-validator-mjhws-status-infra-fmt-pod/prepare] 2026-07-12T17:00:29.970442905-05:00 2026/07/12 22:00:29 Entrypoint initialization [pod/pr-validator-mjhws-status-infra-fmt-pod/place-scripts] 2026-07-12T17:00:31.761010455-05:00 2026/07/12 22:00:31 Decoded script /tekton/scripts/script-0-bcq8z ===== pr-validator-mjhws-status-lint-pod.log ===== [pod/pr-validator-mjhws-status-lint-pod/prepare] 2026-07-12T17:00:26.694212011-05:00 2026/07/12 22:00:26 Entrypoint initialization [pod/pr-validator-mjhws-status-lint-pod/place-scripts] 2026-07-12T17:00:27.795206195-05:00 2026/07/12 22:00:27 Decoded script /tekton/scripts/script-0-grs8l [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.127464506-05:00 Posting commit status to GitHub [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.127499596-05:00 Repo: storeminder-ai/storeminder [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.127503516-05:00 SHA: 30507c1e6cb1b85d76fdd41ee0058b4fa2d4672c [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.127506635-05:00 State: failure (Failed) [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.127510215-05:00 Target URL: https://ci-logs.storeminder.ai/storeminder-ai/storeminder/pr-621/pr-validator-mjhws/logs.txt [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502004597-05:00 { [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502086757-05:00 "url": "https://api.github.com/repos/storeminder-ai/storeminder/statuses/30507c1e6cb1b85d76fdd41ee0058b4fa2d4672c", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502091467-05:00 "avatar_url": "https://avatars.githubusercontent.com/u/702924?v=4", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502095237-05:00 "id": 50347148816, [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502098817-05:00 "node_id": "SC_kwDOS9o4_c8AAAALuOyGEA", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502102007-05:00 "state": "failure", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502105297-05:00 "description": "Checks failed", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502109727-05:00 "target_url": "https://ci-logs.storeminder.ai/storeminder-ai/storeminder/pr-621/pr-validator-mjhws/logs.txt", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502113137-05:00 "context": "tekton/lint", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502116277-05:00 "created_at": "2026-07-12T22:00:31Z", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502119447-05:00 "updated_at": "2026-07-12T22:00:31Z", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502122657-05:00 "creator": { [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502125907-05:00 "login": "steveblackmon", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502129947-05:00 "id": 702924, [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502133807-05:00 "node_id": "MDQ6VXNlcjcwMjkyNA==", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502137877-05:00 "avatar_url": "https://avatars.githubusercontent.com/u/702924?v=4", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502141807-05:00 "gravatar_id": "", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502146067-05:00 "url": "https://api.github.com/users/steveblackmon", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502149967-05:00 "html_url": "https://github.com/steveblackmon", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502153897-05:00 "followers_url": "https://api.github.com/users/steveblackmon/followers", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502158147-05:00 "following_url": "https://api.github.com/users/steveblackmon/following{/other_user}", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502162077-05:00 "gists_url": "https://api.github.com/users/steveblackmon/gists{/gist_id}", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502165957-05:00 "starred_url": "https://api.github.com/users/steveblackmon/starred{/owner}{/repo}", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502178097-05:00 "subscriptions_url": "https://api.github.com/users/steveblackmon/subscriptions", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502182396-05:00 "organizations_url": "https://api.github.com/users/steveblackmon/orgs", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502186536-05:00 "repos_url": "https://api.github.com/users/steveblackmon/repos", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502191266-05:00 "events_url": "https://api.github.com/users/steveblackmon/events{/privacy}", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502195256-05:00 "received_events_url": "https://api.github.com/users/steveblackmon/received_events", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502199206-05:00 "type": "User", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502202996-05:00 "user_view_type": "public", [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502206876-05:00 "site_admin": false [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502211246-05:00 } [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.502215826-05:00 } [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.505601461-05:00 [pod/pr-validator-mjhws-status-lint-pod/step-post-status] 2026-07-12T17:00:31.505623561-05:00 Status posted successfully