27 lines
1.4 KiB
Markdown
27 lines
1.4 KiB
Markdown
# USAC collector operations
|
|
|
|
From the repository root: `python w1.py usac`.
|
|
Offline parsing is covered by `python -m unittest discover -s tests -v`.
|
|
`python w1.py usac --fixture PATH` accepts saved index HTML, with the same output
|
|
behavior as the live command.
|
|
|
|
The public source is https://www.usac.org/about/procurement/. The collector
|
|
extracts solicitation identifiers, links and table dates, then classifies records
|
|
as potentially open, expired, awarded or needing date review. Presence in the
|
|
index is not proof of an actionable opportunity. It reads
|
|
`data/opportunities.json` for deduplication and never modifies that pipeline.
|
|
|
|
Outputs retain the legacy `runs/YYYY-MM-DD/usac.json` and `new_candidates.json`
|
|
locations using the machine's local date. Repeated runs on the same day overwrite
|
|
those two outputs; preserve them before a repeat. W1-017 did not change that
|
|
behavior. Its CLI test substitutes a temporary output root, preserving history.
|
|
|
|
If access or parsing fails, inspect the index and individual solicitation manually.
|
|
Do not bypass access restrictions. Dates, eligibility, organizational references,
|
|
insurance and submission requirements still require review before action.
|
|
USAC IT-26-139 remains excluded by the existing bidder-readiness decision.
|
|
|
|
W1-017 corrected a discovered decoding issue: the existing pipeline has a UTF-8
|
|
BOM. USAC now reads it with `utf-8-sig`, as LRS already did. Pipeline bytes and
|
|
solicitation classification rules are unchanged.
|