Namespace Guide¶
Use zeroproofml as the canonical public namespace for package names,
documentation, and new import examples.
zeroproof is a deprecated compatibility namespace for existing code. It
remains available through 0.8.x and may be removed no earlier than 1.0.0.
Short rule¶
- New docs, notebooks, and user-facing examples should prefer
zeroproofml.*. - Existing integrations that already import
zeroproof.*do not need an immediate rename. - Within one file or example, pick one namespace family and stay consistent.
Canonical imports for new code¶
from zeroproofml.inference import InferenceConfig, strict_inference
from zeroproofml.training import SCMTrainer
from zeroproofml.metrics import tau_infer_sweep_from_q_abs
Compatibility imports remain supported:
from zeroproof.inference import InferenceConfig, strict_inference
from zeroproof.training import SCMTrainer
Both forms resolve to the same underlying SCM implementation modules.
Compatibility imports emit DeprecationWarning; applications should migrate
their own imports rather than suppressing the warning globally.
When zeroproofml.* is required¶
New surfaces live under zeroproofml.* and should be documented that way:
zeroproofml.benchmarkszeroproofml.reportzeroproofml.reference_robotics_deployment
Those modules do not need a legacy zeroproof.* counterpart.
Maintainer rule for new modules¶
When adding future SCM implementation modules, put maintained implementations under zeroproofml.*:
- add a thin
zeroproof.*wrapper only for a historically public path - keep internal imports canonical
- do not add a global import hook or meta-path finder
Current namespace layout¶
zeroproofml.* is both the canonical public import path and the physical
implementation root. zeroproof.* contains explicit compatibility wrappers.
That keeps the public package name aligned with the published docs while preserving compatibility for the pre-existing import tree.