Stability and versioning¶
dpm-xbrl 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 the
__all__ofdpmxbrl,dpmxbrl.filing(includingFilingLogandRule, with which callers add their own findings, andRULE_TITLES) anddpmxbrl.frames(including theon_metadataandon_tablecallbacks). - The fields of
Report,Fact,FilingFindingandLimits, and the attributes ofReportFrames. - The
ReportErrorcontract: every unreadable or unsafe input raisesReportError(or its subclassMetadataTablesError), aValueError. - The CLI: its commands, options, exit statuses and the
--jsonlayout, versioned byschema_version. - Filing rule numbers (
FilingFinding.rule) and tags (FilingFinding.code).
Modules whose names start with an underscore are internal, as are names
not in an __all__. dpmxbrl.__version__ gives the installed version.
What may change in a minor release¶
- New functions, parameters with defaults, fields with defaults, CLI
options, JSON fields and filing checks. A new filing check can add
findings to a report that had none, so a pipeline with
--fail-onmay start failing on a report it accepted before; read the changelog before upgrading such a pipeline. - The wording of warnings, filing-finding messages and error messages. Match on rule numbers and tags, never on messages.
- Performance characteristics.
Python versions¶
dpm-xbrl 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¶
The core package uses only the standard library and will stay so. The
optional extras (fast for isal, frames for polars) pin a major version
range.