Add parent class MasqueError and use it for traits and all other exceptions

This commit is contained in:
Jan Petykiewicz 2020-11-09 21:59:28 -08:00
parent 3653a33534
commit 4308bdeb56
8 changed files with 23 additions and 21 deletions

View File

@ -1,13 +1,15 @@
class PatternError(Exception):
class MasqueError(Exception):
"""
Simple Exception for Pattern objects and their contents
Parent exception for all Masque-related Exceptions
"""
def __init__(self, value):
self.value = value
pass
def __str__(self):
return repr(self.value)
class PatternError(MasqueError):
"""
Exception for Pattern objects and their contents
"""
pass
class PatternLockedError(PatternError):
"""
@ -17,7 +19,7 @@ class PatternLockedError(PatternError):
PatternError.__init__(self, 'Tried to modify a locked Pattern, subpattern, or shape')
class LibraryError(Exception):
class LibraryError(MasqueError):
"""
Exception raised by Library classes
"""

View File

@ -3,7 +3,7 @@ from typing import TypeVar
from abc import ABCMeta, abstractmethod
from ..utils import annotations_t
from ..error import PatternError
from ..error import MasqueError
T = TypeVar('T', bound='Annotatable')
@ -51,5 +51,5 @@ class AnnotatableImpl(Annotatable, metaclass=ABCMeta):
@annotations.setter
def annotations(self, annotations: annotations_t):
if not isinstance(annotations, dict):
raise PatternError(f'annotations expected dict, got {type(annotations)}')
raise MasqueError(f'annotations expected dict, got {type(annotations)}')
self._annotations = annotations

View File

@ -1,7 +1,7 @@
from typing import TypeVar
from abc import ABCMeta, abstractmethod
from ..error import PatternError
from ..error import MasqueError
T = TypeVar('T', bound='Doseable')
@ -65,7 +65,7 @@ class DoseableImpl(Doseable, metaclass=ABCMeta):
@dose.setter
def dose(self, val: float):
if not val >= 0:
raise PatternError('Dose must be non-negative')
raise MasqueError('Dose must be non-negative')
self._dose = val
'''

View File

@ -50,7 +50,7 @@ class Mirrorable(metaclass=ABCMeta):
# @mirrored.setter
# def mirrored(self, val: Sequence[bool]):
# if is_scalar(val):
# raise PatternError('Mirrored must be a 2-element list of booleans')
# raise MasqueError('Mirrored must be a 2-element list of booleans')
# self._mirrored = numpy.array(val, dtype=bool, copy=True)
#
# '''

View File

@ -4,7 +4,7 @@ from typing import TypeVar
from abc import ABCMeta, abstractmethod
import numpy # type: ignore
from ..error import PatternError
from ..error import MasqueError
from ..utils import vector2
@ -97,7 +97,7 @@ class PositionableImpl(Positionable, metaclass=ABCMeta):
val = numpy.array(val, dtype=float)
if val.size != 2:
raise PatternError('Offset must be convertible to size-2 ndarray')
raise MasqueError('Offset must be convertible to size-2 ndarray')
self._offset = val.flatten()
'''

View File

@ -1,7 +1,7 @@
from typing import TypeVar, Optional, TYPE_CHECKING
from abc import ABCMeta, abstractmethod
from ..error import PatternError
from ..error import MasqueError
if TYPE_CHECKING:
@ -71,7 +71,7 @@ class RepeatableImpl(Repeatable, metaclass=ABCMeta):
def repetition(self, repetition: Optional['Repetition']):
from ..repetition import Repetition
if repetition is not None and not isinstance(repetition, Repetition):
raise PatternError(f'{repetition} is not a valid Repetition object!')
raise MasqueError(f'{repetition} is not a valid Repetition object!')
self._repetition = repetition
'''

View File

@ -5,7 +5,7 @@ import numpy # type: ignore
from numpy import pi
#from .positionable import Positionable
from ..error import PatternError
from ..error import MasqueError
from ..utils import is_scalar, rotation_matrix_2d, vector2
T = TypeVar('T', bound='Rotatable')
@ -57,7 +57,7 @@ class RotatableImpl(Rotatable, metaclass=ABCMeta):
@rotation.setter
def rotation(self, val: float):
if not is_scalar(val):
raise PatternError('Rotation must be a scalar')
raise MasqueError('Rotation must be a scalar')
self._rotation = val % (2 * pi)
'''

View File

@ -1,7 +1,7 @@
from typing import TypeVar
from abc import ABCMeta, abstractmethod
from ..error import PatternError
from ..error import MasqueError
from ..utils import is_scalar
@ -51,9 +51,9 @@ class ScalableImpl(Scalable, metaclass=ABCMeta):
@scale.setter
def scale(self, val: float):
if not is_scalar(val):
raise PatternError('Scale must be a scalar')
raise MasqueError('Scale must be a scalar')
if not val > 0:
raise PatternError('Scale must be positive')
raise MasqueError('Scale must be positive')
self._scale = val
'''