Skip to content

Add 64 public contracts; verify 118 paths and two dashboards - #6

Open
kvkenyon wants to merge 1 commit into
feat/public-metadata-expansionfrom
feat/public-coverage-batches
Open

Add 64 public contracts; verify 118 paths and two dashboards#6
kvkenyon wants to merge 1 commit into
feat/public-metadata-expansionfrom
feat/public-coverage-batches

Conversation

@kvkenyon

@kvkenyon kvkenyon commented Sep 6, 2026

Copy link
Copy Markdown
Owner

This adds 64 source-backed Public Reports contracts to the prior 56 and two anonymous price/supply-demand dashboards. It stacks on PR #4 at dea83409ad8666545f518154e90722f1b42ff69c; it excludes ESR service/auth work and the archive samplers delivered separately in PR #5. Existing PRs are unchanged and unmerged.

The generated inventory is 120 paths in 87 namespaces. Installed-wheel requests verified 118 paths in both current and oldest-first directions, producing 242 typed API rows in 237 successful designated receipts (119 current, 118 historical; the prior DAM second page is the extra current receipt). This slice adds 124 successful one-row receipts across 62 new paths. NP4-442-CD and NP4-443-CD have source-backed schemas and offline fixtures but failed installed retrieval in both directions, including one bounded retry. All eight failed operations remain visible. Empty pending_generated_paths means every generated path was attempted; pending_generated_both_period_paths lists these two failures. Generation is not successful retrieval.

The two anonymous captures decode 537 source rows: 80 RT prices, 24 DAM prices, 289 supply/demand rows and 144 published outlook rows. The observed stale price capture remains explicitly stale. Source-declared DECIMAL is supported without coercing strings/booleans, missing schemas fail closed, and evidence indexing distinguishes attempts, failures, typed rows and complete selections. All legacy runtime files remain byte-identical to the audit base; imports, signatures, defaults, exceptions and DataFrame behavior are preserved.

The other 123 observed API paths remain outside generated coverage. NP3-763-CD's declared/observed hour-ending contradiction stays untyped. Five operations in retired products stay explicitly retired; available history is separate work. Hourly-load 2001 remains unavailable. Secure, Certified, participant EWS, private telemetry/bids/COP/awards, customer records and participant settlements remain restricted. Authorized authenticated public ERCOT requests occurred. No restricted request, historical file download in this slice, bulk historical extraction, paid access, secret copying, forecast computation, no-mistakes run or merge occurred. No full-history claim follows from one-row observations.

Primary evidence: ERCOT Public Reports OpenAPI, public product metadata, System-Wide Prices, and Supply and Demand. Exact source hashes/receipts are pinned in the repository. See docs/evidence/installed-registry-index.json, docs/evidence/installed-additional-dashboard-receipts.json, and docs/public-coverage-task-note.md.

Validation used the exact staged tree at /tmp/tinyercot-coverage-check.lDHLK0, preserving and excluding the other worker's uncommitted files:

git checkout-index --all --prefix=/tmp/tinyercot-coverage-check.lDHLK0/
cd /tmp/tinyercot-coverage-check.lDHLK0
/tmp/tinyercot-locked-wheel/bin/python -m pytest -q
/tmp/tinyercot-typing-proof.fbtIin/venv/bin/python -m pytest -q
/tmp/tinyercot-typing-proof.fbtIin/venv/bin/python -m pytest -q tests/test_discover_public.py tests/test_installed_evidence_index.py tests/test_public_coverage.py tests/test_probe_registry.py tests/test_additional_dashboards.py
/tmp/tinyercot-typing-proof.fbtIin/venv/bin/python -m ruff check tools tinyercot/catalog.py tinyercot/public tests
/tmp/tinyercot-typing-proof.fbtIin/venv/bin/python -m ruff format --check tools tinyercot/catalog.py tinyercot/public tests
/tmp/tinyercot-typing-proof.fbtIin/venv/bin/python tools/generate_client.py --check
/tmp/tinyercot-typing-proof.fbtIin/venv/bin/python tools/generate_public.py --check
uv build
uv pip install --python /tmp/tinyercot-locked-wheel/bin/python --no-deps --reinstall /tmp/tinyercot-coverage-check.lDHLK0/dist/tinyercot-0.2.2-py3-none-any.whl
uv pip install --python /tmp/tinyercot-typing-proof.fbtIin/venv/bin/python --no-deps --reinstall /tmp/tinyercot-coverage-check.lDHLK0/dist/tinyercot-0.2.2-py3-none-any.whl
/tmp/tinyercot-locked-wheel/bin/python -I tests/wheel_smoke.py
/tmp/tinyercot-locked-wheel/bin/python tools/check_typing.py --python /tmp/tinyercot-locked-wheel/bin/python
/tmp/tinyercot-typing-proof.fbtIin/venv/bin/python -I tests/wheel_smoke.py
/tmp/tinyercot-typing-proof.fbtIin/venv/bin/python tools/check_typing.py --python /tmp/tinyercot-typing-proof.fbtIin/venv/bin/python

Results: 1450 passed, 1 skipped on Python 3.11.14 and 3.14.0; 82 focused tests passed; Ruff lint/format passed for 66 Python files; both generators reproduced pinned output; wheel and sdist built. Both installed smoke and PEP 561 proofs passed: 510 legacy methods, 1334 legacy row fields, 120 current endpoint/product facades, 1143 current row fields, 2001 filters and 128 rejected invalid uses, plus live/archive/metadata contracts. Google-style public documentation reviewed. An earlier source-tree test run found two stale-index failures; the final offline index rebuild resolved them.

Before commit, git diff --cached --check passed, git diff d1daad25df42d3fff41f88b907d99ef325b970e0 -- tinyercot/__init__.py tinyercot/_client.py tinyercot/_generated.py was empty, git check-ignore .env confirmed exclusion, and status/diff/PR base were inspected. Exact bounded live commands and outcomes are in the task note. Remaining Public Reports and public binary/retired history work continues independently without waiting for merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant