4141from pymatgen .io .wannier90 import Unk
4242from pymatgen .util .io_utils import clean_lines , micro_pyawk
4343from pymatgen .util .num import make_symmetric_matrix_from_upper_tri
44- from pymatgen .util .typing import Kpoint , Tuple3Floats , Vector3D
4544
4645if TYPE_CHECKING :
4746 from collections .abc import Callable
5352 from numpy .typing import NDArray
5453 from typing_extensions import Self
5554
56- from pymatgen .util .typing import PathLike
55+ from pymatgen .util .typing import Kpoint , PathLike , Tuple3Floats , Vector3D
5756
5857
5958def _parse_parameters (val_type : str , val : str ) -> bool | str | float | int :
@@ -154,7 +153,7 @@ def _vasprun_float(flt: float | str) -> float:
154153 return float (flt )
155154
156155 except ValueError :
157- flt = cast (str , flt )
156+ flt = cast (" str" , flt )
158157 _flt : str = flt .strip ()
159158 if _flt == "*" * len (_flt ):
160159 warnings .warn (
@@ -1490,10 +1489,10 @@ def _parse_kpoints(
14901489
14911490 if name == "divisions" :
14921491 kpoint .kpts = [
1493- cast (Kpoint , tuple (int (i ) for i in tokens )),
1492+ cast (" Kpoint" , tuple (int (i ) for i in tokens )),
14941493 ]
14951494 elif name == "usershift" :
1496- kpoint .kpts_shift = cast (Vector3D , tuple (float (i ) for i in tokens ))
1495+ kpoint .kpts_shift = cast (" Vector3D" , tuple (float (i ) for i in tokens ))
14971496 elif name in {"genvec1" , "genvec2" , "genvec3" , "shift" }:
14981497 setattr (kpoint , name , [float (i ) for i in tokens ])
14991498
@@ -1502,7 +1501,7 @@ def _parse_kpoints(
15021501 for va in elem .findall ("varray" ):
15031502 name = va .attrib ["name" ]
15041503 if name == "kpointlist" :
1505- actual_kpoints = cast (list [Tuple3Floats ], list (map (tuple , _parse_vasp_array (va ))))
1504+ actual_kpoints = cast (" list[Tuple3Floats]" , list (map (tuple , _parse_vasp_array (va ))))
15061505 elif name == "weights" :
15071506 weights = [i [0 ] for i in _parse_vasp_array (va )]
15081507 elem .clear ()
@@ -2216,7 +2215,7 @@ def __init__(self, filename: PathLike) -> None:
22162215 self .dfpt = True
22172216 self .fd = False
22182217 self .read_internal_strain_tensor ()
2219- elif self .data .get ("ibrion" , [[0 ]])[0 ][0 ] in [5 ,6 ]:
2218+ elif self .data .get ("ibrion" , [[0 ]])[0 ][0 ] in [5 , 6 ]:
22202219 self .dfpt = False
22212220 self .fd = True
22222221 self .read_internal_strain_tensor ()
@@ -2225,7 +2224,8 @@ def __init__(self, filename: PathLike) -> None:
22252224 self .fd = False
22262225
22272226 # Check for variable cell calculation
2228- self .read_pattern ({"isif" : r"ISIF\s+=\s+([\-\d]+)" },
2227+ self .read_pattern (
2228+ {"isif" : r"ISIF\s+=\s+([\-\d]+)" },
22292229 terminate_on_match = True ,
22302230 postprocess = int ,
22312231 )
@@ -2237,7 +2237,7 @@ def __init__(self, filename: PathLike) -> None:
22372237 # Check if LRPA is True
22382238 self .lrpa = False
22392239 self .read_pattern ({"rpa" : r"LRPA\s*=\s*T" })
2240- if self .data .get ("rpa" ,False ):
2240+ if self .data .get ("rpa" , False ):
22412241 self .lrpa = True
22422242
22432243 # Check if LEPSILON is True and read piezo data if so
@@ -3057,15 +3057,16 @@ def dielectric_section_stop(results, match):
30573057
30583058 def piezo_section_start (results , _match ):
30593059 results .piezo_index = 0
3060+
30603061 if not self .lrpa :
30613062 search .append (
3062- [
3063- r"PIEZOELECTRIC TENSOR \(including local field effects\)" +
3064- r"(?:\s*for\s*field\s*in\s*x,\s*y,\s*z\s*)? \(C/m\^2\)" ,
3065- None ,
3066- piezo_section_start ,
3067- ]
3068- )
3063+ [
3064+ r"PIEZOELECTRIC TENSOR \(including local field effects\)"
3065+ + r"(?:\s*for\s*field\s*in\s*x,\s*y,\s*z\s*)? \(C/m\^2\)" ,
3066+ None ,
3067+ piezo_section_start ,
3068+ ]
3069+ )
30693070
30703071 def piezo_data (results , match ):
30713072 results .piezo_tensor [results .piezo_index , :] = np .array ([float (match [i ]) for i in range (1 , 7 )])
@@ -3532,9 +3533,7 @@ def as_dict(self) -> dict:
35323533 "dielectric_ionic_tensor" : self .dielectric_ionic_tensor ,
35333534 }
35343535 if self .fd and self .varcell :
3535- dct |= {
3536- "elastic_tensor" : self .data ["elastic_tensor" ]
3537- }
3536+ dct |= {"elastic_tensor" : self .data ["elastic_tensor" ]}
35383537
35393538 if self .dfpt :
35403539 dct ["internal_strain_tensor" ] = self .internal_strain_tensor
0 commit comments