You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
_parse_webhook_alert: aligned the parser output with the WebhookAlert
type contract. Sparse server payloads now hydrate query_type and filters
as "" / {} (matching their declared non-null types) rather than None,
and status is typed as the Literal["active", "paused"] the model promises.
Clears the four type-check errors this introduced; no change for full payloads.
Contract model: removed dead fields (id, award_id, recipient_name, award_amount, awarding_agency, funding_agency) and added the real API
fields (key, piid, obligated, total_contract_value, base_and_exercised_options_value, awarding_office, funding_office, naics_code, psc_code, set_aside, solicitation_identifier, parent_award, legislative_mandates, subawards_summary, place_of_performance). The deprecated fields remain declared with None
defaults for one minor cycle (they never returned data) and will be removed
in 2.0.0. New OrganizationOfficePayload dataclass for the office fields.
(Contract is a documentation-only dataclass — not instantiated or exported
— so there is no runtime impact.)
list_contracts: no longer sends page=1 to the cursor-only /api/contracts/
endpoint. When no cursor is supplied, neither page nor cursor is sent and
the API returns the first page by default.
Shape validation: registered the ContractOrIDVCompetition nested schema
(alias of Competition) so nested selections like competition(extent_competed,number_of_offers_received) on contract / IDV
shapes validate instead of raising ShapeValidationError.
Added
Budget accounts surface (tango v4.6.8): list_budget_accounts, get_budget_account, get_budget_account_quarters, get_budget_account_recipients. New BudgetAccount dataclass exported from
the top-level package, plus ShapeConfig.BUDGET_ACCOUNTS_MINIMAL.
get_entity_budget_flows(uei) for /api/entities/{uei}/budget-flows/.
list_otidv_awards(key) for /api/otidvs/{key}/awards/ (parity with Node).
grant_id filter kwarg on list_grants (supports multi-value OR via |).
CI
Re-enabled lint.yml as a PR + push-to-main gate. ruff format and ruff check are hard gates; mypy runs advisory (continue-on-error) pending
burn-down of ~28 pre-existing type errors. The filter/shape conformance check
is a separate job that skips cleanly until a TANGO_API_REPO_ACCESS_TOKEN
secret for the private manifest repo is configured, at which point it becomes
a hard gate.