Skip to content

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 DeprecationWarning naming 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.