From 745db0ad0ccfe3eb73a5f6499346a55afd3b206d Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Fri, 12 Sep 2025 14:09:48 +0100 Subject: [PATCH] Migrate setup configuration to pyproject.toml Change-Id: Ifdf32915fed1d33dab56c5c72d30d61f9a03ac56 Signed-off-by: Stephen Finucane --- pyproject.toml | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++ setup.cfg | 75 ------------------------------------------- 2 files changed, 86 insertions(+), 75 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2a38d6bc7..db1a327a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,89 @@ [build-system] requires = ["pbr>=6.1.1"] build-backend = "pbr.build" + +[project] +name = "taskflow" +description = "Taskflow structured state management library." +authors = [ + {name = "OpenStack", email = "openstack-discuss@lists.openstack.org"}, +] +readme = {file = "README.rst", content-type = "text/x-rst"} +license = {text = "Apache-2.0"} +dynamic = ["version", "dependencies"] +requires-python = ">=3.10" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: Console", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Operating System :: POSIX :: Linux", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Topic :: Software Development :: Libraries", + "Topic :: System :: Distributed Computing", +] + +[project.urls] +Homepage = "https://docs.openstack.org/taskflow" +Repository = "https://opendev.org/openstack/taskflow" + +[project.optional-dependencies] +# NOTE(dhellmann): The entries in this section of the file need to be +# kept consistent with the entries in test-requirements.txt. +zookeeper = [ + "kazoo>=2.6.0", # Apache-2.0 +] +redis = [ + "redis>=4.0.0", # MIT +] +etcd = [ + "etcd3gw>=2.0.0", # Apache-2.0 +] +workers = [ + "kombu>=4.3.0", # BSD +] +eventlet = [ + "eventlet>=0.18.2", # MIT +] +database = [ + "SQLAlchemy>=1.0.10", # MIT + "alembic>=0.8.10", # MIT + "SQLAlchemy-Utils>=0.30.11", # BSD License + "PyMySQL>=0.7.6", # MIT License + "psycopg2>=2.8.0", # LGPL/ZPL +] + +[project.entry-points."taskflow.jobboards"] +zookeeper = "taskflow.jobs.backends.impl_zookeeper:ZookeeperJobBoard" +redis = "taskflow.jobs.backends.impl_redis:RedisJobBoard" +etcd = "taskflow.jobs.backends.impl_etcd:EtcdJobBoard" + +[project.entry-points."taskflow.conductors"] +blocking = "taskflow.conductors.backends.impl_blocking:BlockingConductor" +nonblocking = "taskflow.conductors.backends.impl_nonblocking:NonBlockingConductor" + +[project.entry-points."taskflow.persistence"] +dir = "taskflow.persistence.backends.impl_dir:DirBackend" +file = "taskflow.persistence.backends.impl_dir:DirBackend" +memory = "taskflow.persistence.backends.impl_memory:MemoryBackend" +mysql = "taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend" +postgresql = "taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend" +sqlite = "taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend" +zookeeper = "taskflow.persistence.backends.impl_zookeeper:ZkBackend" + +[project.entry-points."taskflow.engines"] +default = "taskflow.engines.action_engine.engine:SerialActionEngine" +serial = "taskflow.engines.action_engine.engine:SerialActionEngine" +parallel = "taskflow.engines.action_engine.engine:ParallelActionEngine" +worker-based = "taskflow.engines.worker_based.engine:WorkerBasedActionEngine" +workers = "taskflow.engines.worker_based.engine:WorkerBasedActionEngine" + +[tool.setuptools] +packages = [ + "taskflow" +] diff --git a/setup.cfg b/setup.cfg index 889667544..60273dc03 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,77 +1,2 @@ [metadata] name = taskflow -summary = Taskflow structured state management library. -description_file = - README.rst -author = OpenStack -author_email = openstack-discuss@lists.openstack.org -home_page = https://docs.openstack.org/taskflow/latest/ -keywords = reliable,tasks,execution,parallel,dataflow,workflows,distributed -python_requires = >=3.10 -classifier = - Development Status :: 5 - Production/Stable - Environment :: OpenStack - Intended Audience :: Developers - Intended Audience :: Information Technology - License :: OSI Approved :: Apache Software License - Operating System :: POSIX :: Linux - Programming Language :: Python - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.10 - Programming Language :: Python :: 3.11 - Programming Language :: Python :: 3.12 - Programming Language :: Python :: 3.13 - Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: Implementation :: CPython - Topic :: Software Development :: Libraries - Topic :: System :: Distributed Computing - -[files] -packages = - taskflow - -[entry_points] -taskflow.jobboards = - zookeeper = taskflow.jobs.backends.impl_zookeeper:ZookeeperJobBoard - redis = taskflow.jobs.backends.impl_redis:RedisJobBoard - etcd = taskflow.jobs.backends.impl_etcd:EtcdJobBoard - -taskflow.conductors = - blocking = taskflow.conductors.backends.impl_blocking:BlockingConductor - nonblocking = taskflow.conductors.backends.impl_nonblocking:NonBlockingConductor - -taskflow.persistence = - dir = taskflow.persistence.backends.impl_dir:DirBackend - file = taskflow.persistence.backends.impl_dir:DirBackend - memory = taskflow.persistence.backends.impl_memory:MemoryBackend - mysql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend - postgresql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend - sqlite = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend - zookeeper = taskflow.persistence.backends.impl_zookeeper:ZkBackend - -taskflow.engines = - default = taskflow.engines.action_engine.engine:SerialActionEngine - serial = taskflow.engines.action_engine.engine:SerialActionEngine - parallel = taskflow.engines.action_engine.engine:ParallelActionEngine - worker-based = taskflow.engines.worker_based.engine:WorkerBasedActionEngine - workers = taskflow.engines.worker_based.engine:WorkerBasedActionEngine - -[extras] -# NOTE(dhellmann): The entries in this section of the file need to be -# kept consistent with the entries in test-requirements.txt. -zookeeper = - kazoo>=2.6.0 # Apache-2.0 -redis = - redis>=4.0.0 # MIT -etcd = - etcd3gw>=2.0.0 # Apache-2.0 -workers = - kombu>=4.3.0 # BSD -eventlet = - eventlet>=0.18.2 # MIT -database = - SQLAlchemy>=1.0.10 # MIT - alembic>=0.8.10 # MIT - SQLAlchemy-Utils>=0.30.11 # BSD License - PyMySQL>=0.7.6 # MIT License - psycopg2>=2.8.0 # LGPL/ZPL