Inputs

The old directed inputs package is now first-class under extended_data.inputs and the package root.

from extended_data import InputProvider

provider = InputProvider(
    inputs={"APP_DEBUG": "true", "APP_REPLICAS": "3"},
    from_environment=False,
)

print(provider.get_input("APP_DEBUG", as_type=bool))
print(provider.snapshot_inputs())

Decorators

from extended_data import directed_inputs, input_config

@directed_inputs(inputs={"SERVICE_NAME": "api"}, from_environment=False)
class ServiceConfig:
    @input_config(service="SERVICE_NAME")
    def build(self, service: str) -> dict[str, str]:
        return {"service": service}

print(ServiceConfig().build())

Inputs are promoted into Extended Data containers at the boundary, so decoded JSON/YAML/Base64 payloads can continue into Tier 2 and Tier 3 workflows without a separate adapter layer.