LSSTApplications  20.0.0
LSSTDataManagementBasePackage
Classes | Functions | Variables
lsst.pex.exceptions.wrappers Namespace Reference

Classes

class  DomainError
 
class  Exception
 
class  ExceptionMeta
 
class  InvalidParameterError
 
class  IoError
 
class  LengthError
 
class  LogicError
 
class  NotFoundError
 
class  OutOfRangeError
 
class  OverflowError
 
class  RangeError
 
class  RuntimeError
 
class  TypeError
 
class  UnderflowError
 

Functions

def register (cls)
 
def translate (cpp)
 
def declare (module, exception_name, base, wrapped_class)
 

Variables

dictionary registry = {}
 

Function Documentation

◆ declare()

def lsst.pex.exceptions.wrappers.declare (   module,
  exception_name,
  base,
  wrapped_class 
)
Declare a new exception.

Definition at line 153 of file wrappers.py.

153 def declare(module, exception_name, base, wrapped_class):
154  """Declare a new exception."""
155  setattr(module, exception_name, register(ExceptionMeta(exception_name, (base, ),
156  dict(WrappedClass=wrapped_class))))

◆ register()

def lsst.pex.exceptions.wrappers.register (   cls)
A Python decorator that adds a Python exception wrapper to the registry that maps C++ Exceptions
to their Python wrapper classes.

Definition at line 36 of file wrappers.py.

36 def register(cls):
37  """A Python decorator that adds a Python exception wrapper to the registry that maps C++ Exceptions
38  to their Python wrapper classes.
39  """
40  registry[cls.WrappedClass] = cls
41  return cls
42 
43 

◆ translate()

def lsst.pex.exceptions.wrappers.translate (   cpp)
Translate a C++ Exception instance to Python and return it.

Definition at line 144 of file wrappers.py.

144 def translate(cpp):
145  """Translate a C++ Exception instance to Python and return it."""
146  PyType = registry.get(type(cpp), None)
147  if PyType is None:
148  warnings.warn("Could not find appropriate Python type for C++ Exception")
149  PyType = Exception
150  return PyType(cpp)
151 
152 

Variable Documentation

◆ registry

dictionary lsst.pex.exceptions.wrappers.registry = {}

Definition at line 33 of file wrappers.py.

lsst::pex::exceptions.wrappers.register
def register(cls)
Definition: wrappers.py:36
type
table::Key< int > type
Definition: Detector.cc:163
lsst::pex::exceptions.wrappers.declare
def declare(module, exception_name, base, wrapped_class)
Definition: wrappers.py:153
lsst::pex::exceptions.wrappers.translate
def translate(cpp)
Definition: wrappers.py:144