Skip to content

Contributing

Guidelines for contributing to ProgridPy. This section covers development setup, coding standards, and testing practices.

Sections

  • Development -- Environment setup, branching, linting, and the pull request process.
  • Testing -- pytest conventions, test structure, fixtures, and coverage expectations.

Code Conventions (Summary)

These principles govern all code in the repository:

  • Simple, short, elegant, optimized code. No over-engineering.
  • No try-except bloat. Let errors propagate unless there is a specific recovery action.
  • No helpers for one-time use. No premature abstractions.
  • Comments only when logic is not self-evident. Keep comments brief.
  • Absolute imports everywhere. No relative imports.
  • Polars for ISO processing. All data processing in the ISO module uses Polars (SPP is the reference). The metrics module uses pandas.
  • PEP 695 generics for type parameterization.
  • ruff for linting and formatting. No other formatters.

Architecture Reference

See the API Reference for the full module map. The high-level data flow is:

Raw ISO Data --> Processing --> Hive-Partitioned Parquet (S3/local) --> Metrics Engine --> Dashboard