Skip to content

Latest commit

 

History

History
148 lines (116 loc) · 4.36 KB

File metadata and controls

148 lines (116 loc) · 4.36 KB

Changelog

The format is based on Keep a Changelog. This project adheres to Semantic Versioning.

v0.X.X - 20XX-XX-XX

Added

  • 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)

Changed

  • parse_mode='rational' is now the default setting in build_unit_cell (#161)
  • n_decimal_places=3 is now the default setting in build_unit_cell (#161)

Deprecated

  • parse_mode='sympy' is now deprecated in favor of rational (#161)

v0.5.0 - 2026-01-02

Added

  • 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.PATTERNS dict and its relation to the formal CIF grammar

Changed

  • CifFile.__repr__ now includes a copy-pasteable section for reproducibility

v0.4.1 - 2025-10-08

Added

  • Support for Python 3.14

v0.4.0 - 2025-09-03

Added

  • 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_mapping lookup table for easier testing of wildcard keys.

Changed

  • 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

Fixed

  • 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

v0.3.1 - 2025-07-16

Changed

  • Source of LICENSE file in pyproject.toml to meet the change in Python spec.
  • Test and Publish CI now fails on warning, allowing for easier debugging.

Removed

  • Support for Python 3.8, which is incompatible with the changes to pyproject.toml

v0.3.0 - 2025-07-16

Added

  • Additional testpath flag in conftest
  • Symbolic parsing mode for build_unit_cell

Changed

  • build_unit_cell has a symbolic computation mode that allows for more accurate construction of unit cells.

Fixed

  • Accessing data pairs with get_from_pairs or __getitem__ now allows for case-insensitive searches
  • Quote-delimited strings containing the delimiting character are now parsed properly
  • build_unit_cell now rounds coordinates before wrapping into the box, fixing edge cases where boundary atoms were not properly deduplicated

v0.2.1 - 2025-03-12

Added

  • New additional_columns parameter for build_unit_cell that 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

Fixed

  • Type hints now properly link to their associated documentation.

v0.2.0 - 2025-02-19

Added

  • 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

Changed

  • Primary interface is now the CifFile object, which supports all previously implemented features in addition to several new methods.
  • Files are now parsed lazily, and are traversed a single time.

Dependencies

  • Added more-itertools as a dependency for peekable iterators

v0.1.0 - 2024-12-20

Added

  • Unitcells module
  • Function-based parsing interface for key and table reading