New
- Manages dependencies using
uv - Implements formatting via
ruff - Implements matrix strategy on test-package GHA pipeline to run tests on python 3.11, 3.12, and 3.13
- Adds new
skip_regex_validationtofpdsParserallowing users to bypass regex validation performed on query parameters. This will also help users query using new parameters that don't exist inconstants/fields.json - Adds
tqdmprogress bar functionality initer_datamethod - Adds new
iter_datamethod onfpdsParserclass to allow users access to records as an AsyncGenerator
Improved
- Removes library support for python >=3.8.X, <3.11.X
- Deprecates
blackandisort(in lieu ofruff) - Modifies
datamethod onfpdsParserto useiter_datamethod and automatically de-nests records - Sets
dynamicattribute inpyproject.toml - Adds
versioningitto build system requirements - Updates CLI
parsecommand due to restructure ofiter_dataanddatamethods - Removes
fpdsXMLclass in lieu offpdsElementclass which better denotes class function. - Updates XML classes to inherit from
fpdsElement - Adds new
fpdsTreeandfpdsSubTreeclasses to better differentiate main XML tree structure and subtree structure from pagination links - Addresses
mypytype issues across entirecorenamespace
Fixes
- Fixes missing
tqdmprogress bar from withinProcessPoolExecutor
Improved
- Data records from
fpdsParserare now returned as a generator
Fixes
- Re-adds
__call__tofpdsRequest, preventingfpds parseCLI command from failing
New
- Supports asynchronous requests via
asyncio/aiohttp
Fixes
- Addresses mypy type issues with core library
Improved
- Deprecates dependency on
requests - Restructures
utilities/params.pyand its references in the CLI namespace. - Reduces query completion time by 84.89%
- Adds support for unbounded values in
fields.json. Previously, range-based parameters had to define an upper & lower bound (i.e.[4250, 7500]). Users can now specify the following patterns for all range parameters:[4250,)or(, 7500]. This even works for dates:[2022/08/22,)or(, 2022/08/01]!
New
- Adds support for asynchronous API calls and XML multiprocessing
- Adds support for FPDS ATOM feed v1.5.3 (i.e. all advanced filters supported in fpds.gov are supported with this library)
- Moves PyPI packaging to pyproject.toml
Fixes
- Fixes a bug where requests with less than 20 records were being truncated since the last ATOM feed request was being truncated at 10 records.
New
- First major release published to pypi