Coverage for src/usaspending/resources/funding_resource.py: 100%
10 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-03 17:15 -0700
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-03 17:15 -0700
1"""Funding resource implementation."""
3from __future__ import annotations
4from typing import TYPE_CHECKING
6from .base_resource import BaseResource
7from ..logging_config import USASpendingLogger
9if TYPE_CHECKING:
10 from ..queries.funding_search import FundingSearch
12logger = USASpendingLogger.get_logger(__name__)
15class FundingResource(BaseResource):
16 """Resource for funding-related operations.
18 Provides access to federal account funding data for awards.
19 """
21 def for_award(self, award_id: str) -> "FundingSearch":
22 """Create a funding search query for a specific award.
24 Args:
25 award_id: Unique award identifier
27 Returns:
28 FundingSearch query builder for chaining filters
30 Example:
31 >>> funding = client.funding.for_award("CONT_AWD_123")
32 ... .order_by("fiscal_date", "asc")
33 ... .limit(50)
34 >>> for record in funding:
35 ... print(f"{record.reporting_fiscal_year}-{record.reporting_fiscal_month}: "
36 ... f"${record.transaction_obligated_amount:,.2f}")
37 """
38 logger.debug(f"Creating funding search for award: {award_id}")
39 from ..queries.funding_search import FundingSearch
41 return FundingSearch(self._client).for_award(award_id)