pymatgen
Python materials genomics analysis library
pymatgen split its core into a separate package without breaking a single import.
◆Recent moves
- 3mo ago
2026.5.4: phase diagram hull fixes and a faster pmg CLI
Two phase-diagram correctness fixes — same-composition entries reappearing in inner hull reduction, and energy_adjustments not clearing properly in clean mode — plus a partial update method for projected phase diagrams. Lazy imports speed up pmg CLI startup, and the LobsterEnv constructors that mixed file paths and objects are deprecated in favor of object-only initialization.
View source ↗ - 4mo ago
2026.3.23: core functionality moves to a separate pymatgen-core package
⚡ SPARKThe repository is reorganized so core functionality lives in its own repo and ships as a separate PyPI package, with the notes stressing that pip install pymatgen still provides everything it did before. The same release rewrites the LOBSTER parsers with a memory-efficient streaming architecture, which is the largest single I/O change in this window.
View source ↗ - 10mo ago
2025.10.7: PROCAR k-point indexing bug attributed data to the wrong points
The headline fix matters more than its one-line entry suggests: when repeated k-points were skipped while reading PROCAR, projections, eigenvalues, occupations and weights were attributed to the wrong k-points, and the following point came back with NaN projections. Anyone plotting band structures along a k-path was affected. The rest is hygiene — print replaced with logging, a missing sdist on PyPI restored, and two deprecations.
View source ↗ - 1y ago
2025.6.14: single source of truth for POTCAR directories, faster symmetry analysis
The CLI is made to use the same POTCAR directory structure as pymatgen.io.vasp.inputs, which the author flags as possibly breaking for CLI users — a small change with real migration cost. A faster is_periodic_image implementation cuts a documented bottleneck in get_primitive_standard_structure, and JDFTXOutfileSlice.trajectory gains frame properties.
View source ↗ - 1y ago
2025.5.28: orjson becomes the default JSON handler
orjson becomes a required dependency and the default JSON handler where no custom encoder is needed — a serialization speedup that every caller gets without changing code. The JDFTX parser also gets a durability pass so that partially dumped output files no longer abort parsing.
View source ↗ - 1y ago
2025.5.2: lxml removed from Vasprun parsing
A single-line release removing lxml on the grounds that it is slower for many Vasprun parsing situations. One dependency fewer, no API change.
View source ↗