Source code for networkx.exception

"""
**********
网络异常
**********

NetworkX 的基础异常和错误。
"""

__all__ = [
    "HasACycle",
    "NodeNotFound",
    "PowerIterationFailedConvergence",
    "ExceededMaxIterations",
    "AmbiguousSolution",
    "NetworkXAlgorithmError",
    "NetworkXException",
    "NetworkXError",
    "NetworkXNoCycle",
    "NetworkXNoPath",
    "NetworkXNotImplemented",
    "NetworkXPointlessConcept",
    "NetworkXUnbounded",
    "NetworkXUnfeasible",
]


[docs] class NetworkXException(Exception): """网络X中异常的基类。"""
[docs] class NetworkXError(NetworkXException): """网络X中严重错误的异常"""
[docs] class NetworkXPointlessConcept(NetworkXException): """当一个空图作为输入提供给不能使用它的算法时引发。 空图有时被认为是一个无意义的概念 [1]_,因此这个异常的名称。 Notes ----- 空图和空图常常被互换使用,但它们在 NetworkX 中有明确的定义。一个 ``empty_graph`` 是一个有 ``n`` 个节点和 0 条边的图,而一个 ``null_graph`` 是一个有 0 个节点和 0 条边的图。 References ---------- .. [1] Harary, F. 和 Read, R. "空图是一个无意义的概念吗?" 在图论和组合数学会议上,乔治华盛顿大学。纽约:Springer-Verlag,1973 年。"""
[docs] class NetworkXAlgorithmError(NetworkXException): """算法意外终止的异常。"""
[docs] class NetworkXUnfeasible(NetworkXAlgorithmError): """算法尝试解决一个没有可行解的问题实例时引发的异常。"""
[docs] class NetworkXNoPath(NetworkXUnfeasible): """当在图中运行本应返回路径的算法时,如果该路径不存在,则抛出此异常。"""
[docs] class NetworkXNoCycle(NetworkXUnfeasible): """在运行于不存在此类环的图上的算法中,应返回环的异常情况。"""
[docs] class HasACycle(NetworkXException): """当算法预期图没有环时,如果图存在环,则引发此异常。"""
[docs] class NetworkXUnbounded(NetworkXAlgorithmError): """算法尝试解决一个无界最大化或最小化问题实例时引发的异常。"""
[docs] class NetworkXNotImplemented(NetworkXException): """未为某种图实现算法时引发的异常。"""
[docs] class NodeNotFound(NetworkXException): """如果在图中找不到请求的节点,则引发此异常。"""
[docs] class AmbiguousSolution(NetworkXException): """如果在算法的某个中间步骤存在多个有效解决方案,则会引发此异常。 面对歧义时,拒绝猜测的诱惑。例如,在计算二分匹配时,尝试确定非连通二分图中的二分节点集时可能会出现这种情况。"""
[docs] class ExceededMaxIterations(NetworkXException): """如果在循环中迭代次数过多且未中断,则会引发此异常。 例如,在计算某个值的渐进更好近似值的算法中,如果超过了用户指定的迭代界限,就可能发生这种情况。"""
[docs] class PowerIterationFailedConvergence(ExceededMaxIterations): """在指定的迭代次数内,幂迭代法未能收敛时引发此异常。 `num_iterations` 是在引发此异常时已完成的迭代次数。""" def __init__(self, num_iterations, *args, **kw): msg = f"power iteration failed to converge within {num_iterations} iterations" exception_message = msg superinit = super().__init__ superinit(self, exception_message, *args, **kw)