Metadata-Version: 2.4
Name: taskflow
Version: 6.3.0
Summary: Taskflow structured state management library.
Author-email: OpenStack <openstack-discuss@lists.openstack.org>
License: Apache-2.0
Project-URL: Homepage, https://docs.openstack.org/taskflow
Project-URL: Repository, https://opendev.org/openstack/taskflow
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: AUTHORS
Requires-Dist: pbr>=2.0.0
Requires-Dist: debtcollector>=1.2.0
Requires-Dist: futurist>=1.2.0
Requires-Dist: fasteners>=0.17.3
Requires-Dist: networkx>=2.1.0
Requires-Dist: stevedore>=1.20.0
Requires-Dist: jsonschema>=3.2.0
Requires-Dist: automaton>=1.9.0
Requires-Dist: oslo.utils>=3.33.0
Requires-Dist: oslo.serialization>=2.18.0
Requires-Dist: tenacity>=6.0.0
Requires-Dist: cachetools>=2.0.0
Requires-Dist: pydot>=1.2.4
Provides-Extra: zookeeper
Requires-Dist: kazoo>=2.6.0; extra == "zookeeper"
Provides-Extra: redis
Requires-Dist: redis>=4.0.0; extra == "redis"
Provides-Extra: etcd
Requires-Dist: etcd3gw>=2.0.0; extra == "etcd"
Provides-Extra: workers
Requires-Dist: kombu>=4.3.0; extra == "workers"
Provides-Extra: eventlet
Requires-Dist: eventlet>=0.18.2; extra == "eventlet"
Provides-Extra: database
Requires-Dist: SQLAlchemy>=1.0.10; extra == "database"
Requires-Dist: alembic>=0.8.10; extra == "database"
Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "database"
Requires-Dist: PyMySQL>=0.7.6; extra == "database"
Requires-Dist: psycopg2>=2.8.0; extra == "database"
Provides-Extra: mysql
Requires-Dist: SQLAlchemy>=1.0.10; extra == "mysql"
Requires-Dist: alembic>=0.8.10; extra == "mysql"
Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "mysql"
Requires-Dist: PyMySQL>=0.7.6; extra == "mysql"
Provides-Extra: postgresql
Requires-Dist: SQLAlchemy>=1.0.10; extra == "postgresql"
Requires-Dist: alembic>=0.8.10; extra == "postgresql"
Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "postgresql"
Requires-Dist: psycopg2>=2.8.0; extra == "postgresql"
Dynamic: license-file
Dynamic: requires-dist

TaskFlow
========

.. image:: https://governance.openstack.org/tc/badges/taskflow.svg

.. Change things from this point on

.. image:: https://img.shields.io/pypi/v/taskflow.svg
    :target: https://pypi.org/project/taskflow/
    :alt: Latest Version

.. image:: https://img.shields.io/pypi/dm/taskflow.svg
    :target: https://pypi.org/project/taskflow/
    :alt: Downloads

A library to do [jobs, tasks, flows] in a highly available, easy to understand
and declarative manner (and more!) to be used with OpenStack and other
projects.

* Free software: Apache license
* Documentation: https://docs.openstack.org/taskflow/latest/
* Source: https://opendev.org/openstack/taskflow
* Bugs: https://bugs.launchpad.net/taskflow/
* Release notes: https://docs.openstack.org/releasenotes/taskflow/

Installation
------------

The library can be installed from PyPI:

.. code-block:: shell

    pip install taskflow

Because this project has many optional (pluggable) parts like persistence
backends and engines, we decided to split our requirements into two
parts: - things that are absolutely required (you can't use the project without
them) and things that are required by some optional part of this project (you
can use the project without them). The latter requirements are provided by
extras. If you want to use the feature in question, such as the worker-based
engine that uses `kombu`_, the `sqlalchemy`_ persistence backend or jobboards
which have an implementation built using `kazoo`_, you should add that
requirement(s) to your project or environment. For examples, to install the
worked-based engine:

.. code-block:: shell

    pip install taskflow[workers]

.. _kazoo: https://kazoo.readthedocs.io/en/latest/
.. _sqlalchemy: https://www.sqlalchemy.org/
.. _kombu: https://kombu.readthedocs.io/en/latest/
.. _eventlet: http://eventlet.net/
