Stability and versioning¶
dpm-synth follows semantic versioning. A major version may break the public API; minor and patch versions do not. The changelog lists every change, with breaking changes marked.
The public API¶
- The names in
dpmsynth.__all__, documented in the Python API, with the fields ofModuleTemplate,TemplateTable,OpenKey,TemplateCell,TemplateRuleandGenerationResult, and the attributes ofSyntheticDatadocumented there. - The
TemplateErrorcontract: every unreadable or invalid template raisesTemplateError, aValueError. - The
dpm-synth-template/1format. A change that a reader of version 1 cannot ignore gets a new format version; dpm-synth keeps reading version 1 for the rest of the major version. - The CLI: its commands, options, exit statuses
and the
--jsonlayout, versioned byschema_version.
Modules and names that start with an underscore are internal, as are names
not in dpmsynth.__all__; import public names from dpmsynth.
dpmsynth.__version__ gives the installed version.
What may change in a minor release¶
- New functions, parameters with defaults, fields, CLI options, JSON fields and repairs.
- The values generated for a seed. A better repair, or a fix in dpm-xl or dpm-xbrl, can change the values and which rules pass. The changelog notes it. Pin all three packages if a fixture must stay byte for byte the same; see reproduce a report.
- The wording of the text summary, error messages and
not_evaluatedreasons. - Performance characteristics.
Python versions¶
dpm-synth supports Python 3.11 to 3.15. Support for a Python version is dropped only in a minor release, after its end of life.
Dependencies¶
dpm-synth depends on dpm-xl and dpm-xbrl, within one major version of
each (>=1.0,<2), and uses only their public APIs.