Skip to content

Commit

Permalink
Merge pull request #2471 from janosh/fix-circular-import
Browse files Browse the repository at this point in the history
Fix circular import in `pymatgen.symmetry.groups`
  • Loading branch information
shyuep authored Mar 25, 2022
2 parents a909a3e + d24702e commit f7fc018
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 6 deletions.
1 change: 0 additions & 1 deletion pymatgen/io/abinit/abiobjects.py
Original file line number Diff line number Diff line change
Expand Up @@ -760,7 +760,6 @@ def __init__(
raise ValueError("For Path mode, num_kpts must be specified and >0")

kptbounds = np.reshape(kpts, (-1, 3))
# print("in path with kptbound: %s " % kptbounds)

abivars.update(
{
Expand Down
16 changes: 12 additions & 4 deletions pymatgen/symmetry/groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,19 @@
from collections.abc import Sequence
from fractions import Fraction
from itertools import product
from typing import Literal, overload
from typing import TYPE_CHECKING, Literal, overload

import numpy as np
from monty.design_patterns import cached_class
from monty.serialization import loadfn

from pymatgen.core.lattice import Lattice
from pymatgen.core.operations import SymmOp
from pymatgen.util.string import Stringify
from pymatgen.util.typing import ArrayLike

if TYPE_CHECKING:
# don't import at runtime to avoid circular import
from pymatgen.core.lattice import Lattice
from pymatgen.core.operations import SymmOp
from pymatgen.util.typing import ArrayLike

SYMM_DATA = None

Expand Down Expand Up @@ -137,6 +140,8 @@ def __init__(self, int_symbol: str) -> None:
Args:
int_symbol (str): International or Hermann-Mauguin Symbol.
"""
from pymatgen.core.operations import SymmOp

self.symbol = int_symbol
self.generators = [
_get_symm_data("generator_matrices")[c] for c in _get_symm_data("point_group_encoding")[int_symbol]
Expand Down Expand Up @@ -241,6 +246,7 @@ def __init__(self, int_symbol: str) -> None:
classmethod. Alternative origin choices can be indicated by a
translation vector, e.g., 'Fm-3m(a-1/4,b-1/4,c-1/4)'.
"""
from pymatgen.core.operations import SymmOp

int_symbol = re.sub(r" ", "", int_symbol)
if int_symbol in SpaceGroup.abbrev_sg_mapping:
Expand Down Expand Up @@ -355,6 +361,8 @@ def symmetry_ops(self) -> set[SymmOp]:
Full set of symmetry operations as matrices. Lazily initialized as
generation sometimes takes a bit of time.
"""
from pymatgen.core.operations import SymmOp

if self._symmetry_ops is None:
self._symmetry_ops = {SymmOp(m) for m in self._generate_full_symmetry_ops()}
return self._symmetry_ops
Expand Down
4 changes: 3 additions & 1 deletion test_files/Zr_Vasprun/test_Vasprun.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/usr/bin/env python

from os.path import abspath, dirname

from pymatgen.io.vasp.outputs import Vasprun

run = Vasprun("./vasprun.xml")
run = Vasprun(f"{dirname(abspath(__file__))}/vasprun.xml")

0 comments on commit f7fc018

Please sign in to comment.