From 2a64e4832c7906a2777b64b90f129cbd162c4203 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Tue, 7 Nov 2023 19:54:31 -0800 Subject: [PATCH 1/3] simplify imports using convenience exports from pymatgen/core/__init__.py --- pymatgen/alchemy/filters.py | 2 +- pymatgen/analysis/bond_valence.py | 2 +- .../coordination_environments/structure_environments.py | 4 +--- pymatgen/analysis/cost.py | 3 +-- pymatgen/analysis/hhi.py | 3 +-- pymatgen/analysis/magnetism/jahnteller.py | 2 +- pymatgen/analysis/nmr.py | 3 +-- pymatgen/analysis/phase_diagram.py | 2 +- pymatgen/analysis/structure_analyzer.py | 4 +--- pymatgen/analysis/structure_matcher.py | 7 +++---- pymatgen/analysis/structure_prediction/dopant_predictor.py | 2 +- pymatgen/analysis/structure_prediction/substitutor.py | 2 +- pymatgen/analysis/xps.py | 2 +- pymatgen/apps/battery/analyzer.py | 3 +-- pymatgen/apps/battery/conversion_battery.py | 3 +-- pymatgen/command_line/critic2_caller.py | 2 +- pymatgen/command_line/enumlib_caller.py | 4 +--- pymatgen/command_line/gulp_caller.py | 4 +--- pymatgen/core/__init__.py | 2 ++ pymatgen/core/bonds.py | 2 +- pymatgen/core/composition.py | 2 +- pymatgen/core/molecular_orbitals.py | 2 +- pymatgen/core/structure.py | 3 +-- pymatgen/core/surface.py | 5 +---- pymatgen/electronic_structure/dos.py | 3 +-- pymatgen/electronic_structure/plotter.py | 2 +- pymatgen/entries/compatibility.py | 3 +-- pymatgen/entries/entry_tools.py | 3 +-- pymatgen/ext/optimade.py | 3 +-- pymatgen/io/cif.py | 6 +----- pymatgen/io/cp2k/inputs.py | 2 +- pymatgen/io/feff/inputs.py | 4 +--- pymatgen/io/lammps/data.py | 4 +--- pymatgen/io/pwscf.py | 4 +--- pymatgen/io/vasp/inputs.py | 7 ++----- pymatgen/io/vasp/outputs.py | 5 +---- pymatgen/io/xcrysden.py | 2 +- pymatgen/symmetry/analyzer.py | 2 +- pymatgen/transformations/standard_transformations.py | 3 +-- 39 files changed, 43 insertions(+), 80 deletions(-) diff --git a/pymatgen/alchemy/filters.py b/pymatgen/alchemy/filters.py index e1226293584..282b5dde576 100644 --- a/pymatgen/alchemy/filters.py +++ b/pymatgen/alchemy/filters.py @@ -9,7 +9,7 @@ from monty.json import MSONable from pymatgen.analysis.structure_matcher import ElementComparator, StructureMatcher -from pymatgen.core.periodic_table import get_el_sp +from pymatgen.core import get_el_sp from pymatgen.symmetry.analyzer import SpacegroupAnalyzer if TYPE_CHECKING: diff --git a/pymatgen/analysis/bond_valence.py b/pymatgen/analysis/bond_valence.py index 72807a0ff14..ce162500fa0 100644 --- a/pymatgen/analysis/bond_valence.py +++ b/pymatgen/analysis/bond_valence.py @@ -12,7 +12,7 @@ import numpy as np from monty.serialization import loadfn -from pymatgen.core.periodic_table import Element, Species, get_el_sp +from pymatgen.core import Element, Species, get_el_sp from pymatgen.symmetry.analyzer import SpacegroupAnalyzer if TYPE_CHECKING: diff --git a/pymatgen/analysis/chemenv/coordination_environments/structure_environments.py b/pymatgen/analysis/chemenv/coordination_environments/structure_environments.py index 70b21e3f68a..9b4a5027b08 100644 --- a/pymatgen/analysis/chemenv/coordination_environments/structure_environments.py +++ b/pymatgen/analysis/chemenv/coordination_environments/structure_environments.py @@ -17,9 +17,7 @@ from pymatgen.analysis.chemenv.coordination_environments.voronoi import DetailedVoronoiContainer from pymatgen.analysis.chemenv.utils.chemenv_errors import ChemenvError from pymatgen.analysis.chemenv.utils.defs_utils import AdditionalConditions -from pymatgen.core.periodic_table import Element, Species -from pymatgen.core.sites import PeriodicSite -from pymatgen.core.structure import PeriodicNeighbor, Structure +from pymatgen.core import Element, PeriodicNeighbor, PeriodicSite, Species, Structure if TYPE_CHECKING: import matplotlib.pyplot as plt diff --git a/pymatgen/analysis/cost.py b/pymatgen/analysis/cost.py index bf372d5d813..601384b5e04 100644 --- a/pymatgen/analysis/cost.py +++ b/pymatgen/analysis/cost.py @@ -18,8 +18,7 @@ from monty.design_patterns import singleton from pymatgen.analysis.phase_diagram import PDEntry, PhaseDiagram -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Element +from pymatgen.core import Composition, Element from pymatgen.util.provenance import is_valid_bibtex __author__ = "Anubhav Jain" diff --git a/pymatgen/analysis/hhi.py b/pymatgen/analysis/hhi.py index 01ec07e5386..6e6a8394f38 100644 --- a/pymatgen/analysis/hhi.py +++ b/pymatgen/analysis/hhi.py @@ -15,8 +15,7 @@ from monty.design_patterns import singleton -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Element +from pymatgen.core import Composition, Element __author__ = "Anubhav Jain" __copyright__ = "Copyright 2014, The Materials Project" diff --git a/pymatgen/analysis/magnetism/jahnteller.py b/pymatgen/analysis/magnetism/jahnteller.py index 4987a9c9b0c..63bf8cb92a6 100644 --- a/pymatgen/analysis/magnetism/jahnteller.py +++ b/pymatgen/analysis/magnetism/jahnteller.py @@ -10,7 +10,7 @@ from pymatgen.analysis.bond_valence import BVAnalyzer from pymatgen.analysis.local_env import LocalStructOrderParams, get_neighbors_of_site_with_index -from pymatgen.core.periodic_table import Species, get_el_sp +from pymatgen.core import Species, get_el_sp from pymatgen.symmetry.analyzer import SpacegroupAnalyzer if TYPE_CHECKING: diff --git a/pymatgen/analysis/nmr.py b/pymatgen/analysis/nmr.py index 508ea378efe..118bbc8a685 100644 --- a/pymatgen/analysis/nmr.py +++ b/pymatgen/analysis/nmr.py @@ -6,8 +6,7 @@ import numpy as np -from pymatgen.core.periodic_table import Species -from pymatgen.core.structure import Site +from pymatgen.core import Site, Species from pymatgen.core.tensors import SquareTensor from pymatgen.core.units import FloatWithUnit from pymatgen.util.due import Doi, due diff --git a/pymatgen/analysis/phase_diagram.py b/pymatgen/analysis/phase_diagram.py index 9151e2ef3d8..3c1cc2a3b94 100644 --- a/pymatgen/analysis/phase_diagram.py +++ b/pymatgen/analysis/phase_diagram.py @@ -24,8 +24,8 @@ from tqdm import tqdm from pymatgen.analysis.reaction_calculator import Reaction, ReactionError +from pymatgen.core import DummySpecies, Element, get_el_sp from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import DummySpecies, Element, get_el_sp from pymatgen.entries import Entry from pymatgen.util.coord import Simplex, in_coord_list from pymatgen.util.due import Doi, due diff --git a/pymatgen/analysis/structure_analyzer.py b/pymatgen/analysis/structure_analyzer.py index 0b9cf4acce1..af103b189f4 100644 --- a/pymatgen/analysis/structure_analyzer.py +++ b/pymatgen/analysis/structure_analyzer.py @@ -13,9 +13,7 @@ from scipy.spatial import Voronoi from pymatgen.analysis.local_env import JmolNN, VoronoiNN -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Element, Species -from pymatgen.core.sites import PeriodicSite +from pymatgen.core import Composition, Element, PeriodicSite, Species from pymatgen.symmetry.analyzer import SpacegroupAnalyzer if TYPE_CHECKING: diff --git a/pymatgen/analysis/structure_matcher.py b/pymatgen/analysis/structure_matcher.py index 55bef17cdcd..c5ea4f784b7 100644 --- a/pymatgen/analysis/structure_matcher.py +++ b/pymatgen/analysis/structure_matcher.py @@ -9,10 +9,7 @@ import numpy as np from monty.json import MSONable -from pymatgen.core.composition import Composition, SpeciesLike -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import get_el_sp -from pymatgen.core.structure import Structure +from pymatgen.core import Composition, Lattice, Structure, get_el_sp from pymatgen.optimization.linear_assignment import LinearAssignment from pymatgen.util.coord import lattice_points_in_supercell from pymatgen.util.coord_cython import is_coord_subset_pbc, pbc_shortest_vectors @@ -20,6 +17,8 @@ if TYPE_CHECKING: from collections.abc import Mapping, Sequence + from pymatgen.util.typing import SpeciesLike + __author__ = "William Davidson Richards, Stephen Dacek, Shyue Ping Ong" __copyright__ = "Copyright 2011, The Materials Project" __version__ = "1.0" diff --git a/pymatgen/analysis/structure_prediction/dopant_predictor.py b/pymatgen/analysis/structure_prediction/dopant_predictor.py index b2b4af7a876..62adad5fd18 100644 --- a/pymatgen/analysis/structure_prediction/dopant_predictor.py +++ b/pymatgen/analysis/structure_prediction/dopant_predictor.py @@ -7,7 +7,7 @@ import numpy as np from pymatgen.analysis.structure_prediction.substitution_probability import SubstitutionPredictor -from pymatgen.core.periodic_table import Element, Species +from pymatgen.core import Element, Species def get_dopants_from_substitution_probabilities(structure, num_dopants=5, threshold=0.001, match_oxi_sign=False): diff --git a/pymatgen/analysis/structure_prediction/substitutor.py b/pymatgen/analysis/structure_prediction/substitutor.py index 80b74e55ac1..3d0bde07031 100644 --- a/pymatgen/analysis/structure_prediction/substitutor.py +++ b/pymatgen/analysis/structure_prediction/substitutor.py @@ -13,7 +13,7 @@ from pymatgen.alchemy.materials import TransformedStructure from pymatgen.alchemy.transmuters import StandardTransmuter from pymatgen.analysis.structure_prediction.substitution_probability import SubstitutionProbability -from pymatgen.core.periodic_table import get_el_sp +from pymatgen.core import get_el_sp from pymatgen.transformations.standard_transformations import SubstitutionTransformation from pymatgen.util.due import Doi, due diff --git a/pymatgen/analysis/xps.py b/pymatgen/analysis/xps.py index e3aed0853cb..64606c1ca61 100644 --- a/pymatgen/analysis/xps.py +++ b/pymatgen/analysis/xps.py @@ -26,7 +26,7 @@ import numpy as np import pandas as pd -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.core.spectrum import Spectrum from pymatgen.util.due import Doi, due diff --git a/pymatgen/apps/battery/analyzer.py b/pymatgen/apps/battery/analyzer.py index 5408399846c..86d87f6a6a0 100644 --- a/pymatgen/apps/battery/analyzer.py +++ b/pymatgen/apps/battery/analyzer.py @@ -7,8 +7,7 @@ import scipy.constants as const -from pymatgen.core.periodic_table import Element, Species -from pymatgen.core.structure import Composition +from pymatgen.core import Composition, Element, Species __author__ = "Anubhav Jain" __copyright__ = "Copyright 2011, The Materials Project" diff --git a/pymatgen/apps/battery/conversion_battery.py b/pymatgen/apps/battery/conversion_battery.py index e18bf96b2d2..2497b9c3915 100644 --- a/pymatgen/apps/battery/conversion_battery.py +++ b/pymatgen/apps/battery/conversion_battery.py @@ -10,8 +10,7 @@ from pymatgen.analysis.phase_diagram import PhaseDiagram from pymatgen.analysis.reaction_calculator import BalancedReaction from pymatgen.apps.battery.battery_abc import AbstractElectrode, AbstractVoltagePair -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Element +from pymatgen.core import Composition, Element from pymatgen.core.units import Charge, Time if TYPE_CHECKING: diff --git a/pymatgen/command_line/critic2_caller.py b/pymatgen/command_line/critic2_caller.py index d766e6d948f..ce8c806c5b2 100644 --- a/pymatgen/command_line/critic2_caller.py +++ b/pymatgen/command_line/critic2_caller.py @@ -55,7 +55,7 @@ from scipy.spatial import KDTree from pymatgen.analysis.graphs import StructureGraph -from pymatgen.core.periodic_table import DummySpecies +from pymatgen.core import DummySpecies from pymatgen.io.vasp.inputs import Potcar from pymatgen.io.vasp.outputs import Chgcar, VolumetricData from pymatgen.util.due import Doi, due diff --git a/pymatgen/command_line/enumlib_caller.py b/pymatgen/command_line/enumlib_caller.py index 37775473a60..eba2e52d6aa 100644 --- a/pymatgen/command_line/enumlib_caller.py +++ b/pymatgen/command_line/enumlib_caller.py @@ -40,9 +40,7 @@ from monty.fractions import lcm from monty.tempfile import ScratchDir -from pymatgen.core.periodic_table import DummySpecies -from pymatgen.core.sites import PeriodicSite -from pymatgen.core.structure import Structure +from pymatgen.core import DummySpecies, PeriodicSite, Structure from pymatgen.io.vasp.inputs import Poscar from pymatgen.symmetry.analyzer import SpacegroupAnalyzer diff --git a/pymatgen/command_line/gulp_caller.py b/pymatgen/command_line/gulp_caller.py index 6117405acc2..f4d66e53b94 100644 --- a/pymatgen/command_line/gulp_caller.py +++ b/pymatgen/command_line/gulp_caller.py @@ -12,9 +12,7 @@ from monty.tempfile import ScratchDir from pymatgen.analysis.bond_valence import BVAnalyzer -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Lattice, Structure from pymatgen.symmetry.analyzer import SpacegroupAnalyzer __author__ = "Bharat Medasani, Wenhao Sun" diff --git a/pymatgen/core/__init__.py b/pymatgen/core/__init__.py index 268f79b68a3..cd317670ce6 100644 --- a/pymatgen/core/__init__.py +++ b/pymatgen/core/__init__.py @@ -17,11 +17,13 @@ from pymatgen.core.periodic_table import DummySpecies as DummySpecies from pymatgen.core.periodic_table import Element as Element from pymatgen.core.periodic_table import Species as Species +from pymatgen.core.periodic_table import get_el_sp as get_el_sp from pymatgen.core.sites import PeriodicSite as PeriodicSite from pymatgen.core.sites import Site as Site from pymatgen.core.structure import IMolecule as IMolecule from pymatgen.core.structure import IStructure as IStructure from pymatgen.core.structure import Molecule as Molecule +from pymatgen.core.structure import PeriodicNeighbor as PeriodicNeighbor from pymatgen.core.structure import SiteCollection as SiteCollection from pymatgen.core.structure import Structure as Structure from pymatgen.core.units import ArrayWithUnit as ArrayWithUnit diff --git a/pymatgen/core/bonds.py b/pymatgen/core/bonds.py index fc37568e77b..643eaf59a80 100644 --- a/pymatgen/core/bonds.py +++ b/pymatgen/core/bonds.py @@ -10,7 +10,7 @@ import warnings from typing import TYPE_CHECKING -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element if TYPE_CHECKING: from pymatgen.core.sites import Site diff --git a/pymatgen/core/composition.py b/pymatgen/core/composition.py index 2ef6b9be88d..4d8ae8ff290 100644 --- a/pymatgen/core/composition.py +++ b/pymatgen/core/composition.py @@ -17,7 +17,7 @@ from monty.json import MSONable from monty.serialization import loadfn -from pymatgen.core.periodic_table import DummySpecies, Element, Species, get_el_sp +from pymatgen.core import DummySpecies, Element, Species, get_el_sp from pymatgen.core.units import Mass from pymatgen.util.string import Stringify, formula_double_format diff --git a/pymatgen/core/molecular_orbitals.py b/pymatgen/core/molecular_orbitals.py index 1e0ae215e36..afacde5efec 100644 --- a/pymatgen/core/molecular_orbitals.py +++ b/pymatgen/core/molecular_orbitals.py @@ -6,8 +6,8 @@ from itertools import chain, combinations +from pymatgen.core import Element from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Element class MolecularOrbitals: diff --git a/pymatgen/core/structure.py b/pymatgen/core/structure.py index a7fccad23ea..ea12d01bed9 100644 --- a/pymatgen/core/structure.py +++ b/pymatgen/core/structure.py @@ -30,12 +30,11 @@ from ruamel.yaml import YAML from tabulate import tabulate +from pymatgen.core import DummySpecies, Element, PeriodicSite, Site, Species, get_el_sp from pymatgen.core.bonds import CovalentBond, get_bond_length from pymatgen.core.composition import Composition from pymatgen.core.lattice import Lattice, get_points_in_spheres from pymatgen.core.operations import SymmOp -from pymatgen.core.periodic_table import DummySpecies, Element, Species, get_el_sp -from pymatgen.core.sites import PeriodicSite, Site from pymatgen.core.units import Length, Mass from pymatgen.electronic_structure.core import Magmom from pymatgen.symmetry.maggroups import MagneticSpaceGroup diff --git a/pymatgen/core/surface.py b/pymatgen/core/surface.py index a80288f4fd9..ec63ec1bd6e 100644 --- a/pymatgen/core/surface.py +++ b/pymatgen/core/surface.py @@ -29,10 +29,7 @@ from scipy.spatial.distance import squareform from pymatgen.analysis.structure_matcher import StructureMatcher -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import get_el_sp -from pymatgen.core.sites import PeriodicSite -from pymatgen.core.structure import Structure +from pymatgen.core import Lattice, PeriodicSite, Structure, get_el_sp from pymatgen.symmetry.analyzer import SpacegroupAnalyzer from pymatgen.util.coord import in_coord_list from pymatgen.util.due import Doi, due diff --git a/pymatgen/electronic_structure/dos.py b/pymatgen/electronic_structure/dos.py index 155d9ea4d21..d628dd1467d 100644 --- a/pymatgen/electronic_structure/dos.py +++ b/pymatgen/electronic_structure/dos.py @@ -12,9 +12,8 @@ from scipy.constants import value as _cd from scipy.signal import hilbert -from pymatgen.core.periodic_table import get_el_sp +from pymatgen.core import Structure, get_el_sp from pymatgen.core.spectrum import Spectrum -from pymatgen.core.structure import Structure from pymatgen.electronic_structure.core import Orbital, OrbitalType, Spin from pymatgen.util.coord import get_linear_interpolated_value diff --git a/pymatgen/electronic_structure/plotter.py b/pymatgen/electronic_structure/plotter.py index bc06719bf71..55994cf37b7 100644 --- a/pymatgen/electronic_structure/plotter.py +++ b/pymatgen/electronic_structure/plotter.py @@ -1823,7 +1823,7 @@ def _Orbitals_SumOrbitals(cls, dictio, sum_morbs): def _number_of_subfigures(self, dictio, dictpa, sum_atoms, sum_morbs): from collections import Counter - from pymatgen.core.periodic_table import Element + from pymatgen.core import Element if not isinstance(dictpa, dict): raise TypeError("The invalid type of 'dictpa' was bound. It should be dict type.") diff --git a/pymatgen/entries/compatibility.py b/pymatgen/entries/compatibility.py index 56ce4252a05..6e0f320e433 100644 --- a/pymatgen/entries/compatibility.py +++ b/pymatgen/entries/compatibility.py @@ -19,8 +19,7 @@ from uncertainties import ufloat from pymatgen.analysis.structure_analyzer import oxide_type, sulfide_type -from pymatgen.core import SETTINGS -from pymatgen.core.periodic_table import Element +from pymatgen.core import SETTINGS, Element from pymatgen.entries.computed_entries import ( CompositionEnergyAdjustment, ComputedEntry, diff --git a/pymatgen/entries/entry_tools.py b/pymatgen/entries/entry_tools.py index aca414d3453..7866a459e4d 100644 --- a/pymatgen/entries/entry_tools.py +++ b/pymatgen/entries/entry_tools.py @@ -17,8 +17,7 @@ from pymatgen.analysis.phase_diagram import PDEntry from pymatgen.analysis.structure_matcher import SpeciesComparator, StructureMatcher -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Element +from pymatgen.core import Composition, Element if TYPE_CHECKING: from collections.abc import Iterable diff --git a/pymatgen/ext/optimade.py b/pymatgen/ext/optimade.py index da6d64c9176..5f29852f153 100644 --- a/pymatgen/ext/optimade.py +++ b/pymatgen/ext/optimade.py @@ -11,8 +11,7 @@ import requests from tqdm import tqdm -from pymatgen.core.periodic_table import DummySpecies -from pymatgen.core.structure import Structure +from pymatgen.core import DummySpecies, Structure from pymatgen.util.due import Doi, due from pymatgen.util.provenance import StructureNL diff --git a/pymatgen/io/cif.py b/pymatgen/io/cif.py index 55208a33630..d0466900938 100644 --- a/pymatgen/io/cif.py +++ b/pymatgen/io/cif.py @@ -19,12 +19,8 @@ from monty.io import zopen from monty.serialization import loadfn -from pymatgen.core.composition import Composition -from pymatgen.core.lattice import Lattice +from pymatgen.core import Composition, DummySpecies, Element, Lattice, PeriodicSite, Species, Structure, get_el_sp from pymatgen.core.operations import MagSymmOp, SymmOp -from pymatgen.core.periodic_table import DummySpecies, Element, Species, get_el_sp -from pymatgen.core.sites import PeriodicSite -from pymatgen.core.structure import Structure from pymatgen.electronic_structure.core import Magmom from pymatgen.symmetry.analyzer import SpacegroupAnalyzer, SpacegroupOperations from pymatgen.symmetry.groups import SYMM_DATA, SpaceGroup diff --git a/pymatgen/io/cp2k/inputs.py b/pymatgen/io/cp2k/inputs.py index 60da9c263b5..09bd70fbf04 100644 --- a/pymatgen/io/cp2k/inputs.py +++ b/pymatgen/io/cp2k/inputs.py @@ -39,7 +39,7 @@ from monty.io import zopen from monty.json import MSONable -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.io.cp2k.utils import chunk, postprocessor, preprocessor from pymatgen.io.vasp.inputs import Kpoints as VaspKpoints from pymatgen.io.vasp.inputs import KpointsSupportedModes diff --git a/pymatgen/io/feff/inputs.py b/pymatgen/io/feff/inputs.py index 5798a51acd1..bde3edfc288 100644 --- a/pymatgen/io/feff/inputs.py +++ b/pymatgen/io/feff/inputs.py @@ -16,9 +16,7 @@ from monty.json import MSONable from tabulate import tabulate -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Molecule, Structure +from pymatgen.core import Element, Lattice, Molecule, Structure from pymatgen.io.cif import CifParser from pymatgen.io.core import ParseError from pymatgen.symmetry.analyzer import SpacegroupAnalyzer diff --git a/pymatgen/io/lammps/data.py b/pymatgen/io/lammps/data.py index f69222289bd..aa9703cc769 100644 --- a/pymatgen/io/lammps/data.py +++ b/pymatgen/io/lammps/data.py @@ -29,10 +29,8 @@ from monty.serialization import loadfn from ruamel.yaml import YAML -from pymatgen.core.lattice import Lattice +from pymatgen.core import Element, Lattice, Molecule, Structure from pymatgen.core.operations import SymmOp -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Molecule, Structure from pymatgen.util.io_utils import clean_lines if TYPE_CHECKING: diff --git a/pymatgen/io/pwscf.py b/pymatgen/io/pwscf.py index cea2a5b48d8..9b5864ebddf 100644 --- a/pymatgen/io/pwscf.py +++ b/pymatgen/io/pwscf.py @@ -9,9 +9,7 @@ from monty.io import zopen from monty.re import regrep -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Lattice, Structure from pymatgen.util.io_utils import clean_lines diff --git a/pymatgen/io/vasp/inputs.py b/pymatgen/io/vasp/inputs.py index e187a417b33..076490b995d 100644 --- a/pymatgen/io/vasp/inputs.py +++ b/pymatgen/io/vasp/inputs.py @@ -57,6 +57,7 @@ PYMATGEN_POTCAR_HASHES = loadfn(f"{module_dir}/vasp_potcar_pymatgen_hashes.json") # written to some newer POTCARs by VASP VASP_POTCAR_HASHES = loadfn(f"{module_dir}/vasp_potcar_file_hashes.json") +POTCAR_STATS_PATH = os.path.join(module_dir, "potcar_summary_stats.json.bz2") class Poscar(MSONable): @@ -1692,7 +1693,7 @@ class PotcarSingle: ) # used for POTCAR validation - potcar_summary_stats = loadfn(f"{module_dir}/potcar_summary_stats.json.bz2") + potcar_summary_stats = loadfn(POTCAR_STATS_PATH) def __init__(self, data: str, symbol: str | None = None) -> None: """ @@ -2390,10 +2391,6 @@ def _gen_potcar_summary_stats( summary_stats_filename (str): Name of the output summary stats file. Defaults to '/io/vasp/potcar_summary_stats.json.bz2'. """ - - if not os.path.isfile(summary_stats_filename): - dumpfn({func: {} for func in PotcarSingle.functional_dir}, summary_stats_filename) - func_dir_exist: dict[str, str] = {} vasp_psp_dir = vasp_psp_dir or SETTINGS.get("PMG_VASP_PSP_DIR") for func in PotcarSingle.functional_dir: diff --git a/pymatgen/io/vasp/outputs.py b/pymatgen/io/vasp/outputs.py index 16f3f3fcf0e..6619d0a43fc 100644 --- a/pymatgen/io/vasp/outputs.py +++ b/pymatgen/io/vasp/outputs.py @@ -25,10 +25,7 @@ from monty.re import regrep from numpy.testing import assert_allclose -from pymatgen.core.composition import Composition -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Composition, Element, Lattice, Structure from pymatgen.core.units import unitized from pymatgen.electronic_structure.bandstructure import ( BandStructure, diff --git a/pymatgen/io/xcrysden.py b/pymatgen/io/xcrysden.py index 87cc1de86e5..f1c8a60ffe3 100644 --- a/pymatgen/io/xcrysden.py +++ b/pymatgen/io/xcrysden.py @@ -6,7 +6,7 @@ import numpy as np -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element if TYPE_CHECKING: from pymatgen.core import Structure diff --git a/pymatgen/symmetry/analyzer.py b/pymatgen/symmetry/analyzer.py index 8191703727a..1155a6798de 100644 --- a/pymatgen/symmetry/analyzer.py +++ b/pymatgen/symmetry/analyzer.py @@ -33,7 +33,7 @@ from pymatgen.util.due import Doi, due if TYPE_CHECKING: - from pymatgen.core.periodic_table import Element, Species + from pymatgen.core import Element, Species from pymatgen.core.sites import Site from pymatgen.symmetry.groups import CrystalSystem diff --git a/pymatgen/transformations/standard_transformations.py b/pymatgen/transformations/standard_transformations.py index 2ca43ab1d0a..9be374a5e97 100644 --- a/pymatgen/transformations/standard_transformations.py +++ b/pymatgen/transformations/standard_transformations.py @@ -17,9 +17,8 @@ from pymatgen.analysis.elasticity.strain import Deformation from pymatgen.analysis.ewald import EwaldMinimizer, EwaldSummation from pymatgen.analysis.structure_matcher import StructureMatcher -from pymatgen.core.composition import Composition +from pymatgen.core import Composition, get_el_sp from pymatgen.core.operations import SymmOp -from pymatgen.core.periodic_table import get_el_sp from pymatgen.core.structure import Lattice, Structure from pymatgen.symmetry.analyzer import SpacegroupAnalyzer from pymatgen.transformations.site_transformations import PartialRemoveSitesTransformation From e94bd70fb14b19bf7e2790dab39025b8ea9ffa01 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Tue, 7 Nov 2023 20:29:46 -0800 Subject: [PATCH 2/3] revert composition.py and structure.py --- pymatgen/core/composition.py | 2 +- pymatgen/core/structure.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pymatgen/core/composition.py b/pymatgen/core/composition.py index 4d8ae8ff290..2ef6b9be88d 100644 --- a/pymatgen/core/composition.py +++ b/pymatgen/core/composition.py @@ -17,7 +17,7 @@ from monty.json import MSONable from monty.serialization import loadfn -from pymatgen.core import DummySpecies, Element, Species, get_el_sp +from pymatgen.core.periodic_table import DummySpecies, Element, Species, get_el_sp from pymatgen.core.units import Mass from pymatgen.util.string import Stringify, formula_double_format diff --git a/pymatgen/core/structure.py b/pymatgen/core/structure.py index ea12d01bed9..a7fccad23ea 100644 --- a/pymatgen/core/structure.py +++ b/pymatgen/core/structure.py @@ -30,11 +30,12 @@ from ruamel.yaml import YAML from tabulate import tabulate -from pymatgen.core import DummySpecies, Element, PeriodicSite, Site, Species, get_el_sp from pymatgen.core.bonds import CovalentBond, get_bond_length from pymatgen.core.composition import Composition from pymatgen.core.lattice import Lattice, get_points_in_spheres from pymatgen.core.operations import SymmOp +from pymatgen.core.periodic_table import DummySpecies, Element, Species, get_el_sp +from pymatgen.core.sites import PeriodicSite, Site from pymatgen.core.units import Length, Mass from pymatgen.electronic_structure.core import Magmom from pymatgen.symmetry.maggroups import MagneticSpaceGroup From 6023900ec76f04a4c4f1000600dfa554ddab31a7 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Tue, 7 Nov 2023 20:38:03 -0800 Subject: [PATCH 3/3] more --- pymatgen/electronic_structure/bandstructure.py | 4 +--- pymatgen/electronic_structure/plotter.py | 4 ++-- pymatgen/entries/correction_calculator.py | 3 +-- pymatgen/ext/matproj_legacy.py | 5 +---- pymatgen/io/abinit/pseudos.py | 2 +- pymatgen/io/atat.py | 4 +--- pymatgen/io/exciting/inputs.py | 4 +--- pymatgen/io/feff/outputs.py | 2 +- pymatgen/io/gaussian.py | 4 +--- pymatgen/io/res.py | 5 +---- pymatgen/io/vasp/inputs.py | 5 +---- pymatgen/io/vasp/sets.py | 4 +--- pymatgen/transformations/advanced_transformations.py | 3 +-- pymatgen/util/plotting.py | 2 +- pymatgen/util/string.py | 3 +-- pymatgen/util/typing.py | 3 +-- pymatgen/vis/structure_vtk.py | 4 +--- tests/alchemy/test_filters.py | 4 +--- .../coordination_environments/test_structure_environments.py | 3 +-- tests/analysis/structure_prediction/test_dopant_predictor.py | 3 +-- .../structure_prediction/test_substitution_probability.py | 3 +-- tests/analysis/structure_prediction/test_substitutor.py | 3 +-- tests/analysis/test_bond_valence.py | 4 +--- tests/analysis/test_disorder.py | 3 +-- tests/analysis/test_energy_models.py | 2 +- tests/analysis/test_local_env.py | 3 +-- tests/analysis/test_phase_diagram.py | 3 +-- tests/analysis/test_structure_analyzer.py | 4 +--- tests/analysis/test_structure_matcher.py | 5 +---- tests/command_line/test_chargemol_caller.py | 2 +- tests/command_line/test_enumlib_caller.py | 3 +-- tests/core/test_bonds.py | 3 +-- tests/core/test_composition.py | 4 ++-- tests/core/test_ion.py | 3 +-- tests/core/test_periodic_table.py | 3 ++- tests/core/test_sites.py | 5 +---- tests/core/test_structure.py | 4 +--- tests/electronic_structure/test_dos.py | 3 +-- tests/entries/test_compatibility.py | 4 ++-- tests/entries/test_entry_tools.py | 2 +- tests/ext/test_matproj.py | 4 +--- tests/io/lammps/test_data.py | 4 +--- tests/io/test_cif.py | 5 +---- tests/io/test_phonopy.py | 2 +- tests/io/test_zeopp.py | 3 +-- tests/phonon/test_dos.py | 2 +- tests/symmetry/test_analyzer.py | 4 +--- tests/transformations/test_advanced_transformations.py | 4 +--- tests/transformations/test_standard_transformations.py | 3 +-- 49 files changed, 53 insertions(+), 115 deletions(-) diff --git a/pymatgen/electronic_structure/bandstructure.py b/pymatgen/electronic_structure/bandstructure.py index ea70c632036..50ae504c8df 100644 --- a/pymatgen/electronic_structure/bandstructure.py +++ b/pymatgen/electronic_structure/bandstructure.py @@ -11,9 +11,7 @@ import numpy as np from monty.json import MSONable -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element, get_el_sp -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Lattice, Structure, get_el_sp from pymatgen.electronic_structure.core import Orbital, Spin from pymatgen.symmetry.analyzer import SpacegroupAnalyzer from pymatgen.util.coord import pbc_diff diff --git a/pymatgen/electronic_structure/plotter.py b/pymatgen/electronic_structure/plotter.py index 55994cf37b7..a5695f4c94e 100644 --- a/pymatgen/electronic_structure/plotter.py +++ b/pymatgen/electronic_structure/plotter.py @@ -18,7 +18,7 @@ from monty.dev import requires from monty.json import jsanitize -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.electronic_structure.bandstructure import BandStructureSymmLine from pymatgen.electronic_structure.boltztrap import BoltztrapError from pymatgen.electronic_structure.core import OrbitalType, Spin @@ -1949,7 +1949,7 @@ def _number_of_subfigures(self, dictio, dictpa, sum_atoms, sum_morbs): return dictpa, sum_atoms, number_figs def _summarize_keys_for_plot(self, dictio, dictpa, sum_atoms, sum_morbs): - from pymatgen.core.periodic_table import Element + from pymatgen.core import Element individual_orbs = { "p": ["px", "py", "pz"], diff --git a/pymatgen/entries/correction_calculator.py b/pymatgen/entries/correction_calculator.py index f3c9f1c3b3e..965751c4ddd 100644 --- a/pymatgen/entries/correction_calculator.py +++ b/pymatgen/entries/correction_calculator.py @@ -15,8 +15,7 @@ from pymatgen.analysis.reaction_calculator import ComputedReaction from pymatgen.analysis.structure_analyzer import sulfide_type -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Element +from pymatgen.core import Composition, Element class CorrectionCalculator: diff --git a/pymatgen/ext/matproj_legacy.py b/pymatgen/ext/matproj_legacy.py index 6bdc874569d..35f2aed467b 100644 --- a/pymatgen/ext/matproj_legacy.py +++ b/pymatgen/ext/matproj_legacy.py @@ -23,11 +23,8 @@ from ruamel.yaml import YAML from tqdm import tqdm -from pymatgen.core import SETTINGS +from pymatgen.core import SETTINGS, Composition, Element, Structure from pymatgen.core import __version__ as PMG_VERSION -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure from pymatgen.core.surface import get_symmetrically_equivalent_miller_indices from pymatgen.entries.computed_entries import ComputedEntry, ComputedStructureEntry from pymatgen.entries.exp_entries import ExpEntry diff --git a/pymatgen/io/abinit/pseudos.py b/pymatgen/io/abinit/pseudos.py index 649603928ad..ea4f53239f2 100644 --- a/pymatgen/io/abinit/pseudos.py +++ b/pymatgen/io/abinit/pseudos.py @@ -21,7 +21,7 @@ from monty.os.path import find_exts from tabulate import tabulate -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.core.xcfunc import XcFunc from pymatgen.io.core import ParseError from pymatgen.util.plotting import add_fig_kwargs, get_ax_fig diff --git a/pymatgen/io/atat.py b/pymatgen/io/atat.py index 7d3bea9cd2c..8c12976f3b2 100644 --- a/pymatgen/io/atat.py +++ b/pymatgen/io/atat.py @@ -5,9 +5,7 @@ import numpy as np from monty.dev import deprecated -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import get_el_sp -from pymatgen.core.structure import Structure +from pymatgen.core import Lattice, Structure, get_el_sp __author__ = "Matthew Horton" __copyright__ = "Copyright 2017, The Materials Project" diff --git a/pymatgen/io/exciting/inputs.py b/pymatgen/io/exciting/inputs.py index 297bd7ba1b4..b81cbac5a45 100644 --- a/pymatgen/io/exciting/inputs.py +++ b/pymatgen/io/exciting/inputs.py @@ -9,9 +9,7 @@ from monty.io import zopen from monty.json import MSONable -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Lattice, Structure from pymatgen.symmetry.analyzer import SpacegroupAnalyzer from pymatgen.symmetry.bandstructure import HighSymmKpath diff --git a/pymatgen/io/feff/outputs.py b/pymatgen/io/feff/outputs.py index 4cd0ffd5c27..985b91161fd 100644 --- a/pymatgen/io/feff/outputs.py +++ b/pymatgen/io/feff/outputs.py @@ -14,7 +14,7 @@ from monty.io import zopen from monty.json import MSONable -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.electronic_structure.core import Orbital, Spin from pymatgen.electronic_structure.dos import CompleteDos, Dos from pymatgen.io.feff import Header, Potential, Tags diff --git a/pymatgen/io/gaussian.py b/pymatgen/io/gaussian.py index e9b5f8b889b..7014673c2c3 100644 --- a/pymatgen/io/gaussian.py +++ b/pymatgen/io/gaussian.py @@ -9,10 +9,8 @@ import scipy.constants as cst from monty.io import zopen -from pymatgen.core.composition import Composition +from pymatgen.core import Composition, Element, Molecule from pymatgen.core.operations import SymmOp -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Molecule from pymatgen.core.units import Ha_to_eV from pymatgen.electronic_structure.core import Spin from pymatgen.util.coord import get_angle diff --git a/pymatgen/io/res.py b/pymatgen/io/res.py index 3b05ce6e173..e476946bdd2 100644 --- a/pymatgen/io/res.py +++ b/pymatgen/io/res.py @@ -19,10 +19,7 @@ from monty.io import zopen from monty.json import MSONable -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.sites import PeriodicSite -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Lattice, PeriodicSite, Structure from pymatgen.entries.computed_entries import ComputedStructureEntry from pymatgen.io.core import ParseError diff --git a/pymatgen/io/vasp/inputs.py b/pymatgen/io/vasp/inputs.py index 076490b995d..210fcf1727d 100644 --- a/pymatgen/io/vasp/inputs.py +++ b/pymatgen/io/vasp/inputs.py @@ -30,10 +30,7 @@ from monty.serialization import dumpfn, loadfn from tabulate import tabulate -from pymatgen.core import SETTINGS -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element, get_el_sp -from pymatgen.core.structure import Structure +from pymatgen.core import SETTINGS, Element, Lattice, Structure, get_el_sp from pymatgen.electronic_structure.core import Magmom from pymatgen.util.io_utils import clean_lines from pymatgen.util.string import str_delimited diff --git a/pymatgen/io/vasp/sets.py b/pymatgen/io/vasp/sets.py index e9620b4ad28..1ef776b2192 100644 --- a/pymatgen/io/vasp/sets.py +++ b/pymatgen/io/vasp/sets.py @@ -47,9 +47,7 @@ from monty.serialization import loadfn from pymatgen.analysis.structure_matcher import StructureMatcher -from pymatgen.core.periodic_table import Element, Species -from pymatgen.core.sites import PeriodicSite -from pymatgen.core.structure import SiteCollection, Structure +from pymatgen.core import Element, PeriodicSite, SiteCollection, Species, Structure from pymatgen.io.vasp.inputs import Incar, Kpoints, Poscar, Potcar, VaspInput from pymatgen.io.vasp.outputs import Outcar, Vasprun from pymatgen.symmetry.analyzer import SpacegroupAnalyzer diff --git a/pymatgen/transformations/advanced_transformations.py b/pymatgen/transformations/advanced_transformations.py index e980e732368..a53ad4379b7 100644 --- a/pymatgen/transformations/advanced_transformations.py +++ b/pymatgen/transformations/advanced_transformations.py @@ -26,8 +26,7 @@ from pymatgen.analysis.structure_prediction.substitution_probability import SubstitutionPredictor from pymatgen.command_line.enumlib_caller import EnumError, EnumlibAdaptor from pymatgen.command_line.mcsqs_caller import run_mcsqs -from pymatgen.core.periodic_table import DummySpecies, Element, Species, get_el_sp -from pymatgen.core.structure import Structure +from pymatgen.core import DummySpecies, Element, Species, Structure, get_el_sp from pymatgen.core.surface import SlabGenerator from pymatgen.electronic_structure.core import Spin from pymatgen.io.ase import AseAtomsAdaptor diff --git a/pymatgen/util/plotting.py b/pymatgen/util/plotting.py index 3308f9989d1..989f3d453c9 100644 --- a/pymatgen/util/plotting.py +++ b/pymatgen/util/plotting.py @@ -9,7 +9,7 @@ import numpy as np from matplotlib import cm, colors -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element if TYPE_CHECKING: from collections.abc import Sequence diff --git a/pymatgen/util/string.py b/pymatgen/util/string.py index 4efa99ee691..152c97d6572 100644 --- a/pymatgen/util/string.py +++ b/pymatgen/util/string.py @@ -339,8 +339,7 @@ def disordered_formula(disordered_struct, symbols=("x", "y", "z"), fmt="plain"): # have to pass the full structure as an argument # (alternatively this could be made a method on # Structure) - from pymatgen.core.composition import Composition - from pymatgen.core.periodic_table import get_el_sp + from pymatgen.core import Composition, get_el_sp if disordered_struct.is_ordered: raise ValueError("Structure is not disordered, so disordered formula not defined.") diff --git a/pymatgen/util/typing.py b/pymatgen/util/typing.py index 17a30b26762..f5fa5a7c0bf 100644 --- a/pymatgen/util/typing.py +++ b/pymatgen/util/typing.py @@ -8,8 +8,7 @@ from pathlib import Path from typing import TYPE_CHECKING, Any, Union -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import DummySpecies, Element, Species +from pymatgen.core import Composition, DummySpecies, Element, Species if TYPE_CHECKING: # needed to avoid circular imports from pymatgen.analysis.cost import CostEntry # type: ignore[attr-defined] diff --git a/pymatgen/vis/structure_vtk.py b/pymatgen/vis/structure_vtk.py index ef964f7795a..aecacad7a33 100644 --- a/pymatgen/vis/structure_vtk.py +++ b/pymatgen/vis/structure_vtk.py @@ -13,9 +13,7 @@ from monty.dev import requires from monty.serialization import loadfn -from pymatgen.core.periodic_table import Species -from pymatgen.core.sites import PeriodicSite -from pymatgen.core.structure import Structure +from pymatgen.core import PeriodicSite, Species, Structure from pymatgen.util.coord import in_coord_list if TYPE_CHECKING: diff --git a/tests/alchemy/test_filters.py b/tests/alchemy/test_filters.py index 879ebf69b75..9a129fe81b1 100644 --- a/tests/alchemy/test_filters.py +++ b/tests/alchemy/test_filters.py @@ -13,9 +13,7 @@ ) from pymatgen.alchemy.transmuters import StandardTransmuter from pymatgen.analysis.structure_matcher import StructureMatcher -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Species -from pymatgen.core.structure import Structure +from pymatgen.core import Lattice, Species, Structure from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/analysis/chemenv/coordination_environments/test_structure_environments.py b/tests/analysis/chemenv/coordination_environments/test_structure_environments.py index 9b81b4f0209..ee06ae7486e 100644 --- a/tests/analysis/chemenv/coordination_environments/test_structure_environments.py +++ b/tests/analysis/chemenv/coordination_environments/test_structure_environments.py @@ -16,8 +16,7 @@ LightStructureEnvironments, StructureEnvironments, ) -from pymatgen.core import Structure -from pymatgen.core.periodic_table import Species +from pymatgen.core import Species, Structure from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest __author__ = "waroquiers" diff --git a/tests/analysis/structure_prediction/test_dopant_predictor.py b/tests/analysis/structure_prediction/test_dopant_predictor.py index 544d6a86d98..c42a1cba0ab 100644 --- a/tests/analysis/structure_prediction/test_dopant_predictor.py +++ b/tests/analysis/structure_prediction/test_dopant_predictor.py @@ -9,8 +9,7 @@ get_dopants_from_shannon_radii, get_dopants_from_substitution_probabilities, ) -from pymatgen.core.periodic_table import Species -from pymatgen.core.structure import Structure +from pymatgen.core import Species, Structure class TestDopantPrediction(unittest.TestCase): diff --git a/tests/analysis/structure_prediction/test_substitution_probability.py b/tests/analysis/structure_prediction/test_substitution_probability.py index e56648e4e0c..8d12adc141a 100644 --- a/tests/analysis/structure_prediction/test_substitution_probability.py +++ b/tests/analysis/structure_prediction/test_substitution_probability.py @@ -10,8 +10,7 @@ SubstitutionPredictor, SubstitutionProbability, ) -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Species +from pymatgen.core import Composition, Species from pymatgen.util.testing import TEST_FILES_DIR diff --git a/tests/analysis/structure_prediction/test_substitutor.py b/tests/analysis/structure_prediction/test_substitutor.py index 1bb655bd201..512ba835528 100644 --- a/tests/analysis/structure_prediction/test_substitutor.py +++ b/tests/analysis/structure_prediction/test_substitutor.py @@ -4,8 +4,7 @@ import os from pymatgen.analysis.structure_prediction.substitutor import Substitutor -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Species +from pymatgen.core import Composition, Species from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/analysis/test_bond_valence.py b/tests/analysis/test_bond_valence.py index 55019cbadc0..05a5ef92715 100644 --- a/tests/analysis/test_bond_valence.py +++ b/tests/analysis/test_bond_valence.py @@ -4,9 +4,7 @@ from pytest import approx from pymatgen.analysis.bond_valence import BVAnalyzer, calculate_bv_sum, calculate_bv_sum_unordered -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import Species -from pymatgen.core.structure import Structure +from pymatgen.core import Composition, Species, Structure from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/analysis/test_disorder.py b/tests/analysis/test_disorder.py index f1c6223fea0..a4b930096ac 100644 --- a/tests/analysis/test_disorder.py +++ b/tests/analysis/test_disorder.py @@ -3,8 +3,7 @@ from pytest import approx from pymatgen.analysis.disorder import get_warren_cowley_parameters -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Structure from pymatgen.util.testing import PymatgenTest diff --git a/tests/analysis/test_energy_models.py b/tests/analysis/test_energy_models.py index 84ddd48a43d..827a50931e0 100644 --- a/tests/analysis/test_energy_models.py +++ b/tests/analysis/test_energy_models.py @@ -54,7 +54,7 @@ def test_as_from_dict(self): class TestIsingModel(unittest.TestCase): def test_get_energy(self): m = IsingModel(5, 6) - from pymatgen.core.periodic_table import Species + from pymatgen.core import Species struct = Structure.from_file(f"{TEST_FILES_DIR}/LiFePO4.cif") struct.replace_species({"Fe": Species("Fe", 2, spin=4)}) diff --git a/tests/analysis/test_local_env.py b/tests/analysis/test_local_env.py index c485cf71c78..ce58988f8f1 100644 --- a/tests/analysis/test_local_env.py +++ b/tests/analysis/test_local_env.py @@ -37,8 +37,7 @@ site_is_of_motif_type, solid_angle, ) -from pymatgen.core import Lattice, Molecule, Structure -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element, Lattice, Molecule, Structure from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest test_dir = f"{TEST_FILES_DIR}/fragmenter_files" diff --git a/tests/analysis/test_phase_diagram.py b/tests/analysis/test_phase_diagram.py index 113e4780a70..3782e5b2fbc 100644 --- a/tests/analysis/test_phase_diagram.py +++ b/tests/analysis/test_phase_diagram.py @@ -26,8 +26,7 @@ triangular_coord, uniquelines, ) -from pymatgen.core.composition import Composition -from pymatgen.core.periodic_table import DummySpecies, Element +from pymatgen.core import Composition, DummySpecies, Element from pymatgen.entries.computed_entries import ComputedEntry from pymatgen.entries.entry_tools import EntrySet from pymatgen.util.testing import PymatgenTest diff --git a/tests/analysis/test_structure_analyzer.py b/tests/analysis/test_structure_analyzer.py index a2c28baf452..fcaa60c6590 100644 --- a/tests/analysis/test_structure_analyzer.py +++ b/tests/analysis/test_structure_analyzer.py @@ -16,9 +16,7 @@ solid_angle, sulfide_type, ) -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Lattice, Structure from pymatgen.io.vasp.outputs import Xdatcar from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/analysis/test_structure_matcher.py b/tests/analysis/test_structure_matcher.py index 2d5cc82911e..116818121e5 100644 --- a/tests/analysis/test_structure_matcher.py +++ b/tests/analysis/test_structure_matcher.py @@ -15,10 +15,7 @@ OrderDisorderElementComparator, StructureMatcher, ) -from pymatgen.core.lattice import Lattice -from pymatgen.core.operations import SymmOp -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Lattice, Structure, SymmOp from pymatgen.util.coord import find_in_coord_list_pbc from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/command_line/test_chargemol_caller.py b/tests/command_line/test_chargemol_caller.py index 40cf2e09e7f..5f7fb8e5557 100644 --- a/tests/command_line/test_chargemol_caller.py +++ b/tests/command_line/test_chargemol_caller.py @@ -3,7 +3,7 @@ import unittest from pymatgen.command_line.chargemol_caller import ChargemolAnalysis -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.util.testing import TEST_FILES_DIR diff --git a/tests/command_line/test_enumlib_caller.py b/tests/command_line/test_enumlib_caller.py index deb71aa3900..49cab96c62f 100644 --- a/tests/command_line/test_enumlib_caller.py +++ b/tests/command_line/test_enumlib_caller.py @@ -7,8 +7,7 @@ from pytest import approx from pymatgen.command_line.enumlib_caller import EnumError, EnumlibAdaptor -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Structure from pymatgen.symmetry.analyzer import SpacegroupAnalyzer from pymatgen.transformations.site_transformations import RemoveSitesTransformation from pymatgen.transformations.standard_transformations import SubstitutionTransformation diff --git a/tests/core/test_bonds.py b/tests/core/test_bonds.py index bafbbaecca7..ebe768ad9ba 100644 --- a/tests/core/test_bonds.py +++ b/tests/core/test_bonds.py @@ -5,9 +5,8 @@ import pytest from pytest import approx +from pymatgen.core import Element, Site from pymatgen.core.bonds import CovalentBond, get_bond_length, get_bond_order, obtain_all_bond_lengths -from pymatgen.core.periodic_table import Element -from pymatgen.core.sites import Site __author__ = "Shyue Ping Ong" __copyright__ = "Copyright 2012, The Materials Project" diff --git a/tests/core/test_composition.py b/tests/core/test_composition.py index d322225417e..d11411d2231 100644 --- a/tests/core/test_composition.py +++ b/tests/core/test_composition.py @@ -13,8 +13,8 @@ from numpy.testing import assert_allclose from pytest import approx -from pymatgen.core.composition import ChemicalPotential, Composition -from pymatgen.core.periodic_table import DummySpecies, Element, Species +from pymatgen.core import Composition, DummySpecies, Element, Species +from pymatgen.core.composition import ChemicalPotential from pymatgen.util.testing import PymatgenTest diff --git a/tests/core/test_ion.py b/tests/core/test_ion.py index 6a33675344e..0e9cfd92fa6 100644 --- a/tests/core/test_ion.py +++ b/tests/core/test_ion.py @@ -5,9 +5,8 @@ import pytest -from pymatgen.core.composition import Composition +from pymatgen.core import Composition, Element from pymatgen.core.ion import Ion -from pymatgen.core.periodic_table import Element class TestIon(unittest.TestCase): diff --git a/tests/core/test_periodic_table.py b/tests/core/test_periodic_table.py index 6aba53b1e99..5c675819aa9 100644 --- a/tests/core/test_periodic_table.py +++ b/tests/core/test_periodic_table.py @@ -9,7 +9,8 @@ import pytest from pytest import approx -from pymatgen.core.periodic_table import DummySpecies, Element, ElementBase, Species, get_el_sp +from pymatgen.core import DummySpecies, Element, Species, get_el_sp +from pymatgen.core.periodic_table import ElementBase from pymatgen.util.testing import PymatgenTest diff --git a/tests/core/test_sites.py b/tests/core/test_sites.py index 340e84b7d9d..dcfad1c6860 100644 --- a/tests/core/test_sites.py +++ b/tests/core/test_sites.py @@ -7,10 +7,7 @@ from numpy.testing import assert_allclose from pytest import approx -from pymatgen.core.composition import Composition -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element, Species -from pymatgen.core.sites import PeriodicSite, Site +from pymatgen.core import Composition, Element, Lattice, PeriodicSite, Site, Species from pymatgen.electronic_structure.core import Magmom from pymatgen.util.testing import PymatgenTest diff --git a/tests/core/test_structure.py b/tests/core/test_structure.py index f81df3a6280..285d88dbd1e 100644 --- a/tests/core/test_structure.py +++ b/tests/core/test_structure.py @@ -13,10 +13,8 @@ from numpy.testing import assert_allclose, assert_array_equal from pytest import approx -from pymatgen.core.composition import Composition -from pymatgen.core.lattice import Lattice +from pymatgen.core import Composition, Element, Lattice, Species from pymatgen.core.operations import SymmOp -from pymatgen.core.periodic_table import Element, Species from pymatgen.core.structure import ( IMolecule, IStructure, diff --git a/tests/electronic_structure/test_dos.py b/tests/electronic_structure/test_dos.py index 2a34c50c4fe..829b6db8465 100644 --- a/tests/electronic_structure/test_dos.py +++ b/tests/electronic_structure/test_dos.py @@ -10,8 +10,7 @@ from numpy.testing import assert_allclose from pytest import approx -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Structure +from pymatgen.core import Element, Structure from pymatgen.electronic_structure.core import Orbital, OrbitalType, Spin from pymatgen.electronic_structure.dos import DOS, CompleteDos, FermiDos, LobsterCompleteDos from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/entries/test_compatibility.py b/tests/entries/test_compatibility.py index 6b2f01ce945..63935f9e8a6 100644 --- a/tests/entries/test_compatibility.py +++ b/tests/entries/test_compatibility.py @@ -13,9 +13,9 @@ from pytest import approx import pymatgen +from pymatgen.core import Element from pymatgen.core.composition import Composition from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element from pymatgen.core.structure import Structure from pymatgen.entries.compatibility import ( MU_H2O, @@ -998,7 +998,7 @@ def test_check_potcar(self): MaterialsProject2020Compatibility(check_potcar=False).process_entries(entry) def test_process_entry_with_oxidation_state(self): - from pymatgen.core.periodic_table import Species + from pymatgen.core import Species params = {"is_hubbard": True, "hubbards": {"Fe": 5.3, "O": 0}, "run_type": "GGA+U"} entry = ComputedEntry({Species("Fe2+"): 2, Species("O2-"): 3}, -1, parameters=params) diff --git a/tests/entries/test_entry_tools.py b/tests/entries/test_entry_tools.py index 457f0d09b14..3ffdb2c4897 100644 --- a/tests/entries/test_entry_tools.py +++ b/tests/entries/test_entry_tools.py @@ -3,7 +3,7 @@ import pytest from monty.serialization import dumpfn, loadfn -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.entries.computed_entries import ComputedEntry from pymatgen.entries.entry_tools import EntrySet, group_entries_by_composition, group_entries_by_structure from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/ext/test_matproj.py b/tests/ext/test_matproj.py index ee6259446d7..de37caa0df9 100644 --- a/tests/ext/test_matproj.py +++ b/tests/ext/test_matproj.py @@ -14,9 +14,7 @@ from pymatgen.analysis.pourbaix_diagram import PourbaixDiagram, PourbaixEntry from pymatgen.analysis.reaction_calculator import Reaction from pymatgen.analysis.wulff import WulffShape -from pymatgen.core import SETTINGS -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Composition, Structure +from pymatgen.core import SETTINGS, Composition, Element, Structure from pymatgen.electronic_structure.bandstructure import BandStructure, BandStructureSymmLine from pymatgen.electronic_structure.dos import CompleteDos from pymatgen.entries.compatibility import MaterialsProject2020Compatibility diff --git a/tests/io/lammps/test_data.py b/tests/io/lammps/test_data.py index 7b466203488..d056a686137 100644 --- a/tests/io/lammps/test_data.py +++ b/tests/io/lammps/test_data.py @@ -14,9 +14,7 @@ from pytest import approx from ruamel.yaml import YAML -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.structure import Molecule, Structure +from pymatgen.core import Element, Lattice, Molecule, Structure from pymatgen.io.lammps.data import CombinedData, ForceField, LammpsBox, LammpsData, Topology, lattice_2_lmpbox from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/io/test_cif.py b/tests/io/test_cif.py index e838566c6e2..e9dd4fab5dc 100644 --- a/tests/io/test_cif.py +++ b/tests/io/test_cif.py @@ -7,10 +7,7 @@ from pytest import approx from pymatgen.analysis.structure_matcher import StructureMatcher -from pymatgen.core.composition import Composition -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import DummySpecies, Element, Species -from pymatgen.core.structure import Structure +from pymatgen.core import Composition, DummySpecies, Element, Lattice, Species, Structure from pymatgen.electronic_structure.core import Magmom from pymatgen.io.cif import CifBlock, CifParser, CifWriter from pymatgen.symmetry.structure import SymmetrizedStructure diff --git a/tests/io/test_phonopy.py b/tests/io/test_phonopy.py index 4645cb3e658..178d444b2df 100644 --- a/tests/io/test_phonopy.py +++ b/tests/io/test_phonopy.py @@ -9,7 +9,7 @@ from numpy.testing import assert_allclose, assert_array_equal from pytest import approx -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.io.phonopy import ( CompletePhononDos, PhononBandStructure, diff --git a/tests/io/test_zeopp.py b/tests/io/test_zeopp.py index cb2072dfe94..a701839bbbd 100644 --- a/tests/io/test_zeopp.py +++ b/tests/io/test_zeopp.py @@ -5,8 +5,7 @@ from pytest import approx from pymatgen.analysis.bond_valence import BVAnalyzer -from pymatgen.core.periodic_table import Species -from pymatgen.core.structure import Molecule, Structure +from pymatgen.core import Molecule, Species, Structure from pymatgen.io.zeopp import ( ZeoCssr, ZeoVoronoiXYZ, diff --git a/tests/phonon/test_dos.py b/tests/phonon/test_dos.py index 5917f19d3f1..3d83934d0c6 100644 --- a/tests/phonon/test_dos.py +++ b/tests/phonon/test_dos.py @@ -4,7 +4,7 @@ from pytest import approx -from pymatgen.core.periodic_table import Element +from pymatgen.core import Element from pymatgen.phonon.dos import CompletePhononDos, PhononDos from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/symmetry/test_analyzer.py b/tests/symmetry/test_analyzer.py index 2e07003c155..e4d7a2b24eb 100644 --- a/tests/symmetry/test_analyzer.py +++ b/tests/symmetry/test_analyzer.py @@ -7,9 +7,7 @@ from numpy.testing import assert_allclose from pytest import approx -from pymatgen.core.periodic_table import Species -from pymatgen.core.sites import PeriodicSite -from pymatgen.core.structure import Molecule, Structure +from pymatgen.core import Molecule, PeriodicSite, Species, Structure from pymatgen.io.vasp.outputs import Vasprun from pymatgen.symmetry.analyzer import PointGroupAnalyzer, SpacegroupAnalyzer, cluster_sites, iterative_symmetrize from pymatgen.util.testing import TEST_FILES_DIR, PymatgenTest diff --git a/tests/transformations/test_advanced_transformations.py b/tests/transformations/test_advanced_transformations.py index df437e1c348..6537ec9331f 100644 --- a/tests/transformations/test_advanced_transformations.py +++ b/tests/transformations/test_advanced_transformations.py @@ -12,9 +12,7 @@ from pymatgen.analysis.energy_models import IsingModel from pymatgen.analysis.gb.grain import GrainBoundaryGenerator -from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Species -from pymatgen.core.structure import Molecule, Structure +from pymatgen.core import Lattice, Molecule, Species, Structure from pymatgen.core.surface import SlabGenerator from pymatgen.io.cif import CifParser from pymatgen.symmetry.analyzer import SpacegroupAnalyzer diff --git a/tests/transformations/test_standard_transformations.py b/tests/transformations/test_standard_transformations.py index 5a7f6bbc8b9..5febecd4679 100644 --- a/tests/transformations/test_standard_transformations.py +++ b/tests/transformations/test_standard_transformations.py @@ -11,9 +11,8 @@ from monty.json import MontyDecoder from pytest import approx +from pymatgen.core import Element, PeriodicSite from pymatgen.core.lattice import Lattice -from pymatgen.core.periodic_table import Element -from pymatgen.core.sites import PeriodicSite from pymatgen.symmetry.structure import SymmetrizedStructure from pymatgen.transformations.standard_transformations import ( AutoOxiStateDecorationTransformation,