Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# pylint: disable=wrong-import-position
# We need to explicitly assign the aliases instead of using
# ``from ... import ... as ...`` statements since mypy complains
# that the module icontract lacks these imports.
# See also:
# https://stackoverflow.com/questions/44344327/cant-make-mypy-work-with-init-py-aliases
import icontract._decorators
require = icontract._decorators.require
snapshot = icontract._decorators.snapshot
ensure = icontract._decorators.ensure
invariant = icontract._decorators.invariant
import icontract._globals
aRepr = icontract._globals.aRepr
SLOW = icontract._globals.SLOW
import icontract._metaclass
DBCMeta = icontract._metaclass.DBCMeta
DBC = icontract._metaclass.DBC
import icontract._types
_Contract = icontract._types.Contract
_Snapshot = icontract._types.Snapshot
import icontract.errors
ViolationError = icontract.errors.ViolationError
def __init__(self,
condition: Callable[..., bool],
description: Optional[str] = None,
a_repr: reprlib.Repr = icontract._globals.aRepr,
error: Optional[Union[Callable[..., Exception], type]] = None,
location: Optional[str] = None) -> None:
"""
Initialize.
:param condition: condition predicate
:param description: textual description of the contract
:param a_repr: representation instance that defines how the values are represented
:param error:
if given as a callable, ``error`` is expected to accept a subset of function arguments
(*e.g.*, also including ``result`` for perconditions, only ``self`` for invariants *etc.*) and return
an exception. The ``error`` is called on contract violation and the resulting exception is raised.
Otherwise, it is expected to denote an Exception class which is instantiated with the violation message
and raised on contract violation.
:param location: indicate where the contract was defined (*e.g.*, path and line number)
def __init__(self,
condition: Callable[..., Any],
description: Optional[str] = None,
a_repr: reprlib.Repr = icontract._globals.aRepr,
enabled: bool = __debug__,
error: Optional[Union[Callable[..., Exception], type]] = None) -> None:
"""
Initialize.
:param condition: postcondition predicate
:param description: textual description of the postcondition
:param a_repr: representation instance that defines how the values are represented
:param enabled:
The decorator is applied only if this argument is set.
Otherwise, the condition check is disabled and there is no run-time overhead.
The default is to always check the condition unless the interpreter runs in optimized mode (``-O`` or
``-OO``).
:param error: