Skip to content

Releases: N283T/ccd2rdmol

v0.2.2

11 Feb 11:36
3a82f5e

Choose a tag to compare

Changed

  • Rewrote sanitizer to use rdBase.BlockLogs() + Chem.DetectChemistryProblems() instead of unsafe sys.stderr redirection
  • _add_atoms returns dict[str, int] for O(1) bond lookup (was O(n) list scan)
  • _str_to_float returns float | None to 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

  • ty type 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__.py and pyproject.toml (now uses importlib.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

16 Jan 05:18

Choose a tag to compare

Fixed

  • Updated README with optional CLI installation instructions
  • Updated CHANGELOG for v0.2.0 changes

v0.2.0

16 Jan 05:15

Choose a tag to compare

chore: bump version to 0.2.0

v0.1.0

14 Jan 16:49

Choose a tag to compare

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 convert and info commands
  • Rich terminal output support
  • Options for sanitization, conformer handling, and hydrogen removal