directed_inputs_class.decorators
Decorator-based input handling for DirectedInputsClass consumers.
This module provides two decorators:
@directed_inputs- class decorator that wires DirectedInputsClass style input loading (environment variables, stdin, explicit mappings) into plain Python classes without requiring inheritance.@input_config- method decorator that allows fine-grained control over how individual parameters are resolved from the input context (renaming, decoding, required flags, etc.).
The decorated classes automatically receive lazily-evaluated input contexts and runtime metadata that can be consumed by other packages (e.g. python-terraform-bridge) to instantiate the classes safely.
Module Contents
Section titled “Module Contents”Classes
Section titled “Classes”InputConfig | Configuration for resolving a single method parameter from inputs. |
|---|---|
DirectedInputsMetadata | Metadata exposed on decorated classes for runtime integrations. |
InputContext | Lightweight wrapper around DirectedInputsClass instantiation. |
Functions
Section titled “Functions”input_config | Configure how a method parameter is populated from inputs. |
|---|---|
directed_inputs | Class decorator that injects DirectedInputsClass behavior. |
_inject_proxies | Inject helper properties/methods for interacting with the context. |
_wrap_instance_methods | Wrap instance methods so missing parameters are auto-populated. |
_should_skip_method | Determine whether an attribute should be wrapped. |
_MISSING | |
|---|---|
_CONFIG_KWARG | |
_RUNTIME_LOGGING_KWARG | |
_RUNTIME_SETTINGS_KWARG | |
_ERR_CONTEXT_NOT_INITIALIZED | |
_ERR_CONTEXT_MISSING |
directed_inputs_class.decorators._MISSING
Section titled “directed_inputs_class.decorators._MISSING”‘object(…)’
directed_inputs_class.decorators._CONFIG_KWARG
Section titled “directed_inputs_class.decorators._CONFIG_KWARG”‘_directed_inputs_config’
directed_inputs_class.decorators._RUNTIME_LOGGING_KWARG
Section titled “directed_inputs_class.decorators._RUNTIME_LOGGING_KWARG”‘_directed_inputs_runtime_logging’
directed_inputs_class.decorators._RUNTIME_SETTINGS_KWARG
Section titled “directed_inputs_class.decorators._RUNTIME_SETTINGS_KWARG”‘_directed_inputs_runtime_settings’
directed_inputs_class.decorators._ERR_CONTEXT_NOT_INITIALIZED
Section titled “directed_inputs_class.decorators._ERR_CONTEXT_NOT_INITIALIZED”‘directed_inputs decorator not initialized on this instance’
directed_inputs_class.decorators._ERR_CONTEXT_MISSING
Section titled “directed_inputs_class.decorators._ERR_CONTEXT_MISSING”‘directed_inputs context missing on instance’
class directed_inputs_class.decorators.InputConfig
Section titled “class directed_inputs_class.decorators.InputConfig”Configuration for resolving a single method parameter from inputs.
parameter_name : str
Section titled “parameter_name : str”None
source_name : str | None
Section titled “source_name : str | None”None
required : bool
Section titled “required : bool”False
default : Any
Section titled “default : Any”None
decode_from_json : bool
Section titled “decode_from_json : bool”False
decode_from_yaml : bool
Section titled “decode_from_yaml : bool”False
decode_from_base64 : bool
Section titled “decode_from_base64 : bool”False
allow_none : bool
Section titled “allow_none : bool”True
is_bool : bool
Section titled “is_bool : bool”False
is_integer : bool
Section titled “is_integer : bool”False
is_float : bool
Section titled “is_float : bool”False
is_path : bool
Section titled “is_path : bool”False
is_datetime : bool
Section titled “is_datetime : bool”False
resolve(provider: directed_inputs_class._main_.DirectedInputsClass) → Any | object
Section titled “resolve(provider: directed_inputs_class._main_.DirectedInputsClass) → Any | object”Resolve a value from the provided DirectedInputsClass instance.
class directed_inputs_class.decorators.DirectedInputsMetadata
Section titled “class directed_inputs_class.decorators.DirectedInputsMetadata”Metadata exposed on decorated classes for runtime integrations.
options : dict[str, Any]
Section titled “options : dict[str, Any]”‘field(…)’
class directed_inputs_class.decorators.InputContext(, inputs: collections.abc.Mapping[str, Any] | None = None, from_environment: bool = True, from_stdin: bool = False, env_prefix: str | None = None, strip_env_prefix: bool = False)
Section titled “class directed_inputs_class.decorators.InputContext(, inputs: collections.abc.Mapping[str, Any] | None = None, from_environment: bool = True, from_stdin: bool = False, env_prefix: str | None = None, strip_env_prefix: bool = False)”Lightweight wrapper around DirectedInputsClass instantiation.
Initialization
Section titled “Initialization”refresh(**overrides: Any) → None
Section titled “refresh(**overrides: Any) → None”Refresh the context with new DirectedInputsClass options.
property options : dict[str, Any]
Section titled “property options : dict[str, Any]”Current configuration (copy) used for instantiation.
resolve(config: directed_inputs_class.decorators.InputConfig) → Any | object
Section titled “resolve(config: directed_inputs_class.decorators.InputConfig) → Any | object”Resolve a parameter value using the provided configuration.
property directed_inputs : directed_inputs_class._main_.DirectedInputsClass
Section titled “property directed_inputs : directed_inputs_class._main_.DirectedInputsClass”Return the lazily-instantiated DirectedInputsClass instance.
_ensure_instance() → directed_inputs_class._main_.DirectedInputsClass
Section titled “_ensure_instance() → directed_inputs_class._main_.DirectedInputsClass”directed_inputs_class.decorators.input_config(parameter_name: str, **config_kwargs: Any) → collections.abc.Callable[[collections.abc.Callable[…, Any]], collections.abc.Callable[…, Any]]
Section titled “directed_inputs_class.decorators.input_config(parameter_name: str, **config_kwargs: Any) → collections.abc.Callable[[collections.abc.Callable[…, Any]], collections.abc.Callable[…, Any]]”Configure how a method parameter is populated from inputs.
directed_inputs_class.decorators.directed_inputs(, inputs: collections.abc.Mapping[str, Any] | None = None, from_environment: bool = True, from_stdin: bool = False, env_prefix: str | None = None, strip_env_prefix: bool = False) → collections.abc.Callable[[type[Any]], type[Any]]
Section titled “directed_inputs_class.decorators.directed_inputs(, inputs: collections.abc.Mapping[str, Any] | None = None, from_environment: bool = True, from_stdin: bool = False, env_prefix: str | None = None, strip_env_prefix: bool = False) → collections.abc.Callable[[type[Any]], type[Any]]”Class decorator that injects DirectedInputsClass behavior.
directed_inputs_class.decorators._inject_proxies(cls: type[Any]) → None
Section titled “directed_inputs_class.decorators._inject_proxies(cls: type[Any]) → None”Inject helper properties/methods for interacting with the context.
directed_inputs_class.decorators._wrap_instance_methods(cls: type[Any]) → None
Section titled “directed_inputs_class.decorators._wrap_instance_methods(cls: type[Any]) → None”Wrap instance methods so missing parameters are auto-populated.
directed_inputs_class.decorators._should_skip_method(name: str, attribute: Any) → bool
Section titled “directed_inputs_class.decorators._should_skip_method(name: str, attribute: Any) → bool”Determine whether an attribute should be wrapped.