Skip to content

Releases: materialsproject/pymatgen

v2024.5.1

01 May 18:49
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

📖 Documentation

🧹 House-Keeping

  • pyright fixes for ext/io/phonon/symmetry/transformations/util/vis/dev_scripts and improve io.lobster by @DanielYang59 in #3757
  • Separate test files by modules and collect test files csv/cif into folders by @DanielYang59 in #3746

🚧 CI

  • Officially support Python 3.12 and test in CI by @janosh in #3685

🏥 Package Health

🏷️ Type Hints

🤷‍♂️ Other Changes

New Contributors

Full Changelog: v2024.4.13...2024.5.1

v2024.4.13

13 Apr 05:51
Compare
Choose a tag to compare

Hot fix release for v2024.4.12 to be yanked on PyPI due to #3751.

🐛 Bug Fixes

  • Revert mistaken Cohp.has_antibnd_states_below_efermi rename by @JaGeo in #3750
  • Fix typing_extension ImportError in downstream packages by @janosh in #3752
  • Update some of the OPTIMADE aliases by @ml-evs in #3754

🧹 House-Keeping

Full Changelog: v2024.4.12...v2024.4.13

v2024.4.12

12 Apr 05:57
Compare
Choose a tag to compare

What's Changed

🎉 New Features

🐛 Bug Fixes

🛠 Enhancements

  • Ensure MSONAtoms is indeed MSONable when Atoms.info is loaded with goodies by @Andrew-S-Rosen in #3670
  • Generalize fatband plots from Lobster by @JaGeo in #3688
  • Plotting of Multicenter COBIs by @JaGeo in #2926
  • Support appending vectors to positions in XSF format by @mturiansky in #3704
  • Define needs_u_correction(comp: CompositionLike) -> set[str] utility function by @janosh in #3703
  • Add more flexibility to PhononDOSPlotter and PhononBSPlotter by @ab5424 in #3700
  • Define ElementType enum in core/periodic_table.py by @janosh in #3726

📖 Documentation

🧹 House-Keeping

🚀 Performance

🚧 CI

  • Prevent GitHub Actions from running docs-related CI on forks by @lan496 in #3697

🧪 Tests

🔒 Security Fixes

🏷️ Type Hints

  • Self return type on from_dict methods by @janosh in #3702
  • Return self from Structure methods replace, substitute, remove_species, remove_sites by @janosh in #3706
  • Self return type on Lattice methods by @janosh in #3707

🤷‍♂️ Other Changes

New Contributors

Full Changelog: v2024.3.1...v2024.4.12

v2024.3.1

01 Mar 14:22
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Fix BSPlotterProjected.get_projected_plots_dots_patom_pmorb fix set & list intersect by @janosh in #3651
  • Remove rounding during FEFF writing by @matthewcarbone in #3345
  • Fix get_niggli_reduced_lattice if entering A1 case by @packer-jp in #3657
  • Remove BadPoscarWarning when POSCAR elements set by POTCAR by @esoteric-ephemera in #3662
  • Fix RuntimeError triggered in CI of downstream packages by @janosh in #3664

🛠 Enhancements

📖 Documentation

🧹 House-Keeping

  • Use np.eye(3) instead of [[1, 0, 0], [0, 1, 0], [0, 0, 1]] for identies by @janosh in #3659

🧪 Tests

  • Deprecate _parse_atomic_densities in BaderAnalysis and fix Bader test setup by @DanielYang59 in #3656

🏷️ Type Hints

🤷‍♂️ Other Changes

New Contributors

Full Changelog: v2024.2.23...v2024.3.1

v2024.2.23

23 Feb 11:28
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Modify BadInputSetWarning logic for relaxations of a likely metal by @Andrew-S-Rosen in #3634
  • Fix Lobsterenv Bug by @naik-aakash in #3637
  • [BugFix] Subclass Construction Locpot<:VolumetricData by @jmmshn in #3639
  • Guard MSONAtoms definition behind ASE package availability by @ml-evs in #3645
  • Remove properties from abivars dict as this breaks the interface with… by @gmatteo in #3642

🛠 Enhancements

🧪 Tests

🤷‍♂️ Other Changes

  • Alias VaspInputSet to VaspInputGenerator by @janosh in #3566

New Contributors

Full Changelog: v2024.2.20...v2024.2.23

v2024.2.20

21 Feb 06:33
013ccb5
Compare
Choose a tag to compare

What's Changed

This release addresses an important security issue that might affect some users of pymatgen who are parsing untrusted user input, for example a server using pymatgen to parse a user-uploaded CIF file. More information is available in the associated CVE. Thank you to William Khem-Marquez (@SteakEnthusiast) for the discovery and responsible disclosure of this issue.

🐛 Bug Fixes

  • Revert back TransformedStructure.__getattr__ by @mjwen in #3617
  • Fixed Incar object to allow for ML_MODE vasp tag by @davidwaroquiers in #3625
  • Add missing MPSCANRelaxSet.yaml parameters and alphabetize by @Andrew-S-Rosen in #3615
  • Fix bader_analysis_from_path using warning as file path and reinstate test by @janosh in #3632

🛠 Enhancements

  • Breaking: fix SubstrateAnalyzer film + substrate vectors not using original crystal coordinates by @jinlhr542 in #3572
  • Handle invalid selective dynamics info in POSCAR by @DanielYang59 in #3539
  • Return self from all SiteCollection/Structure/Molecule in-place modification methods by @janosh in #3623
  • Make the POTCAR setup instructions clearer by @Andrew-S-Rosen in #3630

🧹 House-Keeping

  • Refactors + types + fix doc string returns to use Google format by @janosh in #3620

🚀 Performance

💥 Breaking Changes

🤷‍♂️ Other Changes

New Contributors

Full Changelog: v2024.2.8...v2024.2.20

v2024.2.8

08 Feb 09:48
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

🛠 Enhancements

📖 Documentation

🧹 House-Keeping

🧪 Tests

🏥 Package Health

  • Switch macOS wheel building to new M1 runners by @janosh in #3596

🤷‍♂️ Other Changes

New Contributors

Full Changelog: v2024.1.27...v2024.2.8

v2024.1.27

27 Jan 02:06
Compare
Choose a tag to compare

v2024.1.26

26 Jan 12:45
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Fix label propagation in Symmetry.from_spacegroup by @stefsmeets in #3527
  • Bug fix: SpectrumPlotter.add_spectra by @minhsueh in #3529
  • Fix bug in SQSTransformation by @esoteric-ephemera in #3541
  • Fix failing CI due to broken BoltzTraP2 install by @janosh in #3543
  • Enforce zval to be an integer to avoid improper syntax in .cri file by @wladerer in #3502
  • Fix MaterialsProjectCompatibility run type handling for GGA+U by @rkingsbury in #3540
  • Accept Path objects as filename in IStructure.to() by @janosh in #3553
  • Retain Structure.properties in structure_from_abivars()/structure_to_abivars() round trip by @janosh in #3552
  • Support magmoms in get_phonopy_structure() by @tomdemeyere in #3555
  • Fix ValueError: Invalid fmt with Structure.to(fmt='yml') by @janosh in #3557
  • Improve CIF checking, support for isotopes, and correct handling of new VASP 6.4.2 POSCAR format incl. slashes in header by @esoteric-ephemera in #3542
  • Deprecate Structure.ntypesp replaced by Structure.n_elems by @janosh in #3562
  • Ruff fixes by @janosh in #3564
  • Fix highly-nested parens when formula parsing in Composition by @janosh in #3569
  • Fix floating point imprecision error in ordering property of CollinearMagneticStructureAnalyzer by @kaueltzen in #3574
  • Support parsing of "final_energy" in Q-Chem 6.1.1 by @Andrew-S-Rosen in #3580

🛠 Enhancements

  • Add GitHub Issue Templates by @DanielYang59 in #3528
  • Improve PhononBandStructure.has_imaginary_gamma_freq() by checking for negative freqs at all q-points close to Gamma by @janosh in #3530
  • Add default issue template labels by @DanielYang59 in #3531
  • Add functionality to read ASE *.traj file in Trajectory class method from_file() by @exenGT in #3422
  • Add PhononDos.r2_score method by @janosh in #3535
  • Add codespace container for reproducing issues by @DanielYang59 in #3537
  • Phonon convenience imports by @janosh in #3544
  • Add diffusive thermal conductivity model proposed by Agne et al. by @naik-aakash in #3546
  • Add flag write_site_properties = False in CifWriter for writing Structure.site_properties as _atom_site_{prop} by @Andrew-S-Rosen in #3550
  • Add pymatgen.io.pwmat module by @lhycms in #3512
  • Lazy import pandas in Structure.as_dataframe() to improve startup speed by @janosh in #3568
  • Return self in SiteCollection spin/oxi state add/remove methods by @janosh in #3573
  • Added threshold_ordering parameter to CollinearMagneticStructureAnalyzer in addition to PR #3574 by @kaueltzen in #3577

🧹 House-Keeping

🧪 Tests

  • Improve handling of Vasprun POTCAR search, expanded fake POTCAR library for VASP I/O tests by @esoteric-ephemera in #3491
  • Add test for NEBAnalysis.get_plot() by @janosh in #3570
  • tests/io/aims use numpy.testing.assert_allclose and pytest.MonkeyPatch by @janosh in #3575

💥 Breaking Changes

  • Breaking: remove single-use PolarizationLattice which inherited from Structure (antipattern) by @janosh in #3585

🤷‍♂️ Other Changes

  • Standardise and update VASP input sets by @utf in #3484

New Contributors

Full Changelog: v2023.12.18...v2024.1.26

v2023.12.18

19 Dec 02:11
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Improve doc strings substitution_probability.py by @JaGeo in #3477
  • Convert all FHI-aims stresses to be 3x3 instead of Voigt notation by @tpurcell90 in #3476
  • Revert pymatgen/symmetry/groups.py module-scoped SymmOp import causing circular import by @janosh in #3486
  • fix reciprocal_density in MPHSEBSSet and tests by @fraricci in #3499
  • fix TypeError when attr force_field not exists by @xjf729 in #3495
  • Fix pdplotter.show with matplotlib backend by @lbluque in #3493
  • Fix legend label order in PhononBSPlotter.plot_compare() by @janosh in #3510

🛠 Enhancements

  • Define PBE64Base.yaml for new VASP PBE_64 POTCARs by @janosh in #3470
  • (Structure|Molecule).alphabetical_formula by @janosh in #3478
  • Improvements to PhononDosPlotter and PhononBSPlotter by @janosh in #3479
  • PhononDosPlotter.plot_dos() add support for existing plt.Axes by @janosh in #3487
  • Allow Structure.interpolate to extrapolate by @kyledmiller in #3467
  • Updates for Vasprun with MD simulations by @gpetretto in #3489
  • Add gradient, Hessian, and orbital coeffs scratch file parsers to pymatgen.io.qchem.outputs by @Andrew-S-Rosen in #3483
  • Add multipole parsing for Q-Chem IO by @espottesmith in #3490
  • CifParser only warn about primitive default value change to False if not passed to parse_structures explicitly by @janosh in #3505
  • PhononBSPlotter.plot_compare() add legend labels by @janosh in #3507
  • Define arithmetic ops __add__ __sub__ __mul__ __neg__ __eq__ for PhononDos with tests by @janosh in #3511
  • Equalize Phonon(Dos|BS)Plotter colors, allow custom plot settings per-DOS by @janosh in #3514
  • Add bold flag to latexify by @janosh in #3516
  • Composition raise ValueError if formula string is only numbers and spaces by @janosh in #3517
  • Raise ValueError for float('NaN') in Composition by @janosh in #3519
  • Add PhononDos.mae() and PhononBandStructure.has_imaginary_gamma_freq() methods by @janosh in #3520
  • PhononDos.get_smeared_densities return unchanged for sigma=0 by @janosh in #3524
  • Add PhononDos.get_last_peak() by @janosh in #3525

📖 Documentation

🚀 Performance

🧪 Tests

🏷️ Type Hints

New Contributors

Full Changelog: v2023.11.12...v2023.12.18