Software guidelines#
Data and validation#
Use
attrsfields, converters, and validators for classes that need input validation.Use Pint for unit conversion and algebra.
In processing modules, use
BaseDataarithmetic where it supports the scientific operation; do not strip arrays and recreate unit or uncertainty propagation.Low-level geometry/model kernels may accept numerical arrays, but their module adapter must restore explicit
BaseDatasemantics.
Public behavior#
Keep configuration in
ProcessStepDescriber.argumentsand validate unknown keys and top-level types during pipeline loading.Declare exact source, processing-read, and processing-write dependencies.
Raise explicit unsupported-capability errors rather than silently using a partial fallback.
Maintain backwards compatibility deliberately and document deprecations.
Style and scope#
Prefer focused changes and tests.
Keep format handling out of numerical kernels and instrument policy out of the package core.
Avoid broad output in tests and tools; report step IDs, counts, and focused errors.
Follow the repository lint and import-order configuration.