Releases: materialsproject/pymatgen
Releases · materialsproject/pymatgen
v2023.10.11
🐛 Bug Fixes
- Fix outdated
setup.py
find_namespace_packages
and addtest_egg_sources_txt_is_complete
by @janosh in #3374 release.yml
add option to publish to TestPyPI by @janosh in #3375- Fix wrong unit=eV in
get_band_(skewness|kurtosis)
doc string by @janosh in #3383 - Further updating POTCAR validation / identification by @esoteric-ephemera in #3392
MatPESStaticSet.yaml
setLMAXMIX: 6
by @janosh in #3400- Fix type annotations in phonon/ and lammps/ by @ab5424 in #3401
- Fix
OBAlign(includeH=False, symmetry=False)
can't take keywords by @janosh in #3403
🛠 Enhancements
- New class to handle
NcICOBILIST.lobster
files by @QuantumChemist in #2878 - Add
inplace: bool=True
arg toStructure.apply_strain()
by @janosh in #3376 - Add
Structure.to_(conventional|primitive|cell)
methods by @janosh in #3384 - Add
SiteCollection.to_ase_atoms()
by @janosh in #3389 - Add
mode: Literal["w", "a", "wt", "at"] = "w"
keyword toCifWriter.write_file()
by @janosh in #3399
📖 Documentation
🧹 House-Keeping
- Fix ruff
FURB
violations by @janosh in #3382 - Remove deprecated module
pymatgen/util/convergence.py
by @janosh in #3388 - Remove
pylint: disable
comments by @janosh in #3390 - Fix
ruff
N806
by @janosh in #3394
🧪 Tests
- Update
incar_parameters.json
to allowISIF=8
by @matthewkuner in #3381 - Add
test_potcar_summary_stats()
by @janosh in #3395 - Mirror atomate2 fix and improve
MPScanRelaxSet.test_kspacing
edge case coverage by @janosh in #3396
💥 Breaking Changes
- Breaking: snake_case
FiestaInput
keywords and class attributes by @janosh in #3386 - Ion: default hydrates=False in reduced_formula by @rkingsbury in #3350
🏷️ Type Hints
- Add type annotations to io/lammps by @ab5424 in #3379
- Add type annotations to phonon by @ab5424 in #3393
Full Changelog: v2023.10.4...v2023.10.11
v2023.10.4
v2023.10.3
What's Changed
🐛 Bug Fixes
- Revert
openbabel.OBAlign()
inmolecule_matcher.py
to use positional args forincludeH
,symmetry
by @janosh in #3353 - Fix MPMD set bug by @MichaelWolloch in #3355
- Fix
TestMPResterNewBasic
+AseAtomsAdaptor
test errors andTransformedStructure.from_snl
overwritinghist
variable by @janosh in #3362 - Fix
TypeError
: can only join an iterable with AECCAR inVolumetricData.write_file
by @chiang-yuan in #3343
🛠 Enhancements
- Don't rely on
jsanitize
inAtoms
<-->Structure
object interconversion by @Andrew-S-Rosen in #3359 - Breaking: New method of POTCAR validation by @esoteric-ephemera in #3351
- Add alias
.to_file()
for.to()
method of structures and molecules by @QuantumChemist in #3356 - Update POTCAR summary stats to include 6.4 POTCARs and add
dev_script
utils for future updates by @esoteric-ephemera in #3370
🧹 House-Keeping
- Chargemol minor refactor by @janosh in #3357
- Breaking typo fix:
Targe(tt->t)edPenaltiedAbundanceChemenvStrategy
by @janosh in #3360 - Fix undiscovered tests by @janosh in #3369
🏥 Package Health
New Contributors
- @esoteric-ephemera made their first contribution in #3351
- @QuantumChemist made their first contribution in #3356
Full Changelog: v2023.9.25...v2023.10.3
v2023.9.25
What's Changed
🐛 Bug Fixes
- Fix
MPSOCSet
raising ValueError onstructure=None
by @janosh in #3310 - Fix
AttributeError
inBSPlotter.get_plot()
by @janosh in #3327 - Use
ax = fig.add_subplot(projection='3d')
to createAxes3D
by @janosh in #3330 - Fix breaking change to
CoherentInterfaceBuilder.get_interfaces
by @janosh in #3337 - Add
properties
@property/docstring toIStructure
by @mkhorton in #3338 - Always return 0 for
Composition.oxi_state_guesses()
of diatomic molecules by @janosh in #3332 - Fix:
TestMITMPRelaxSet.test_nelect
claimed to but wasn't testing disordered structure by @janosh in #3344
🛠 Enhancements
- Allow usage of
calculate_ng
with a custom ENCUT and PREC values for VASP input sets by @matthewkuner in #3314 - Fix
TestPotcar.test_write
polluting git repo on failure by @janosh in #3347
📖 Documentation
- Update @arosen93 to @Andrew-S-Rosen by @Andrew-S-Rosen in #3311
- Google-style doc strings for class attributes by @janosh in #3320
- More Google-style class attribute doc strings by @janosh in #3323
- Readme notice regarding updated pymatgen publication by @janosh in #3325
- Breaking: rename
get_ax3d_fig_plt->get_ax3d_fig
andget_ax_fig_plt->get_ax_fig
plus no longer returnplt
by @janosh in #3329
🧹 House-Keeping
- Fix internal
SymmOp.from_xyz_string
andMagSymmOp.from_xyzt_string
deprecation warnings by @janosh in #3315 - Fix
ruff
A001 violations: Variable is shadowing a Python builtin by @janosh in #3331 - Delete unused or numpy-provided routines from
pymatgen.util.num
by @janosh in #3333 - fix ruff FBT003: Boolean positional value in function call by @janosh in #3335
- Snake case test method names by @janosh in #3339
🤷♂️ Other Changes
Full Changelog: v2023.9.10...v2023.9.25
v2023.9.10
What's Changed
🐛 Bug Fixes
- Fix code comment in ASE adapter by @Andrew-S-Rosen in #3298
- Fix IndexError when parsing Hessian from Gaussian frequency job by @janosh in #3308
🛠 Enhancements
- Add an input arg check for
Kpoints.automatic_density_by_lengths
by @Andrew-S-Rosen in #3299
🏥 Package Health
- Remove pydantic < 2 from
setup.py
and bump monty inrequirements.txt
by @Andrew-S-Rosen in #3303 - Move
py.typed
to package root by @Andrew-S-Rosen in #3307 - Consistent casing
setup->setUp
across test classes by @janosh in #3305
🤷♂️ Other Changes
Full Changelog: v2023.9.2...v2023.9.10
v2023.9.2
What's Changed
- Add
Lattice
propertyparams_dict
by @janosh in #3239 - Generate SupercellTransformation from minimum boundary distance by @JiQi535 in #3238
- More concise
test_from_boundary_distance
by @janosh in #3242 - Breaking: remove deprecated keyword
properties
fromSpecies
by @janosh in #3243 - Typo in Docs for PeriodicsSite by @jmmshn in #3249
- Fix
Vasprun.converged_electronic
check ifALGO=CHI
inINCAR
by @janosh in #3250 - Breaking: Have plot methods return
plt.Axes
object, notmatplotlib
module by @janosh in #3237 - Fix
ruff
D212 by @janosh in #3251 - Fix some Kpoints generated using wrong mesh types by @matthewkuner in #3245
- read
mag
from OSZICAR by @chiang-yuan in #3146 - Use
numpy.testing.assert_allclose
overassert np.allclose
by @janosh in #3253 - Don't let tests pollute the
pymatgen
repo by @janosh in #3255 - Update
compatibility.md
by @mbercx in #3260 - Google-style doc string return types by @janosh in #3258
- Quasi-RRHO Thermochemistry Analysis Module by @arepstein in #2028
- Add keyword
check_occu: bool = True
toCifParser.get_structures()
by @jonathanjdenney in #2836 - Fix bug in feff inputs.py by @kaifengZheng in #3256
- Cancel concurrent CI runs to save budget by @janosh in #3263
- Fix
Procar.get_projection_on_elements
for structures with multiple same-element ionic sites by @Na-Kawa in #3261 - Fix
TestMPScanStaticSet.test_as_from_dict()
by @janosh in #3266 - Bump activesupport from 7.0.6 to 7.0.7.2 in /docs by @dependabot in #3267
- Fix
TestMPStaticSet
usingMPRelaxSet
intest_user_incar_kspacing
andtest_kspacing_override
by @janosh in #3268 - Fix
nelectrons
not updating when replacing species inMolecule
by @janosh in #3269 - Add
properties
to Structure and Molecule by @gpetretto in #3264 - Fix
CifParser.get_structures(check_occu=False)
by @janosh in #3272 - Add
PotcarSingle.__repr__
by @janosh in #3273 __str__
to__repr__
by @janosh in #3274- Ion: handle dissolved gas formulas by @rkingsbury in #3275
- Add VASP input set
MatPESStaticSet
by @SophiaRuan in #3254 - Fix
test_valid_magmom_struct()
error message regex by @janosh in #3276 - fix tests of MatPESStaticSet by @SophiaRuan in #3281
- Breaking: bump minimum Python version to 3.9 by @janosh in #3283
- Breaking: Update
AseAtomsAdaptor
to handleStructure.properties
/Molecule.properties
by @Andrew-S-Rosen in #3270 - Slightly relax the constraint satisfy condition of get_primitive_structure() by @fyalcin in #3285
- [WIP] add custodian modified incar settings to incar and modify tests by @SophiaRuan in #3284
- Add keyword
bandgap_tol: float = 1e-4
toMPScanRelaxSet
by @janosh in #3287 np.(arange->linspace)
inio/vasp/optics.py
get_delta
,get_setp
andepsilon_imag
by @LucasGVerga in #3286- MatPESStaticSet restore GGA tag removal if xc_functional.upper() == "R2SCAN" by @janosh in #3288
- Bump pypa/cibuildwheel from 2.14.1 to 2.15.0 by @dependabot in #3294
- Bump cython from 3.0.0 to 3.0.2 by @dependabot in #3292
- Bump scipy from 1.11.1 to 1.11.2 by @dependabot in #3291
- Bump plotly from 5.11.0 to 5.16.1 by @dependabot in #3289
- Bump joblib from 1.3.1 to 1.3.2 by @dependabot in #3290
- Bump mp-api from 0.33.3 to 0.35.1 by @dependabot in #3293
- xyz.iter() -> iter(xyz) by @janosh in #3228
- Deprecate overlooked
from/as_..._string
methods by @janosh in #3295
New Contributors
- @mbercx made their first contribution in #3260
- @jonathanjdenney made their first contribution in #2836
- @kaifengZheng made their first contribution in #3256
- @Na-Kawa made their first contribution in #3261
- @SophiaRuan made their first contribution in #3254
- @LucasGVerga made their first contribution in #3286
Full Changelog: v2023.8.10...v2023.9.2
v2023.8.10
What's Changed
- fix
estimate_nbands
function by @matthewkuner in #3149 - Add
CifParser.get_structures(on_error='warn')
by @janosh in #3175 ruff . --fix
by @janosh in #3176AseAtomsAdaptor
: Retaintags
property when interconvertingAtoms
andStructure
/Molecule
by @arosen93 in #3151- Fix a bug in pwscf.py. The proc_val function modifies string values. by @pablogalaviz in #3172
- Delete commented out print statements by @janosh in #3178
- lots of
from_string
should beclassmethod
by @njzjz in #3177 - Extend lobsterenv for coop/cobi by @naik-aakash in #3050
- BUG: fix setting zero magmoms by @lbluque in #3179
- Prefer
pymatviz
interactive plotly version of periodic table heatmap if available by @janosh in #3180 - Better Composition
repr
by @janosh in #3182 - Breaking: Return True for
Element in Composition
ifSpecies.symbol
matchesElement
by @janosh in #3184 - Revert
LMAXMIX
"fix" added in #3041 by @janosh in #3189 - Add
bader_exe_path
keyword toBaderAnalysis
and runbader
tests in CI by @janosh in #3191 - Unskip and fix
packmol
tests by @janosh in #3195 - Propagate labels through various Structure operations by @stefsmeets in #3183
- Delete variable self assignments by @janosh in #3196
- Improve
Structure
tests by @janosh in #3197 - Bump pypa/cibuildwheel from 2.12.3 to 2.14.1 by @dependabot in #3202
- Bump numpy from 1.24.3 to 1.25.2 by @dependabot in #3201
- Bump matplotlib from 3.5.2 to 3.7.2 by @dependabot in #3200
- Bump scipy from 1.9.0 to 1.11.1 by @dependabot in #3199
- Test
class XYZ
edge cases by @janosh in #3206 - Fix
EnergyAdjustment.__repr__
by @janosh in #3207 - Markdownlint by @janosh in #3209
- Fix codecov by @janosh in #3210
- Update
pytest-split
durations by @janosh in #3211 - Fix GitHub language statistics after test files migration by @janosh in #3214
- Fix
automatic_density_by_lengths
and add tests for it by @janosh in #3218 - Prefer
len(structure)
overstructure.num_sites
by @janosh in #3219 - Add
PhaseDiagram
methodget_reference_energy
by @janosh in #3222 - Fix isomorphic for molecular graphs by @rohithsrinivaas in #3221
- Add
Structure.elements
property by @janosh in #3223 - Add keyword
in_place: bool = True
toSiteCollection.replace_species
by @janosh in #3224 - list offending elements in
BVAnalyzer.get_valences
error message by @janosh in #3225 - Add
Entry.elements
property by @janosh in #3226 - Move
PymatgenTest.TEST_FILES_DIR
attribute into module scope by @janosh in #3227 - f-string path construction everywhere, no need for
os.path.join(...)
by @janosh in #3229 - speed up
bader_caller
andchargemol_caller
by @chiang-yuan in #3192 - Fix
ruff
PYI041 and ignore PYI024 by @janosh in #3232 - Deprecate
get_string()
methods in favor ofget_str()
by @janosh in #3231 Structure/Molecule.to()
now always return same string written to file by @janosh in #3236
New Contributors
- @matthewkuner made their first contribution in #3149
- @pablogalaviz made their first contribution in #3172
- @rohithsrinivaas made their first contribution in #3221
Full Changelog: v2023.7.20...v2023.8.10
v2023.7.20
What's Changed
- Unreadable string concat ops to f-string by @janosh in #3162
- Revert
mp-api<0.34.0
pin by @janosh in #3165 - Fix CI error
"pdentries_test.csv"
not found by @janosh in #3168 - Fix issues with labels by @stefsmeets in #3169
- v2023.7.20 by @janosh in #3171
Full Changelog: v2023.7.17...v2023.7.20
v2023.7.17
What's Changed
- Fix
MagOrderingTransformation
by enforcing implicit-zero magnetic moments inSpaceGroupAnalyzer
by @mattmcdermott in #3070 - Bug fix:
CollinearMagneticAnalyzer
should not fail whenSpecies.spin = None
by @mattmcdermott in #3157 - Deprecate
from_string
by @janosh in #3158
Full Changelog: v2023.7.14...v2023.7.17
v2023.7.14
What's Changed
- Don't waste
pytest.approx()
function calls on integers by @janosh in #3150 - Add
check_potcar: bool = True
toMaterialsProject2020Compatibility
,MaterialsProjectDFTMixingScheme
andPotcarCorrection
by @janosh in #3143 - Rename
PMG_DISABLE_POTCAR_CHECKS
toPMG_POTCAR_CHECKS
by @janosh in #3153 - Fix "Incompatible POTCAR" error on ComputedEntries with oxidation states by @janosh in #3155
- Read site labels from cif file (2) by @stefsmeets in #3137
Full Changelog: v2023.7.11...v2023.7.14