API Stability
at-py is still a 0.x package. The current API is intended to be practical and
well tested, but not frozen.
Public Surface
The top-level at_py package is the curated application API. It exports
ATClient, common parsers and formatters, MAT helpers, runtime constants, and
selected result dataclasses.
The at_py.readwrite package exposes the full read/write surface, including
lower-level helpers and additional result types. Import from this namespace when
you need a symbol that is not intentionally re-exported at the package root.
Current Stabilization Decisions
These choices are part of the current 0.x contract and should be changed only with a changelog entry and focused tests:
at_pyremains the application namespace. It should include the runner client, common parse/read/format helpers, MAT helpers, runtime constants, and the result dataclasses needed by those helpers.at_py.readwriteremains the full implementation namespace. Lower-level helpers such asload_mat_normalized_pathandparse_readvector_linesstay there unless a concrete application use case justifies promoting them.Runtime parse and format APIs stay in-memory-first. Path-based convenience wrappers are limited to explicit helpers such as
load_mat_normalized_path; they are not added to every parser/formatter by default.Model dispatch follows Matlab
read_env.mbehavior. Writer-only aliases such assimplePEare not accepted byparse_read_envorformat_parsed_envunless read-side behavior is implemented and tested.MAT v7.3 support stays demand-driven. Unsupported high-level MATLAB types should continue to fail loudly until an Acoustics Toolbox workflow needs them.
1.0 Exit Criteria
Before a 1.0 release, maintainers should verify:
the top-level
at_py.__all__set is intentionally curated;result dataclasses used by top-level helpers are documented as public result contracts;
runner-backed validation covers the primary application workflows;
the release workflow can publish through PyPI Trusted Publishing;
any breaking changes are either completed or explicitly deferred.
Current Compatibility Promise
Within the 0.x line, prefer additive changes and clear deprecations where
possible. Breaking changes should be documented in the changelog and released as
minor bumps while major_version_zero = true remains configured for
Commitizen.