Source code for openff.interchange.exceptions

[docs]class SMIRNOFFParameterAttributeNotImplementedError(Exception): """ Exception for when a parameter attribute is supported by the SMIRNOFF specification but not yet implemented, i.e. k_bondorder for bond order interpolation. """
[docs]class SMIRNOFFHandlersNotImplementedError(Exception): """ Exception for when some parameter handlers in the SMIRNOFF specification are not implemented here """ def __init__(self, *args): if args: if isinstance(args[0], str): self.names = [args[0]] elif isinstance(args[0], list): self.names = args[0] def __str__(self): msg = "SMIRNOFF parameters not implemented here: " for name in self.names: msg += f"\t{name}" return msg
[docs]class ToolkitTopologyConformersNotFoundError(Exception): """ Exception for when reference molecules in a toolkit topology is required to contain conformers, but they are not found """ def __init__(self, *args): if args: self.mol = str(args[0]) def __str__(self): msg = "A reference molecule in the topology does not contain any conformers" if self.mol: msg += f"The molecule lacking a conformer is {self.mol}"
[docs]class InvalidParameterHandlerError(ValueError): """ Generic exception for mismatch between expected and found ParameterHandler types """
[docs]class InvalidBoxError(ValueError): """ Generic exception for errors reading box data """
[docs]class InvalidTopologyError(ValueError): """ Generic exception for errors reading chemical topology data """
[docs]class NonbondedEnergyError(AssertionError): """ Exception for when non-bonded energies computed from different objects differ """
[docs]class InvalidExpressionError(ValueError): """ Exception for when an expression cannot safely be interpreted """
[docs]class UnsupportedCutoffMethodError(BaseException): """ Exception for a cutoff method that is invalid or not supported by an engine """
[docs]class UnimplementedCutoffMethodError(BaseException): """ Exception for a cutoff method that should be supported but it not yet implemented """
[docs]class UnsupportedParameterError(ValueError): """ Exception for parameters having unsupported values, i.e. non-1.0 idivf """
[docs]class UnsupportedBoxError(ValueError): """ Exception for processing an unsupported box, probably non-orthogonal """
[docs]class UnsupportedExportError(BaseException): """ Exception for attempting to write to an unsupported file format """ def __init__(self, *args): if args: self.file_ext = args[0] def __str__(self): if self.file_ext: msg = f"Writing file format {self.file_ext} not supported." else: msg = "Writing unknown file format" return msg
[docs]class MissingBoxError(BaseException): """ Exception for when box vectors are needed but missing """
[docs]class MissingPositionsError(BaseException): """ Exception for when positions are needed but missing """
[docs]class MissingParametersError(BaseException): """ Exception for when parameters are needed but missing """
[docs]class MissingUnitError(ValueError): """ Exception for data missing a unit tag """
[docs]class UnitValidationError(ValueError): """ Exception for bad behavior when validating unit-tagged data """
[docs]class NonbondedCompatibilityError(BaseException): """ Exception for unsupported combination of nonbonded methods """
[docs]class MissingNonbondedCompatibilityError(BaseException): """ Exception for uncovered combination of nonbonded methods """
[docs]class InternalInconsistencyError(BaseException): """ Fallback exception for bad behavior. These should not be reached but are raised to safeguard against problematic edge cases silently passing. """
[docs]class SanderError(BaseException): """ Exception for when a sander subprocess fails. """
[docs]class GMXRunError(BaseException): """ Exception for when a GROMACS subprocess fails. """
[docs]class GMXGromppError(GMXRunError): """ Exception for when `gmx grompp` fails. """
[docs]class GMXMdrunError(GMXRunError): """ Exception for when `gmx mdrun` fails. """
[docs]class LAMMPSRunError(BaseException): """ Exception for when a LAMMPS subprocess fails. """