Public API and stability¶
A name is public if it is in the __all__ of one of these modules:
| Layer | Module | What it holds |
|---|---|---|
| Loading and graphs | pydexpi, pydexpi.loaders |
load_xml_*, load_json_*, load_model, get_graph, get_graphs, the serializers |
| Exports | pydexpi.exports |
Graph and Neo4j records, tables as DataFrames, in-memory exports and file-writing wrappers |
| Labels | pydexpi |
get_display_name, enum_value_label, attribute_label |
| Classes | pydexpi.pydexpi_classes |
The classes DEXPI specifies, generated from the specification |
The command-line options and the MCP server's tools are public as well.
Other modules, such as pydexpi.toolkits, pydexpi.query, pydexpi.validation and pydexpi.diff,
are documented and meant to be used, but may still change in a minor release. Anything that starts
with an underscore is private.
Versioning and deprecation¶
- A breaking change to the public API needs a new major version.
- A public name that is going away first emits a
DeprecationWarningnaming its replacement, for at least one minor release. - A new DEXPI version can change the generated classes, and the release notes say so. The classes follow the specification, so such a change is not deprecated first.