# Parameters
A Parameter
is a special type of Task
representing an input that can vary
per flow run. For example:
x = Parameter("x", default=1)
Parameters have a name ("x"
in this case), and may optionally include a
default value. Parameters lacking a default value require an explicit value be
configured for each flow run. Parameters with a default value may use the
default, or optionally provide a different value at runtime. Parameters can be
specified through the UI or CLI when running with Prefect Cloud/Server (see
here) or through the parameters
kwarg when running locally with flow.run
.
For more information, see the Parameter docs.
Registering with Prefect Cloud/Server
This example can be registered in Prefect Cloud or Server by running:
prefect register --json https://docs.prefect.io/examples.json \
--name 'Example: Parameters' \
--project 'Prefect Examples'
(to register in a different project, replace 'Prefect Examples'
with your project name).
from prefect import Flow, Parameter, task
@task(log_stdout=True)
def print_total(x, y, total):
print(f"{x} + {y} = {total}")
with Flow("Example: Parameters") as flow:
x = Parameter("x", default=1)
y = Parameter("y", default=2)
print_total(x, y, x + y)
if __name__ == "__main__":
# When running a flow where all parameters have default values
# no parameters need to be specified at runtime.
print("Running with default values")
flow.run()
# One or more parameters can be specified at runtime through the use of the
# `parameters` argument. Here we set `x` to 8 and `y` to 9.
print("\nRunning with `x = 8` and `y = 9`")
flow.run(parameters={"x": 8, "y": 9})
Output
$ python examples/parameters.py
Running with default values
INFO | Beginning Flow run for 'Example: Parameters'
INFO | Task 'x': Starting task run...
INFO | Task 'x': Finished task run for task with final state: 'Success'
INFO | Task 'y': Starting task run...
INFO | Task 'y': Finished task run for task with final state: 'Success'
INFO | Task 'Add': Starting task run...
INFO | Task 'Add': Finished task run for task with final state: 'Success'
INFO | Task 'print_total': Starting task run...
INFO | 1 + 2 = 3
INFO | Task 'print_total': Finished task run for task with final state: 'Success'
INFO | Flow run SUCCESS: all reference tasks succeeded
Running with `x = 8` and `y = 9`
INFO | Beginning Flow run for 'Example: Parameters'
INFO | Task 'x': Starting task run...
INFO | Task 'x': Finished task run for task with final state: 'Success'
INFO | Task 'y': Starting task run...
INFO | Task 'y': Finished task run for task with final state: 'Success'
INFO | Task 'Add': Starting task run...
INFO | Task 'Add': Finished task run for task with final state: 'Success'
INFO | Task 'print_total': Starting task run...
INFO | 8 + 9 = 17
INFO | Task 'print_total': Finished task run for task with final state: 'Success'
INFO | Flow run SUCCESS: all reference tasks succeeded
The flow source is available on GitHub here.
This documentation was auto-generated from commit bd9182e
on July 31, 2024 at 18:02 UTC