Source code for extools.view.errors

from extools.errors import ExToolsError

try:
    from accpac import rotoid
except ImportError:
    pass

[docs]class ExViewError(ExToolsError): """Generic error raised by an ExView. :param rotoid: RotoID of the ExView that raised. :type rotoid: str :param action: ExView action that raised. :type action: string :param action_return: return code from the View call. :type action_return: int :param trigger_exc: the exception that triggered this one. :type trigger_exc: Exception """ def __init__(self, rotoid, action="", action_return=None, fargs=[], fkwargs={}, trigger_exc=None): super().__init__(trigger_exc=trigger_exc) self.rotoid = rotoid self.action = action self.action_return= action_return self.fargs = fargs self.fkwargs = fkwargs def __str__(self): if self.action: s = "failed to {} view {}".format(self.action, self.rotoid) else: s = "error raised in view {}".format(self.rotoid) if self.action_return is not None: s += ", return code {}".format(self.action_return) if self.fargs: s += ". Call arguments: {}".format(self.fargs) if self.fkwargs: s += ". Call keywork arguments {}".format(self.fkwargs) if self.trigger_exc: s+= ". Triggered by {}".format(self.trigger_exc) return s
[docs]class ExViewOpenError(ExViewError): """Error raised while opening ExView. :param rotoid: RotoID of the ExView that raised. :type rotoid: str :param action_return: return code from the View call. :type action_return: int :param trigger_exc: the exception that triggered this one. :type trigger_exc: Exception """ def __init__(self, rotoid, action_return=None, trigger_exc=None): super().__init__(rotoid, action="open", action_return=action_return, trigger_exc=trigger_exc)
[docs]class ExViewRecordDoesNotExist(ExViewError): """Error raised while opening ExView. :param rotoid: RotoID of the ExView that raised. :type rotoid: str :param action_return: return code from the View call. :type action_return: int :param trigger_exc: the exception that triggered this one. :type trigger_exc: Exception """ def __init__(self, rotoid, action, action_return=None, trigger_exc=None): super().__init__(rotoid, action=action, action_return=action_return, trigger_exc=trigger_exc)
[docs]class ExViewComposeError(ExViewError): """Error raised while composing ExViews. :param compose_list: list of rotoids the ExView is being composed with. :type compose_list: list(str) :param action_return: return code from the View call. :type action_return: int :param trigger_exc: the exception that triggered this one. :type trigger_exc: Exception """ def __init__(self, rotoid, compose_list=[], action_return=None, trigger_exc=None): super().__init__(rotoid, action="compose", action_return=action_return, trigger_exc=trigger_exc) self.compose_list = compose_list def __str__(self): s = str(super()) s += ". Composing with {}".format(self.compose_list) return s
[docs]class ExViewInvalidOrder(ExViewError): """Error raised while setting the index order. :param order: order requested. :type order: int :param action_return: return code from the View call. :type action_return: int :param trigger_exc: the exception that triggered this one. :type trigger_exc: Exception """ def __init__(self, rotoid, order=None, action_return=None, trigger_exc=None): super().__init__(rotoid, action="order", action_return=action_return, trigger_exc=trigger_exc) self.order = order
[docs]class ExViewFieldDoesNotExist(ExViewError): """Error raised when a field does not exist in the view. :param field: field requested. :type field: str :param trigger_exc: the exception that triggered this one. :type trigger_exc: Exception """ def __init__(self, rotoid, field=None, order=None, action=None, action_return=None, trigger_exc=None): super().__init__(rotoid, action=action, action_return=action_return, trigger_exc=trigger_exc) self.field = field def __str__(self): s = str(super()) s += ", field {} not found".format(self.field) return s
[docs]class ExViewIndexError(ExViewError): """Error raised when an invalid index is provided. :param order: index order requested. :type order: int :param trigger_exc: the exception that triggered this one. :type trigger_exc: Exception """ def __init__(self, rotoid, kwargs=None, action="order", action_return=None, trigger_exc=None): super().__init__(rotoid, action=None, action_return=None, trigger_exc=trigger_exc) self.kwargs = kwargs def __str__(self): s = str(super()) s += ", index with fields {} is not valid".format(self.kwargs) return s
[docs]class ExViewInterpolationError(ExViewError): """Error raised when string interpolation using ExViews fails. :param rotoid: rotoid of the view failing interpolation. :type rotoid: str :param format_string: string being interpolated :type format_string: str :param root_view: the root view from which all fields can be found. :type root_view: str :param seek_to: seek to parameters for the first index of the root view. :type seek_to: dict """ def __init__(self, rotoid, format_string, field, root_view, seek_to, trigger_exc=None, **kwargs): super().__init__(rotoid, action=None, action_return=None, trigger_exc=trigger_exc) self.rotoid = rotoid, self.format_string = format_string self.field = field self.root_view = root_view self.seek_to = seek_to self.kwargs = kwargs def __str__(self): s = str(super()) s += ", failed to interpolate {} into {} from root view {} {}".format( self.field, self.format_string, self.root_view, self.seek_to) return s