Changelog
Changelog
0.6.1
Bug fixes
Fixed variable shadowing in
polyhedra_from_atom_indicesthat caused only the first polyhedron to receive correct vertices.Invalid atom indices passed to
polyhedra_from_atom_indicesnow raiseValueErrorwith a descriptive message instead of a rawKeyError.
Performance
polyhedra_from_atom_indicesnow uses precomputed index-to-atom mappings for O(1) lookups instead of repeated linear scans.
Testing
Expanded test coverage across
configuration,coordination_polyhedron,orientation_parameters,polyhedra_recipe,trajectory, andutilsmodules.
0.6.0
Breaking changes
The
progressparameter onTrajectory.from_structures(),Trajectory.from_xdatcar(), andTrajectory.from_xdatcars()is nowboolinstead ofbool | str. The"notebook"option has been removed;tqdm.autonow handles automatic terminal/Jupyter detection. Replaceprogress="notebook"withprogress=True. Passing a non-bool now raisesTypeErrorwith a migration hint.Renamed
SymmetryMeasure.stringattribute toSymmetryMeasure.name.Removed unused
verboseparameter fromTrajectory.from_structures(),from_xdatcar(), andfrom_xdatcars().Removed unused
offsetparameter fromTrajectory.extend().
Bug fixes
Trajectory.extend()now extends both structures and configurations. Previously only configurations were extended, causing the two lists to fall out of sync.
Documentation
Comprehensive documentation overhaul with narrative pages, guides, and grouped API reference.
Added getting started guide and core concepts page.
Added guides for polyhedra recipes, continuous symmetry measures, neighbour analysis, and trajectory analysis.
Replaced auto-generated module stubs with a single grouped API reference page.
Added citing and changelog pages.
Modernised Sphinx configuration: replaced deprecated
recommonmarkwithmyst-parser, addedintersphinxcross-references to pymatgen, numpy, scipy, and matplotlib.Filled ~30 missing docstrings across the codebase.
Other changes
Switched from
tqdm/tqdm.notebooktotqdm.autofor progress bars.Removed unused imports from
trajectorymodule.
0.5.0
Performance
Cached
symmetry_measureproperty onCoordinationPolyhedronto avoid redundant CSM calculations on repeated access.edge_graphandsymmetry_measurenow return defensive copies to prevent callers from corrupting the internal cache.Replaced N! permutation loop in
RotationAnalyserwith symmetry-reduced approach using bsym, giving ~50x speedup for octahedral geometries.
Bug fixes
Fixed
OrientationDict.all_rotational_distancestype annotation (np.ndarray, notfloat).
Other changes
Removed redundant
assert isinstancechecks across the codebase.Added input shape validation to
RotationAnalyser.discrete_orientation.
0.4.0
Breaking changes
Removed dependency on
pymatgen.analysis.chemenv. CSM (continuous symmetry measure) calculation and reference geometry data are now implemented internally.minimum_symmetry_measure()now takesdistorted_points: np.ndarrayinstead ofAbstractGeometry.oct_rotational_order_parameter()now takespoints: np.ndarrayinstead ofAbstractGeometry.Removed
abstract_geometryproperty andconstruct_abstract_geometry()method fromCoordinationPolyhedron.
New features
Added
polyhedral_analysis.csmmodule with internalcontinuous_symmetry_measure()function using SVD-based Procrustes analysis.Added
polyhedral_analysis.reference_geometriesmodule with hardcoded ideal vertex coordinates for 17 reference geometries (CN 4-8).
Other changes
Split mypy type checking into a separate CI job.
0.3.0
Other changes
Migrated from setup.py to pyproject.toml.
Removed requirements.txt, .coveragerc, and .mypy.ini (consolidated into pyproject.toml).
Version now read at runtime via importlib.metadata.
Updated type hints to modern Python 3.11+ syntax.
Updated README with description, features, installation, and quick start example.
0.2.0
Performance
Reduced CSM (continuous symmetry measure) permutations using symmetry equivalence via bsym. Only symmetry-inequivalent vertex permutations are evaluated, giving 12-49x speedups depending on geometry symmetry.
Bug fixes
Removed duplicate “Dodecahedron with triangular faces” entry from CN=8 geometry list.
Fixed mypy errors across codebase.
Breaking changes
Now requires Python >=3.11 (previously >=3.7).
Removed numpy<2.0 version cap; now compatible with numpy 2.x.
Minimum pymatgen version bumped to >=2024.7.18.
New runtime dependencies: bsym, cmcrameri.
New features
Added orientation plotting.
Added off-centre displacement calculation.
Added octahedral orthogonality metric.
Added radial distortion parameter.
Added polyhedron centroid methods.
Added mapping from global to local vertex indices.
Revised vertex distance and vertex pair angle calculations.
Other changes
CI updated to test Python 3.11, 3.12, 3.13, 3.14.
CI now triggers only on pull requests.
0.1
Initial release.