Source code for mordred._base
import os
import warnings
from importlib import import_module
from ..error import MissingValueBase
from .descriptor import Descriptor
from .calculator import Calculator, get_descriptors_from_module
from .parallel import parallel
__all__ = (
'all_descriptors',
'Descriptor',
'Calculator',
'get_descriptors_from_module',
)
[docs]def all_descriptors():
r"""**[deprecated]** use mordred.descriptors module instead.
yield all descriptor modules.
:returns: all modules
:rtype: :py:class:`Iterator` (:py:class:`Descriptor`)
"""
warnings.warn('all_descriptors() is deprecated, use mordred.descriptors module instead', DeprecationWarning, stacklevel=2)
base_dir = os.path.dirname(os.path.dirname(__file__))
for name in os.listdir(base_dir):
name, ext = os.path.splitext(name)
if name[:1] == '_' or ext != '.py' or name == 'descriptors':
continue
yield import_module('..' + name, __package__)
def _Descriptor__call__(self, mol, id=-1):
r"""calculate single descriptor value.
:type id: int
:param id: conformer id
:returns: descriptor result
:rtype: scalar
"""
v = Calculator(self)(mol, id)[0]
if isinstance(v, MissingValueBase):
raise v.error
return v
Descriptor.__call__ = _Descriptor__call__
Calculator._parallel = parallel