| """ Common Exceptions for `holonomic` module. """ | |
| class BaseHolonomicError(Exception): | |
| def new(self, *args): | |
| raise NotImplementedError("abstract base class") | |
| class NotPowerSeriesError(BaseHolonomicError): | |
| def __init__(self, holonomic, x0): | |
| self.holonomic = holonomic | |
| self.x0 = x0 | |
| def __str__(self): | |
| s = 'A Power Series does not exists for ' | |
| s += str(self.holonomic) | |
| s += ' about %s.' %self.x0 | |
| return s | |
| class NotHolonomicError(BaseHolonomicError): | |
| def __init__(self, m): | |
| self.m = m | |
| def __str__(self): | |
| return self.m | |
| class SingularityError(BaseHolonomicError): | |
| def __init__(self, holonomic, x0): | |
| self.holonomic = holonomic | |
| self.x0 = x0 | |
| def __str__(self): | |
| s = str(self.holonomic) | |
| s += ' has a singularity at %s.' %self.x0 | |
| return s | |
| class NotHyperSeriesError(BaseHolonomicError): | |
| def __init__(self, holonomic, x0): | |
| self.holonomic = holonomic | |
| self.x0 = x0 | |
| def __str__(self): | |
| s = 'Power series expansion of ' | |
| s += str(self.holonomic) | |
| s += ' about %s is not hypergeometric' %self.x0 | |
| return s | |