# Path: vasppy/units.py

# 
# Path: vasppy/band.py
# class Band():
# 
#     def __init__( self, index, energy, occupancy, negative_occupancies='warn' ):
#         self.index = index
#         self.energy = energy
#         self.occupancy = handle_occupancy( occupancy, negative_occupancies=negative_occupancies )
# 
#     def __eq__( self, other ):
#         return ( ( self.index == other.index ) &
#                  ( self.energy == other.energy ) &
#                  ( self.occupancy == other.occupancy ) )


import numpy as np  # type: ignore
import re
import math
import warnings
import fortranformat as ff  # type: ignore
from .units import angstrom_to_bohr, ev_to_hartree
from .band import Band
from copy import deepcopy
from functools import reduce

class KPoint():

    def __init__( self, index, frac_coords, weight ):
        self.index = index
        self.frac_coords = frac_coords
        self.weight = weight


# Path: vasppy/units.py

# 
# Path: vasppy/band.py
# class Band():
# 
#     def __init__( self, index, energy, occupancy, negative_occupancies='warn' ):
#         self.index = index
#         self.energy = energy
#         self.occupancy = handle_occupancy( occupancy, negative_occupancies=negative_occupancies )
# 
#     def __eq__( self, other ):
#         return ( ( self.index == other.index ) &
#                  ( self.energy == other.energy ) &
#                  ( self.occupancy == other.occupancy ) )


# Path: vasppy/procar.py
import numpy as np  # type: ignore
import re
import math
import warnings
import fortranformat as ff  # type: ignore
from .units import angstrom_to_bohr, ev_to_hartree
from .band import Band
from copy import deepcopy
from functools import reduce


class KPoint():

    def __init__( self, index, frac_coords, weight ):
        self.index = index
        self.frac_coords = frac_coords
        self.weight = weight


    def cart_coords( self, reciprocal_lattice ):