1010from warnings import warn
1111
1212import numpy as np
13- from mendeleev import element
13+ from monty . dev import requires
1414from monty .os .path import zpath
1515
1616POSCAR_WARNING = (
@@ -130,6 +130,9 @@ def get_structure_path(lobster_path: Path) -> Path:
130130 raise Exception
131131
132132
133+ @requires (
134+ "mendeleev" , "get_reduced_mass requires mendeleev. Reinstall package with `pip install lobsterpy[featurizer]`."
135+ )
133136def get_reduced_mass (atom_pair : list [str ]) -> float :
134137 """
135138 Compute reduced mass between a pair of atoms.
@@ -138,11 +141,17 @@ def get_reduced_mass(atom_pair: list[str]) -> float:
138141
139142 :return: reduced mass
140143 """
144+ from mendeleev import element
145+
141146 atom1 = element (atom_pair [0 ])
142147 atom2 = element (atom_pair [1 ])
143148 return (atom1 .atomic_weight * atom2 .atomic_weight ) / (atom1 .atomic_weight + atom2 .atomic_weight )
144149
145150
151+ @requires (
152+ "mendeleev" ,
153+ "get_electronegativities requires mendeleev. Reinstall package with `pip install lobsterpy[featurizer]`." ,
154+ )
146155def get_electronegativities (atom_pair : list [str ]) -> list [float ]:
147156 """
148157 Get Allen electronegativities for a pair of atoms.
@@ -151,6 +160,8 @@ def get_electronegativities(atom_pair: list[str]) -> list[float]:
151160
152161 :return: list of Allen electronegativities
153162 """
163+ from mendeleev import element
164+
154165 atom1 = element (atom_pair [0 ])
155166 atom2 = element (atom_pair [1 ])
156167 return [atom1 .electronegativity_allen (), atom2 .electronegativity_allen ()]
0 commit comments