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

admits

caller

caller_pattern

description

key

requires_any_of

mutually_exclusive

co_required