A hardening release: every public input is validated at the boundary, every validation failure raises InvalidRequestError. Existing call sites upgrade unchanged unless they catch TypeError for config errors or override DataxidClient.base_url.
Changed
- Validation exception: all validation failures raise
InvalidRequestError, which now inherits fromDataxidErrorandValueError.except ValueErrorkeeps working; replaceexcept TypeErrorwithexcept InvalidRequestErrorfor config errors. - HTTPS enforcement:
DataxidClient.base_urlmust usehttps://, except for local-development hosts.
Added
- Boundary validation: invalid inputs to public methods now fail before any network call or training step begins, with the offending parameter named on the exception.
ModelConfigvalidation:model_sizeandencoding_typesrejected at construction time when given unknown values.Tableinvariants: foreign keys cannot match the table's own primary key and self-references are rejected;synthesize_tablesrejects malformedtablesdicts.
Fixed
- HTTP client: joins
base_urland paths consistently regardless of trailing slashes; parsesRetry-Afterin numeric and HTTP-date formats. - Logging:
enable_logging()no longer crashes withAttributeErroron non-string levels. - Decode pipeline: numeric-discrete decoding reaches the
NULL_TOKENpath; a default rare-strategy interaction previously masked nulls. - Training metrics: loss recording preserves legitimate
0.0values.
PyPI: https://pypi.org/project/dataxid/0.3.1/
Full Changelog: v0.3.0...v0.3.1