See inside your pipelines
Trust that your pipelines ran, and verify your expectations of your data meet reality.
Deploy anywhere seamlessly
All of your execution environments, no matter where they are.
- Configure and develop locally, deploy in production
- Granular control over where your code runs
1# flow.py 2import os 3from prefect import flow 4 5@flow 6def main(): 7 if os.cpu_count() <= 2: 8 print("💪") 9 else: 10 print("💪💪💪")
# Deploy to Kubernetes prefect deploy flow.py:flow --pool kubernetes # Deploy to staging server prefect deploy flow.py:flow --pool process-staging
Write the code you want
Stop torturing your code & writing boilerplate.
- Pythonic syntax, including loops and if statements
- Turn any Python function into a @flow
- Support for sync or async work
1from prefect import flow, task 2 3@task 4def add_one(x: int): 5 return x + 1 6 7@flow 8def main(): 9 for x in [1, 2, 3]: 10 first = add_one(x) 11 second = add_one(first)
Get started easily
Lightweight scheduling when you want it, powerful orchestration when you need it.
1from prefect import flow, get_run_logger 2 3@flow(name="Prefect Cloud Quickstart") 4def quickstart_flow(): 5 logger = get_run_logger() 6 logger.warning("Local quickstart flow is running!") 7 8if __name__ == "__main__": 9 quickstart_flow()