Source code for mordred.error

import numpy as np
import six
from abc import ABCMeta, abstractproperty


[docs]class MissingValueBase(six.with_metaclass(ABCMeta, object)): '''Base class of missing values. Args: error (Exception): error object stack (callstack) ''' __slots__ = 'error', 'stack' def __reduce_ex__(self, version): return self.__class__, (self.error, self.stack) def __init__(self, error, stack): self.error = error self.stack = stack def __float__(self): return np.nan def __add__(self, other): return np.nan def __sub__(self, other): return np.nan def __str__(self): return '{} ({})'.format(self.error, '/'.join(str(d) for d in self.stack)) @abstractproperty def header(self): '''header of warning message Returns: str ''' raise NotImplementedError('require header')
[docs]class Missing(MissingValueBase): '''known errored value''' __slots__ = () header = 'Missing'
[docs]class Error(MissingValueBase): '''unknown errored value''' __slots__ = () header = 'ERROR'
[docs]class MordredException(Exception): __slots__ = ()
[docs]class MultipleFragments(MordredException): '''multiple fragments detected on require_connected Descriptor.''' __slots__ = () def __str__(self): return 'multiple fragments'
[docs]class Missing3DCoordinate(MordredException): '''missing 3D coordinate on require_3D Descriptor.''' __slots__ = () def __str__(self): return 'missing 3D coordinate'
[docs]class DuplicatedDescriptorName(MordredException): '''duplicated string replisantation of descriptor''' __slots__ = () def __init__(self, a, b): self.a = a self.b = b def __str__(self): return 'duplicated descriptor name: {!r} and {!r}'.format(self.a, self.b)