Source code for networkx.exception

# -*- coding: utf-8 -*-
"""
**********
Exceptions
**********

Base exceptions and errors for NetworkX.

"""
__author__ = """Aric Hagberg (hagberg@lanl.gov)\nPieter Swart (swart@lanl.gov)\nDan Schult(dschult@colgate.edu)\nLoïc Séguin-C. <loicseguin@gmail.com>"""
#    Copyright (C) 2004-2016 by
#    Aric Hagberg <hagberg@lanl.gov>
#    Dan Schult <dschult@colgate.edu>
#    Pieter Swart <swart@lanl.gov>
#    All rights reserved.
#    BSD license.
#

# Exception handling

# the root of all Exceptions
[docs]class NetworkXException(Exception): """Base class for exceptions in NetworkX."""
[docs]class NetworkXError(NetworkXException): """Exception for a serious error in NetworkX"""
[docs]class NetworkXPointlessConcept(NetworkXException): """Harary, F. and Read, R. "Is the Null Graph a Pointless Concept?" In Graphs and Combinatorics Conference, George Washington University. New York: Springer-Verlag, 1973. """
[docs]class NetworkXAlgorithmError(NetworkXException): """Exception for unexpected termination of algorithms."""
[docs]class NetworkXUnfeasible(NetworkXAlgorithmError): """Exception raised by algorithms trying to solve a problem instance that has no feasible solution."""
[docs]class NetworkXNoPath(NetworkXUnfeasible): """Exception for algorithms that should return a path when running on graphs where such a path does not exist."""
class NetworkXNoCycle(NetworkXUnfeasible): """Exception for algorithms that should return a cycle when running on graphs where such a cycle does not exist."""
[docs]class NetworkXUnbounded(NetworkXAlgorithmError): """Exception raised by algorithms trying to solve a maximization or a minimization problem instance that is unbounded."""
class NetworkXNotImplemented(NetworkXException): """Exception raised by algorithms not implemented for a type of graph."""
[docs]class NodeNotFound(NetworkXException): """Exception raised if requested node is not present in the graph"""
class ExceededMaxIterations(NetworkXException): """Raised if a loop iterates too many times without breaking. This may occur, for example, in an algorithm that computes progressively better approximations to a value but exceeds an iteration bound specified by the user. """ class PowerIterationFailedConvergence(ExceededMaxIterations): """Raised when the power iteration method fails to converge within a specified iteration limit. `num_iterations` is the number of iterations that have been completed when this exception was raised. """ def __init__(self, num_iterations, *args, **kw): msg = 'power iteration failed to converge within {} iterations' msg = msg.format(num_iterations) superinit = super(PowerIterationFailedConvergence, self).__init__ superinit(self, msg, *args, **kw)