Changelogο
v0.6.0 (2026-04-07)ο
Validation rules module (
sloth.mmcif.rules): -DictionaryValidator: auto-generates checks from the bundled mmCIFdictionary via
DictionaryParser(mandatory items, enumerations, type-regex patterns, FK/composite-key integrity, parent/child presence)MmcifValidator: extendsDictionaryValidatorwith wwPDB deposition business rules expressed as declarative class-level data tables18 composable rule factory functions for custom validation
ValidatorPluginsupports multiple validators per category (list-based)MMCIFHandler(strict=True)auto-registersMmcifValidatorGeneric plugin system:
PluginFactory,Plugin,PluginWrapper,FunctionPluginStreamlined registration:
handler.register("_cat", func)for validators, tuples for cross-checkersDelete support:
del block._category,block.delete("_category"), same for itemsSafe access mode:
auto_create=FalseonDataBlock/MMCIFDataContainerStrict mode:
MMCIFHandler(strict=True)wiresauto_create=Falsethrough the full parse chainRemove backward-compat shims:
ValidatorFactory,validator_factory=kwargs, property aliasesUpdate docs, cookbook, and API reference for new plugin API
v0.5.4 (2026-04-07)ο
Fix project URLs in pyproject.toml (lucas/sloth β lucas-ebi/sloth)
v0.5.3 (2026-04-07)ο
Add Sphinx + Read the Docs documentation with full API reference
Integrate interactive cookbook notebook into docs
Streamline README as concise PyPI landing page
Add string interning note to performance table
v0.5.2 (2025-12-15)ο
Initial public release on TestPyPI
High-performance gemmi-backed parser and writer
Lazy object construction with
cached_propertyDot-notation and dictionary access patterns
JSON export with automatic relationship resolution
JSON import with automatic flattening
Pluggable validation system with cross-category support
mmCIF dictionary parsing and FK/PK mapping