Runtime Argument Module

Module: piethorn.typing.argument

Overview

This module provides runtime argument definitions and a mutable container for validated argument values.

ArgumentKind

class piethorn.typing.argument.ArgumentKind

Enum describing binding semantics:

  • POSITIONAL_OR_KEYWORD

  • POSITIONAL_ONLY

  • KEYWORD_ONLY

  • VAR_POSITIONAL

  • VAR_KEYWORD

from_param_kind(param_kind)

Convert an inspect.Parameter.kind into ArgumentKind.

Argument

class piethorn.typing.argument.Argument(key, type_var, *, allowed_values=empty, kind=ArgumentKind.POSITIONAL_OR_KEYWORD, default=empty, value=empty)

Runtime description of one argument and its current or default value.

Example

from piethorn.typing.argument import Argument, ArgumentKind

positional = Argument("count", int, default=1)
variadic_kwargs = Argument("options", int, kind=ArgumentKind.VAR_KEYWORD)

Methods

from_param(param)

Build a runtime argument from an inspect.Parameter.

set_default(default)

Validate and set the default.

set(value, *, key=None)

Set the current value. Variadic keyword arguments require key.

add(value)

Add a value to a variadic argument.

remove(key=None)

Remove the current value or a variadic child value.

validate(value, throw=True)

Type-check and allowed-value-check a value.

copy(**kwargs)

Clone the argument definition.

Arguments

class piethorn.typing.argument.Arguments(*args, parent=None, strict_keys=True, silent_strict=False, typing_with_value=False)

Mutable mapping of Argument definitions and values.

Example

from piethorn.typing.argument import Argument, Arguments

arguments = Arguments(Argument("count", int, default=1), strict_keys=False)
arguments.set("name", "erik")
arguments.ensure_defaults(extra=2)

Methods

validate(key, value, throw=True)

Validate a key/value pair against stored typing information.

at(index, in_keywords=False)

Return an Argument by positional or keyword order.

get_arg(key)

Return the underlying Argument definition.

set_arg(arg)

Add an argument definition.

set(key, value)

Set a value, optionally creating a new argument when strict keys are off.

ensure_defaults(**kwargs)

Guarantee defaults for selected keys.

remove(key)

Remove and return the stored Argument.

iter_keywords() / iter_positionals()

Iterate stored keyword or positional keys.

Autodoc