argdigest.FunctionContract#
- class argdigest.FunctionContract(caller=None, caller_pattern=None, admits='signature', requires_any_of=None, mutually_exclusive=<factory>, co_required=<factory>, description=None)[source]#
What a function accepts and requires, declared as data.
Exactly one of caller and caller_pattern identifies the function or the family it applies to. A pattern uses fnmatch syntax against the fully qualified caller, so a whole family of adapters can share one contract.
- Parameters:
caller (str | None)
caller_pattern (str | None)
admits (str | Sequence[str])
requires_any_of (str | Sequence[str] | None)
mutually_exclusive (Sequence[Sequence[str]])
co_required (Sequence[Sequence[str]])
description (str | None)
- __init__(caller=None, caller_pattern=None, admits='signature', requires_any_of=None, mutually_exclusive=<factory>, co_required=<factory>, description=None)#
- Parameters:
caller (str | None)
caller_pattern (str | None)
admits (str | Sequence[str])
requires_any_of (str | Sequence[str] | None)
mutually_exclusive (Sequence[Sequence[str]])
co_required (Sequence[Sequence[str]])
description (str | None)
- Return type:
None
Methods
__init__([caller, caller_pattern, admits, ...])admits_anything()admitted_domains()Domain names this contract admits beyond its own signature.
has_rules_beyond_admission()Whether anything has to be checked even when no extra keyword was passed.
Attributes
admitscallercaller_patterndescriptionkeyrequires_any_ofmutually_exclusiveco_required