Coverage for src/usaspending/resources/spending_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"""Spending 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.spending_search import SpendingSearch
12logger = USASpendingLogger.get_logger(__name__)
15class SpendingResource(BaseResource):
16 """Resource for spending-related operations.
18 Provides access to spending by category endpoints (recipient and district).
19 """
21 def search(self) -> "SpendingSearch":
22 """Create a new spending search query builder.
24 Returns:
25 SpendingSearch query builder for chaining filters
27 Example:
28 >>> # Search spending by recipient
29 >>> recipient_spending = client.spending.search()
30 ... .by_recipient()
31 ... .for_agency("NASA")
32 ... .for_fiscal_year(2024)
33 ... .limit(10)
35 >>> # Search spending by district
36 >>> district_spending = client.spending.search()
37 ... .by_district()
38 ... .spending_level("awards")
39 ... .with_place_of_performance_locations(Location("USA", "TX"))
40 ... .all()
41 """
42 logger.debug("Creating new SpendingSearch query builder")
43 from ..queries.spending_search import SpendingSearch
45 return SpendingSearch(self._client)