Source code for mordred.error

"""Error objects."""

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)