Skip to content

Parameter System

Sayer translates annotated Python function signatures into Click parameters and typed runtime values.

Mental Model

  • Declaration layer: Python signature + metadata (Option, Argument, Env, JsonParam).
  • Parsing layer: Click options/arguments.
  • Conversion layer: type coercion and JSON molding.
  • Invocation layer: bound arguments passed to your command function.

Data Flow

flowchart TD
  Args[argv and env vars] --> Parse[Click parsing]
  Parse --> Meta[Parameter metadata resolution]
  Meta --> Convert[Type conversion]
  Meta --> Json[JSON decode and apply_structure]
  Convert --> Bind[Bound arguments map]
  Json --> Bind
  Bind --> Inject[Context and State injection]
  Inject --> Execute[Command execution]
  Execute --> Result[Output and return value]

Parameter Selection

  • Option: named values (--region eu-west-1).
  • Argument: positional values (deploy billing).
  • Env: environment-provided values (API_TOKEN).
  • JsonParam: structured JSON payloads.