pwfdf-api 2.0.0 Release Notes

The pwfdf-api 2.0.0 release provides a slim installation option, and makes the full-feature installation the default. The release also provides more flexible options for delimiting search filters, and brings many internal migrations to the project, including:

  • Migrating from fiona to pyogrio for GIS file parsing,

  • Migrating from argparse to typer for CLI implementation, and

  • Migrating from poetry to uv for project management

New Features

Installation

  • The geospatial libraries used to parse GIS geometry files have been grouped into the [gis] extra. Installing with this extra pip install pwfdf-api[gis] ... is now the recommended default.

  • Added a slim installation pip install pwfdf-api ... that does not include these geospatial libraries. The slim installation is more suitable for resource limited environments.

Command Line Delimiters

  • Date ranges now support comma delimiters. For example: --start-date 2025,2026

  • Download files now support comma delimiters. For example: --files Shapefile.zip,metadata.json and --exclude-files Shapefile.zip,metadata.json

  • bbox and point now support comma delimiters. For example: --bbox -121,32,-119,34 and --point -121,32

  • fields now supports comma delimiters. For example: --fields title,summary

Logging

  • Logging formats now default to the format used by the CLI.

  • Set format=None to inherit the log format of any pre-existing loggers with the same target

  • Added options for rotating file logs: --rotate-bytes, --backup-count (CLI) / rotate_bytes, backup_count (Python)

Misc

  • When calling a download with --dry-run, the logs now indicated that no data will be downloaded

  • In Python, major version strings may now be provided using a string (in addition to an integer). For example: version="1" and version=1 are both supported.

Internal

  • Migrate CLI implementation from argparse to typer

  • Migrate GIS file parsing from fiona to pyogrio+pyproj+shapely

  • Migrate logging implementation to logset library

  • Migrate project management from poetry to uv

  • Refactor pipeline to use uv to manage python versions

  • Migrate formatters/linters from black+isort to ruff

  • Add pre-commit checks

  • Move poe tasks from pyproject.toml to poe-tasks.toml

  • Switched from flat to src layout

  • Restructure layout to use core -> api -> cli architecture

Deprecations

  • The --geometry-driver (CLI) / geometry_driver (Python) option has been deprecated. This option no longer does anything, and will be removed in a future release.

Breaking Changes

Installation

  • The base/slim installation pip install pwfdf-api ... no longer supports parsing GIS files. Users should migrate to pip install pwfdf-api[gis] ... to preserve this support.

Command Line Parsing

  • Space-delimited date ranges must now appear in quotes. For example, change --start-date 2025 2026 to --start-date "2025 2026" or use comma delimiters: --start-date 2025,2026

  • Space delimited download --files or --exclude-files must now appear in quotes. For example, change --files Shapefile.zip metadata.sjon to --files "Shapefile.zip metadata.json" or use comma delimiters --files Shapefile.zip,metadata.json.