Releases: N283T/ccd2rdmol
Releases · N283T/ccd2rdmol
v0.2.2
Changed
- Rewrote sanitizer to use
rdBase.BlockLogs()+Chem.DetectChemistryProblems()instead of unsafesys.stderrredirection _add_atomsreturnsdict[str, int]for O(1) bond lookup (was O(n) list scan)_str_to_floatreturnsfloat | Noneto distinguish missing CIF values from real zeros- Reject degenerate conformers (>1 atom at origin) instead of checking single-atom origin
sanitize()always works on a copy; the original input molecule is never modified
Added
tytype checker in dev dependencies and CI lint job- Release version validation (tag vs pyproject.toml) in release workflow
- Ruff rules: SIM, PERF, RUF, FURB
- Dependency upper bounds (
gemmi<1,rdkit<2026,rich<15,typer<1) - 38 new tests (73 → 95 total), overall coverage 82% → 91%
- API reference and advanced usage examples in README
Fixed
- Version mismatch between
__init__.pyandpyproject.toml(now usesimportlib.metadata) sanitize()no longer mutates the input molecule on failure/exception paths- Bond error handling: KeyError for missing atoms, RuntimeError for duplicate bonds
v0.2.1
Fixed
- Updated README with optional CLI installation instructions
- Updated CHANGELOG for v0.2.0 changes
v0.2.0
chore: bump version to 0.2.0
v0.1.0
Added
- Initial release
- CIF file parsing using gemmi
- Conversion to RDKit molecule objects
- Support for Ideal and Model 3D conformers
- Automatic metal bond to dative bond conversion
- Stereochemistry assignment from 3D coordinates
- CLI tool with
convertandinfocommands - Rich terminal output support
- Options for sanitization, conformer handling, and hydrogen removal