/prefect

The Prefect workflow platform

Primary LanguagePythonOtherNOASSERTION

Hello, world! 👋

We've rebuilt data engineering for the data science era.

Prefect is a new workflow management system, designed for modern infrastructure and powered by the open-source Prefect Core workflow engine. Users organize Tasks into Flows, and Prefect takes care of the rest.

Read the docs; get the code; ask us anything!

from prefect import task, Flow, Parameter


@task(log_stdout=True)
def say_hello(name):
    print("Hello, {}!".format(name))


with Flow("My First Flow") as flow:
    name = Parameter('name')
    say_hello(name)


flow.run(name='world') # "Hello, world!"
flow.run(name='Marvin') # "Hello, Marvin!"

Spin up Prefect Core's local UI to orchestrate and manage your workflows:

prefect server start

and navigate to http://localhost:8080.

Docs

Prefect's documentation -- including concepts, tutorials, and a full API reference -- is always available at docs.prefect.io.

Instructions for contributing to documentation can be found in the development guide.

Blog

The Prefect Blog for updates and insights from the Prefect team.

Contributing

Read about Prefect's community or dive in to the development guides for information about contributions, documentation, code style, and testing.

Join our Slack to chat about Prefect, ask questions, and share tips.

Prefect is committed to ensuring a positive environment. All interactions are governed by our Code of Conduct.

"...Prefect?"

From the Latin praefectus, meaning "one who is in charge", a prefect is an official who oversees a domain and makes sure that the rules are followed. Similarly, Prefect is responsible for making sure that workflows execute properly.

It also happens to be the name of a roving researcher for that wholly remarkable book, The Hitchhiker's Guide to the Galaxy.

Installation

Requirements

Prefect requires Python 3.6+.

Install latest release

Using pip:

pip install prefect

or conda:

conda install -c conda-forge prefect

or pipenv:

pipenv install --pre prefect

Install bleeding edge

Please note that the master branch of Prefect is not guaranteed to be compatible with Prefect Cloud.

git clone https://github.com/PrefectHQ/prefect.git
pip install ./prefect

License

Prefect is variously licensed under the Apache Software License Version 2.0 or the Prefect Community License.

All code except the /server directory is Apache 2.0-licensed unless otherwise noted. The /server directory is licensed under the Prefect Community License.