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,14 +3057,15 @@ 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\)(?:\s*for\s*field\s*in\s*x,\s*y,\s*z\s*)? \(C/m\^2\)" ,
3064-                     None ,
3065-                     piezo_section_start ,
3066-                 ]
3067-             )
3063+                      [
3064+                          r"PIEZOELECTRIC TENSOR \(including local field effects\)(?:\s*for\s*field\s*in\s*x,\s*y,\s*z\s*)? \(C/m\^2\)" ,
3065+                          None ,
3066+                          piezo_section_start ,
3067+                      ]
3068+                  )
30683069
30693070            def  piezo_data (results , match ):
30703071                results .piezo_tensor [results .piezo_index , :] =  np .array ([float (match [i ]) for  i  in  range (1 , 7 )])
@@ -3531,9 +3532,7 @@ def as_dict(self) -> dict:
35313532                "dielectric_ionic_tensor" : self .dielectric_ionic_tensor ,
35323533            }
35333534        if  self .fd  and  self .varcell :
3534-             dct  |=  {
3535-                 "elastic_tensor" : self .data ["elastic_tensor" ]
3536-             }
3535+             dct  |=  {"elastic_tensor" : self .data ["elastic_tensor" ]}
35373536
35383537        if  self .dfpt :
35393538            dct ["internal_strain_tensor" ] =  self .internal_strain_tensor 
0 commit comments