86 lines
1.6 KiB
Python
86 lines
1.6 KiB
Python
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
|
|
# For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
|
|
|
|
"""Exceptions coverage.py can raise."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
|
|
class CoverageException(Exception):
|
|
"""The base class of all exceptions raised by Coverage.py."""
|
|
|
|
def __init__(
|
|
self,
|
|
*args: Any,
|
|
slug: str | None = None,
|
|
) -> None:
|
|
"""Create an exception.
|
|
|
|
Args:
|
|
slug: A short string identifying the exception, will be used for
|
|
linking to documentation.
|
|
"""
|
|
|
|
super().__init__(*args)
|
|
self.slug = slug
|
|
|
|
|
|
class ConfigError(CoverageException):
|
|
"""A problem with a config file, or a value in one."""
|
|
|
|
pass
|
|
|
|
|
|
class DataError(CoverageException):
|
|
"""An error in using a data file."""
|
|
|
|
pass
|
|
|
|
|
|
class NoDataError(CoverageException):
|
|
"""We didn't have data to work with."""
|
|
|
|
pass
|
|
|
|
|
|
class NoSource(CoverageException):
|
|
"""We couldn't find the source for a module."""
|
|
|
|
pass
|
|
|
|
|
|
class NoCode(NoSource):
|
|
"""We couldn't find any code at all."""
|
|
|
|
pass
|
|
|
|
|
|
class NotPython(CoverageException):
|
|
"""A source file turned out not to be parsable Python."""
|
|
|
|
pass
|
|
|
|
|
|
class PluginError(CoverageException):
|
|
"""A plugin misbehaved."""
|
|
|
|
pass
|
|
|
|
|
|
class _ExceptionDuringRun(CoverageException):
|
|
"""An exception happened while running customer code.
|
|
|
|
Construct it with three arguments, the values from `sys.exc_info`.
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class CoverageWarning(Warning):
|
|
"""A warning from Coverage.py."""
|
|
|
|
pass
|