All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
excludeparameter forConfigurationSpace.random_unique_configurations()to exclude previously generated configurationsexclude_fileandoutput_fileparameters forrandom_unique_structure_substitutions()to support batch generation workflowsConfiguration.to_dict()andConfiguration.from_dict()methods for serialisationsave_configurations()andload_configurations()utility functions for JSON file I/O- Documentation for batch generation workflow in
random_sampling.ipynb
- Varying composition enumeration via
unique_configurations_by_compositionmethod generate_partitionsutility for integer partitioningcompute_mapping_vectorsfor species permutation mappingsatisfies_boundsfor occupancy constraint validation- Comprehensive progress tracking with nested progress bars
- Verbose output options for composition enumeration
unique_structure_substitutions_by_compositionin pymatgen interface- Multi-level disorder enumeration documentation and examples
- Complete documentation restructure with separate Theory and User Guide sections
- Type hints throughout the codebase with mypy static type checking in CI
- BREAKING: Minimum Python version raised to 3.10
- BREAKING: Removed
ColourOperationclass (moved tofeature/colour-operationsbranch) - Optimised Configuration storage using
np.int8arrays - Implemented batched symmetry operations with cached index mappings
- Migrated from individual loops to vectorised NumPy operations
- Updated CI to GitHub Actions with Python 3.10-3.14 support
- CI now uses pytest as test runner (unittest test suite maintained)
- Converted narrative documentation from reStructuredText to Markdown
- Species exchange symmetry optimisation reduces analyses by 40-50%
- Substantially improved configuration enumeration performance
- Example: 2×2×2 supercell of TiOF₂ shows 4.7× speedup (35.6s → 7.6s) with 13% memory overhead
- Vectorised operations and optimised data types throughout
- Complete restructure: Getting Started, Theory, User Guide, API Reference
- New theory documents explaining mathematical foundations
- Practical Jupyter notebook tutorials with executable examples
- Expanded README with installation, testing, and usage examples
- Added multi-level disorder enumeration examples
- Added mypy static type checking to CI pipeline
- Modernised GitHub Actions workflow with pip caching and parallel coverage
- Updated to pyproject.toml-based configuration