prefect README

The project's README from github.com/PrefectHQ/prefect. As one markdown file: README.md.

PyPI Downloads

Installation · Quickstart · Build workflows · Deploy workflows · Prefect Cloud

Prefect

Prefect is a workflow orchestration framework for building data pipelines in Python. It's the simplest way to elevate a script into a production workflow. With Prefect, you can build resilient, dynamic data pipelines that react to the world around them and recover from unexpected changes.

With just a few lines of code, data teams can confidently automate any data process with features such as scheduling, caching, retries, and event-based automations.

Workflow activity is tracked and can be monitored with a self-hosted Prefect server instance or managed Prefect Cloud dashboard.

[!TIP] Prefect flows can handle retries, dependencies, and even complex branching logic

Check our docs or see the example below to learn more!

Getting started

Prefect requires Python 3.10+. To install the latest version of Prefect, run one of the following commands:

pip install -U prefect
uv add prefect

Then create and run a Python file that uses Prefect flow and task decorators to orchestrate and observe your workflow - in this case, a simple script that fetches the number of GitHub stars from a repository:

from prefect import flow, task
import httpx


@task(log_prints=True)
def get_stars(repo: str):
    url = f"https://api.github.com/repos/{repo}"
    count = httpx.get(url).json()["stargazers_count"]
    print(f"{repo} has {count} stars!")


@flow(name="GitHub Stars")
def github_stars(repos: list[str]):
    for repo in repos:
        get_stars(repo)


# run the flow!
if __name__ == "__main__":
    github_stars(["PrefectHQ/prefect"])

Fire up a Prefect server and open the UI at http://localhost:4200 to see what happened:

prefect server start

To run your workflow on a schedule, turn it into a deployment and schedule it to run every minute by changing the last line of your script to the following:

if __name__ == "__main__":
    github_stars.serve(
        name="first-deployment",
        cron="* * * * *",
        parameters={"repos": ["PrefectHQ/prefect"]}
    )

You now have a process running locally that is looking for scheduled deployments! Additionally you can run your workflow manually from the UI or CLI. You can even run deployments in response to events.

[!TIP] Where to go next - check out our documentation to learn more about:

Prefect Cloud

Prefect Cloud provides workflow orchestration for the modern data enterprise. By automating over 200 million data tasks monthly, Prefect empowers diverse organizations — from Fortune 50 leaders such as Progressive Insurance to innovative disruptors such as Cash App — to increase engineering productivity, reduce pipeline errors, and cut data workflow compute costs.

Read more about Prefect Cloud here or sign up to try it for yourself.

prefect-client

If your use case is geared towards communicating with Prefect Cloud or a remote Prefect server, check out our prefect-client. It is a lighter-weight option for accessing client-side functionality in the Prefect SDK and is ideal for use in ephemeral execution environments.

Connect & Contribute

Join a thriving community of over 25,000 practitioners who solve data challenges with Prefect. Prefect's community is built on collaboration, technical innovation, and continuous improvement.

Community Resources

🌐 Explore the Documentation - Comprehensive guides and API references
💬 Join the Slack Community - Connect with thousands of practitioners
🤝 Contribute to Prefect - Help shape the future of the project
🔌 Support or create a new Prefect integration - Extend Prefect's capabilities
📋 Tail the Dev Log - Prefect's open source development blog

Stay Informed

📥 Subscribe to our Newsletter - Get the latest Prefect news and updates
📣 X and Bluesky - Latest updates and announcements
📺 YouTube - Video tutorials and webinars
📱 LinkedIn - Professional networking and company news

Your contributions, questions, and ideas make Prefect better every day. Whether you're reporting bugs, suggesting features, or improving documentation, your input is invaluable to the Prefect community.

prefect (PrefectHQ/prefect)

Searching Database…

这是什么?Prefect 是一个 Python 工作流编排框架,可以把普通脚本变成稳定、可用于生产环境的数据管道,支持定时调度、失败重试、结果缓存以及基于事件的自动化。
它是我要导入的库,还是独立的服务?它是一个 Python 框架/SDK:你用 flow 和 task 装饰器来装饰函数,然后可以运行自托管的 Prefect 服务器,或使用 Prefect Cloud 来监控和编排工作流。
我该怎么开始使用?用 pip(或其他包管理器)安装 Prefect,使用 flow 和 task 装饰器编写一个 Python 脚本,然后启动 Prefect 服务器,就能在界面中看到运行情况。
我需要哪个版本的 Python?Prefect 需要 Python 3.10 或更高版本。
如果我只和 Prefect Cloud 通信,还需要完整的 Prefect 包吗?不需要。如果你只需要与 Prefect Cloud 或远程服务器通信,更轻量的 'prefect-client' 包更合适,尤其适用于临时环境。
怎样把脚本变成定时部署?把脚本转换为部署,并通过修改脚本最后一行为它设置调度(例如每分钟运行一次),之后由本地进程监视并执行定时运行。
我能基于事件而不只是定时来触发工作流吗?可以。Prefect 支持基于事件的自动化,因此部署除了按计划运行或从界面/命令行手动触发外,还可以响应事件来运行。
Prefect Cloud 是什么?它和开源服务器有什么不同?Prefect Cloud 是一项托管的编排服务,大型组织用它每月运行数百万个数据任务;而自托管的 Prefect 服务器同样提供追踪和监控界面,但没有托管后端。
Prefect 社区有多大?有超过 25,000 名从业者在使用 Prefect,他们通过其 Slack 社区和开放的贡献渠道进行协作。
Creator
PrefectHQ
Size
240.7 MB
Stars
24K
Age
8y
Commits · 90 Days