The format is based on Keep a Changelog. This project adheres to Semantic Versioning.
- New rational parsing mode based on
fractions.Fraction(#161) - Spacegroup symop lookup when a table of translation operators is not provided (#160)
- Support for
loop_data entries containing unescaped quotes (#162)
parse_mode='rational'is now the default setting in build_unit_cell (#161)n_decimal_places=3is now the default setting in build_unit_cell (#161)
parse_mode='sympy'is now deprecated in favor ofrational(#161)
- Tutorial on loading CIF files in HOOMD-Blue
- Tutorial on loading CIF files in LAMMPS
- Tutorial on reconstructing CIF files with limited numerical precision
- Documentation for the
CifFile.PATTERNSdict and its relation to the formal CIF grammar
CifFile.__repr__now includes a copy-pasteable section for reproducibility
- Support for Python 3.14
- Support for reading files via a context manager, text buffer, or string.
- Support for CIF2.0
"""and'''strings - Support for COD-style
_key \n 'value'strings - Tests for a wider variety of edge case syntax features
CifFile._wildcard_mappinglookup table for easier testing of wildcard keys.
- Regular expression parsing steps no longer need to backtrack, except in whitespace containing strings in loop tables
- Progressive and lazy Kleene star/plus operators are used where possible
- Key names now support the full range of characters specified in the CIF2.0 spec
- Regular expressions components now link to relevant portions of the CIF spec where possible
- Data entries containing non-comment pound signs are no longer truncated
- Comments on
loop_keyword lines no longer cause parse errors - Unit cells for files without symmetry operations are now parsed correctly
- An infinite looping bug resulting from multiline strings with a particular structure
- Source of
LICENSEfile inpyproject.tomlto meet the change in Python spec. - Test and Publish CI now fails on warning, allowing for easier debugging.
- Support for Python 3.8, which is incompatible with the changes to
pyproject.toml
- Additional testpath flag in conftest
- Symbolic parsing mode for
build_unit_cell
build_unit_cellhas a symbolic computation mode that allows for more accurate construction of unit cells.
- Accessing data pairs with
get_from_pairsor__getitem__now allows for case-insensitive searches - Quote-delimited strings containing the delimiting character are now parsed properly
build_unit_cellnow rounds coordinates before wrapping into the box, fixing edge cases where boundary atoms were not properly deduplicated
- New
additional_columnsparameter forbuild_unit_cellthat allows the return of atom site labels and similar data alongside unit cell positions. - Ensured consistent ordering of lattice positions returned from
build_unit_cell. - CI testing on Windows and macOS
- Type hints now properly link to their associated documentation.
- Support for nonsimple (';'-delimited) data entries.
- Improved support for entries containing special characters.
- Ability to query multiple keys or columns simultaneously.
- Additional tests for AMCSD and zeolite databases.
- Additional documentation and examples for the new interface
- Primary interface is now the
CifFileobject, which supports all previously implemented features in addition to several new methods. - Files are now parsed lazily, and are traversed a single time.
- Added
more-itertoolsas a dependency forpeekableiterators
- Unitcells module
- Function-based parsing interface for key and table reading