from __future__ import unicode_literals
from django.db.utils import DatabaseError
from django.utils.encoding import python_2_unicode_compatible
class AmbiguityError(Exception):
"""
Raised when more than one migration matches a name prefix.
"""
pass
class BadMigrationError(Exception):
"""
Raised when there's a bad migration (unreadable/bad format/etc.).
"""
pass
class CircularDependencyError(Exception):
"""
Raised when there's an impossible-to-resolve circular dependency.
"""
pass
class InvalidBasesError(ValueError):
"""
Raised when a model's base classes can't be resolved.
"""
pass
class IrreversibleError(RuntimeError):
"""
Raised when a irreversible migration is about to be reversed.
"""
pass
@python_2_unicode_compatible
class NodeNotFoundError(LookupError):
"""
Raised when an attempt on a node is made that is not available in the graph.
"""
def __init__(self, message, node):
self.message = message
self.node = node
def __str__(self):
return self.message
def __repr__(self):
return "NodeNotFoundError(%r)" % self.node
class MigrationSchemaMissing(DatabaseError):
pass
class InvalidMigrationPlan(ValueError):
pass