taskflow 5.10.0__tar.gz → 5.12.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {taskflow-5.10.0 → taskflow-5.12.0}/.pre-commit-config.yaml +5 -18
- {taskflow-5.10.0 → taskflow-5.12.0}/.zuul.yaml +6 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/ChangeLog +23 -0
- taskflow-5.12.0/PKG-INFO +148 -0
- taskflow-5.12.0/releasenotes/notes/deprecate-eventlet-df4a34a7d56acc47.yaml +10 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/2023.1.rst +1 -1
- {taskflow-5.10.0 → taskflow-5.12.0}/requirements.txt +3 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/setup-etcd-env.sh +1 -1
- {taskflow-5.10.0 → taskflow-5.12.0}/setup.cfg +0 -9
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/jobs/test_etcd_job.py +2 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/jobs/test_redis_job.py +2 -1
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_failure.py +2 -5
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/utils.py +7 -6
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/failure.py +2 -6
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/eventlet_utils.py +3 -1
- taskflow-5.12.0/taskflow.egg-info/PKG-INFO +148 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow.egg-info/SOURCES.txt +2 -1
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow.egg-info/entry_points.txt +0 -1
- taskflow-5.12.0/taskflow.egg-info/pbr.json +1 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow.egg-info/requires.txt +26 -16
- {taskflow-5.10.0 → taskflow-5.12.0}/test-requirements.txt +1 -4
- {taskflow-5.10.0 → taskflow-5.12.0}/tox.ini +7 -3
- taskflow-5.10.0/PKG-INFO +0 -109
- taskflow-5.10.0/taskflow.egg-info/PKG-INFO +0 -109
- taskflow-5.10.0/taskflow.egg-info/pbr.json +0 -1
- {taskflow-5.10.0 → taskflow-5.12.0}/.coveragerc +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/.mailmap +0 -0
- /taskflow-5.10.0/pylintrc → /taskflow-5.12.0/.pylintrc +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/.stestr.conf +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/AUTHORS +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/CONTRIBUTING.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/LICENSE +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/README.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/bindep.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/diagrams/area_of_influence.graffle.tgz +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/diagrams/core.graffle.tgz +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/diagrams/jobboard.graffle.tgz +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/diagrams/tasks.graffle.tgz +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/diagrams/worker-engine.graffle.tgz +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/requirements.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/conf.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/index.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/templates/layout.html +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/arguments_and_results.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/atoms.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/conductors.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/engines.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/examples.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/exceptions.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/history.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/area_of_influence.svg +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/conductor.png +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/conductor_cycle.png +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/distributed_flow_rpc.png +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/engine_states.svg +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/flow_states.svg +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/job_states.svg +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/jobboard.png +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/mandelbrot.png +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/retry_states.svg +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/task_states.svg +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/tasks.png +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/wbe_request_states.svg +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/img/worker-engine.svg +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/index.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/inputs_and_outputs.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/jobs.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/notifications.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/patterns.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/persistence.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/resumption.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/shelf.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/states.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/types.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/utils.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/doc/source/user/workers.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/playbooks/tests/functional/Debian.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/playbooks/tests/functional/RedHat.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/playbooks/tests/functional/pre.yml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/.placeholder +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/add-sentinel-redis-support-9fd16e2a5dd5c0c9.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/bug-2056656-871b67ddbc8cfc92.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/disable-process_executor-python-312-d1074c816bc8303e.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/etcd-jobboard-backend-8a9fea2238fb0f12.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/fix-endless-loop-on-storage-error-dd4467f0bbc66abf.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/fix-endless-loop-on-storage-failures-b98b30f0c34d25e1.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/fix-revert-all-revert-a0310cd7beaa7409.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/fix-storage-failure-handling-5c115d92daa0eb82.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/fix-zookeeper-option-parsing-f9d37fbc39af47f4.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/redis-username-df0eb33869db09a2.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/remove-py38-15af791146f479e1.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/remove-strict-redis-f2a5a924b314de41.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/sentinel-fallbacks-6fe2ab0d68959cdf.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/sentinel-ssl-399c56ed7067d282.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/sentinel-use-redis-creds-63f58b12ad46a2b5.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/notes/zookeeper-ssl-support-b9abf24a39096b62.yaml +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/2023.2.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/2024.1.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/2024.2.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/_static/.placeholder +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/_templates/.placeholder +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/conf.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/index.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/ocata.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/pike.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/queens.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/rocky.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/stein.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/train.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/unreleased.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/ussuri.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/releasenotes/source/victoria.rst +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/run_tests.sh +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/setup.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/atom.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/conductors/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/conductors/backends/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/conductors/backends/impl_blocking.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/conductors/backends/impl_executor.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/conductors/backends/impl_nonblocking.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/conductors/base.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/contrib/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/deciders.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/actions/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/actions/base.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/actions/retry.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/actions/task.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/builder.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/compiler.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/completer.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/deciders.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/engine.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/executor.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/process_executor.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/runtime.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/scheduler.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/scopes.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/selector.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/action_engine/traversal.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/base.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/helpers.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/dispatcher.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/endpoint.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/engine.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/executor.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/protocol.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/proxy.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/server.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/types.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/engines/worker_based/worker.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/99_bottles.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/alphabet_soup.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/build_a_car.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/buildsystem.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/calculate_in_parallel.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/calculate_linear.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/create_parallel_volume.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/delayed_return.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/distance_calculator.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/dump_memory_backend.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/echo_listener.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/example_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/fake_billing.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/graph_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/hello_world.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/jobboard_produce_consume_colors.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/parallel_table_multiply.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/persistence_example.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/pseudo_scoping.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/pseudo_scoping.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_from_backend.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_from_backend.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_many_flows/my_flows.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_many_flows/resume_all.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_many_flows/run_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_many_flows.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_many_flows.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_vm_boot.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/resume_volume_create.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/retry_flow.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/retry_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/reverting_linear.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/reverting_linear.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/run_by_iter.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/run_by_iter.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/run_by_iter_enumerate.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/run_by_iter_enumerate.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/share_engine_thread.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/simple_linear.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/simple_linear.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/simple_linear_listening.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/simple_linear_listening.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/simple_linear_pass.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/simple_linear_pass.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/simple_map_reduce.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/switch_graph_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/timing_listener.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/tox_conductor.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/wbe_event_sender.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/wbe_mandelbrot.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/wbe_mandelbrot.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/wbe_simple_linear.out.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/wbe_simple_linear.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/examples/wrapped_exception.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/exceptions.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/formatters.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/jobs/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/jobs/backends/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/jobs/backends/impl_etcd.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/jobs/backends/impl_redis.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/jobs/backends/impl_zookeeper.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/jobs/base.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/listeners/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/listeners/base.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/listeners/capturing.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/listeners/claims.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/listeners/logging.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/listeners/printing.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/listeners/timing.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/logging.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/patterns/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/patterns/graph_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/patterns/linear_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/patterns/unordered_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/impl_dir.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/impl_memory.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/impl_sqlalchemy.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/impl_zookeeper.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/README +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/alembic.ini +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/env.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/script.py.mako +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/0bc3e1a3c135_set_result_meduimtext_type.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/14b227d79a87_add_intention_column.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/1c783c0c2875_replace_exception_an.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/1cea328f0f65_initial_logbook_deta.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/2ad4984f2864_switch_postgres_to_json_native.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/3162c0f3f8e4_add_revert_results_and_revert_failure_.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/40fc8c914bd2_fix_atomdetails_failure_size.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/589dccdf2b6e_rename_taskdetails_to_atomdetails.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/6df9422fcb43_fix_flowdetails_meta_size.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/84d6e888850_add_task_detail_type.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/README +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/migration.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/backends/sqlalchemy/tables.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/base.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/models.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/persistence/path_based.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/retry.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/states.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/storage.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/task.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/test.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/fixtures.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/test_examples.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/action_engine/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/action_engine/test_builder.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/action_engine/test_compile.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/action_engine/test_creation.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/action_engine/test_process_executor.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/action_engine/test_scoping.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/jobs/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/jobs/base.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/jobs/test_entrypoint.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/jobs/test_zk_job.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/patterns/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/patterns/test_graph_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/patterns/test_linear_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/patterns/test_unordered_flow.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/persistence/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/persistence/base.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/persistence/test_dir_persistence.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/persistence/test_memory_persistence.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/persistence/test_sql_persistence.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/persistence/test_zk_persistence.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_arguments_passing.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_check_transition.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_conductors.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_deciders.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_engine_helpers.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_engines.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_exceptions.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_flow_dependencies.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_formatters.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_functor_task.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_listeners.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_mapfunctor_task.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_notifier.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_progress.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_reducefunctor_task.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_retries.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_states.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_storage.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_suspend.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_task.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_types.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_utils_async_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_utils_binary.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_utils_iter_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_utils_kazoo_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/test_utils_threading_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_creation.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_dispatcher.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_endpoint.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_executor.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_message_pump.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_pipeline.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_protocol.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_proxy.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_server.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_types.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/tests/unit/worker_based/test_worker.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/entity.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/graph.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/latch.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/notifier.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/sets.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/timing.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/types/tree.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/__init__.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/async_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/banner.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/iter_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/kazoo_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/kombu_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/misc.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/persistence_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/redis_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/schema_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/utils/threading_utils.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow/version.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow.egg-info/dependency_links.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow.egg-info/not-zip-safe +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/taskflow.egg-info/top_level.txt +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/clear_zk.sh +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/env_builder.sh +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/pretty_tox.sh +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/schema_generator.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/speed_test.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/state_graph.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/subunit_trace.py +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/test-setup.sh +0 -0
- {taskflow-5.10.0 → taskflow-5.12.0}/tools/update_states.sh +0 -0
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
# We from the Oslo project decided to pin repos based on the
|
|
2
|
-
# commit hash instead of the version tag to prevend arbitrary
|
|
3
|
-
# code from running in developer's machines. To update to a
|
|
4
|
-
# newer version, run `pre-commit autoupdate` and then replace
|
|
5
|
-
# the newer versions with their commit hash.
|
|
6
|
-
|
|
7
|
-
default_language_version:
|
|
8
|
-
python: python3
|
|
9
|
-
|
|
10
1
|
repos:
|
|
11
2
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
12
|
-
rev:
|
|
3
|
+
rev: v5.0.0
|
|
13
4
|
hooks:
|
|
14
5
|
- id: trailing-whitespace
|
|
15
6
|
# Replaces or checks mixed line ending
|
|
@@ -27,13 +18,9 @@ repos:
|
|
|
27
18
|
- id: debug-statements
|
|
28
19
|
- id: check-yaml
|
|
29
20
|
files: .*\.(yaml|yml)$
|
|
30
|
-
- repo:
|
|
21
|
+
- repo: https://opendev.org/openstack/hacking
|
|
22
|
+
rev: 7.0.0
|
|
31
23
|
hooks:
|
|
32
|
-
- id:
|
|
33
|
-
|
|
34
|
-
additional_dependencies:
|
|
35
|
-
- hacking>=6.1.0,<6.2.0
|
|
36
|
-
language: python
|
|
37
|
-
entry: flake8
|
|
38
|
-
files: '^.*\.py$'
|
|
24
|
+
- id: hacking
|
|
25
|
+
additional_dependencies: []
|
|
39
26
|
exclude: '^(doc|releasenotes|tools)/.*$'
|
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
CHANGES
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
5.12.0
|
|
5
|
+
------
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
5.11.0
|
|
9
|
+
------
|
|
10
|
+
|
|
11
|
+
* Skip installation to speed up pep8
|
|
12
|
+
* Deprecate utility for eventlet
|
|
13
|
+
* fix typo
|
|
14
|
+
* Skip functional jobs for license file update
|
|
15
|
+
* pre-commit: Bump versions
|
|
16
|
+
* Remove "test" extra
|
|
17
|
+
* Sync test requirements
|
|
18
|
+
* Remove zake from runtime dependency
|
|
19
|
+
* Read pifpaf environments to detect service ports
|
|
20
|
+
* Drop unused constants
|
|
21
|
+
* Bump etcd in tests
|
|
22
|
+
* Replace oslo\_utils.encodeutils.exception\_to\_unicode
|
|
23
|
+
* Bump pylint
|
|
24
|
+
* Skip functional tests for doc update
|
|
25
|
+
* reno: Update master for unmaintained/2023.1
|
|
26
|
+
|
|
4
27
|
5.10.0
|
|
5
28
|
------
|
|
6
29
|
|
taskflow-5.12.0/PKG-INFO
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: taskflow
|
|
3
|
+
Version: 5.12.0
|
|
4
|
+
Summary: Taskflow structured state management library.
|
|
5
|
+
Home-page: https://docs.openstack.org/taskflow/latest/
|
|
6
|
+
Author: OpenStack
|
|
7
|
+
Author-email: openstack-discuss@lists.openstack.org
|
|
8
|
+
Keywords: reliable,tasks,execution,parallel,dataflow,workflows,distributed
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Environment :: OpenStack
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Intended Audience :: Information Technology
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
15
|
+
Classifier: Programming Language :: Python
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
22
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
24
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
25
|
+
Requires-Python: >=3.9
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: pbr>=2.0.0
|
|
28
|
+
Requires-Dist: debtcollector>=1.2.0
|
|
29
|
+
Requires-Dist: futurist>=1.2.0
|
|
30
|
+
Requires-Dist: fasteners>=0.17.3
|
|
31
|
+
Requires-Dist: networkx>=2.1.0
|
|
32
|
+
Requires-Dist: stevedore>=1.20.0
|
|
33
|
+
Requires-Dist: jsonschema>=3.2.0
|
|
34
|
+
Requires-Dist: automaton>=1.9.0
|
|
35
|
+
Requires-Dist: oslo.utils>=3.33.0
|
|
36
|
+
Requires-Dist: oslo.serialization>=2.18.0
|
|
37
|
+
Requires-Dist: tenacity>=6.0.0
|
|
38
|
+
Requires-Dist: cachetools>=2.0.0
|
|
39
|
+
Requires-Dist: pydot>=1.2.4
|
|
40
|
+
Provides-Extra: zookeeper
|
|
41
|
+
Requires-Dist: kazoo>=2.6.0; extra == "zookeeper"
|
|
42
|
+
Provides-Extra: redis
|
|
43
|
+
Requires-Dist: redis>=4.0.0; extra == "redis"
|
|
44
|
+
Provides-Extra: etcd
|
|
45
|
+
Requires-Dist: etcd3gw>=2.0.0; extra == "etcd"
|
|
46
|
+
Provides-Extra: workers
|
|
47
|
+
Requires-Dist: kombu>=4.3.0; extra == "workers"
|
|
48
|
+
Provides-Extra: eventlet
|
|
49
|
+
Requires-Dist: eventlet>=0.18.2; extra == "eventlet"
|
|
50
|
+
Provides-Extra: database
|
|
51
|
+
Requires-Dist: SQLAlchemy>=1.0.10; extra == "database"
|
|
52
|
+
Requires-Dist: alembic>=0.8.10; extra == "database"
|
|
53
|
+
Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "database"
|
|
54
|
+
Requires-Dist: PyMySQL>=0.7.6; extra == "database"
|
|
55
|
+
Requires-Dist: psycopg2>=2.8.0; extra == "database"
|
|
56
|
+
Provides-Extra: test
|
|
57
|
+
Requires-Dist: kazoo>=2.6.0; extra == "test"
|
|
58
|
+
Requires-Dist: redis>=4.0.0; extra == "test"
|
|
59
|
+
Requires-Dist: etcd3gw>=2.0.0; extra == "test"
|
|
60
|
+
Requires-Dist: kombu>=4.3.0; extra == "test"
|
|
61
|
+
Requires-Dist: eventlet>=0.18.2; extra == "test"
|
|
62
|
+
Requires-Dist: SQLAlchemy>=1.0.10; extra == "test"
|
|
63
|
+
Requires-Dist: alembic>=0.8.10; extra == "test"
|
|
64
|
+
Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "test"
|
|
65
|
+
Requires-Dist: PyMySQL>=0.7.6; extra == "test"
|
|
66
|
+
Requires-Dist: psycopg2>=2.8.0; extra == "test"
|
|
67
|
+
Requires-Dist: zake>=0.1.6; extra == "test"
|
|
68
|
+
Requires-Dist: pydotplus>=2.0.2; extra == "test"
|
|
69
|
+
Requires-Dist: oslotest>=3.2.0; extra == "test"
|
|
70
|
+
Requires-Dist: testtools>=2.2.0; extra == "test"
|
|
71
|
+
Requires-Dist: testscenarios>=0.4; extra == "test"
|
|
72
|
+
Requires-Dist: stestr>=2.0.0; extra == "test"
|
|
73
|
+
Requires-Dist: pifpaf>=0.10.0; extra == "test"
|
|
74
|
+
|
|
75
|
+
========================
|
|
76
|
+
Team and repository tags
|
|
77
|
+
========================
|
|
78
|
+
|
|
79
|
+
.. image:: https://governance.openstack.org/tc/badges/taskflow.svg
|
|
80
|
+
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
|
81
|
+
|
|
82
|
+
.. Change things from this point on
|
|
83
|
+
|
|
84
|
+
TaskFlow
|
|
85
|
+
========
|
|
86
|
+
|
|
87
|
+
.. image:: https://img.shields.io/pypi/v/taskflow.svg
|
|
88
|
+
:target: https://pypi.org/project/taskflow/
|
|
89
|
+
:alt: Latest Version
|
|
90
|
+
|
|
91
|
+
A library to do [jobs, tasks, flows] in a highly available, easy to understand
|
|
92
|
+
and declarative manner (and more!) to be used with OpenStack and other
|
|
93
|
+
projects.
|
|
94
|
+
|
|
95
|
+
* Free software: Apache license
|
|
96
|
+
* Documentation: https://docs.openstack.org/taskflow/latest/
|
|
97
|
+
* Source: https://opendev.org/openstack/taskflow
|
|
98
|
+
* Bugs: https://bugs.launchpad.net/taskflow/
|
|
99
|
+
* Release notes: https://docs.openstack.org/releasenotes/taskflow/
|
|
100
|
+
|
|
101
|
+
Join us
|
|
102
|
+
-------
|
|
103
|
+
|
|
104
|
+
- https://launchpad.net/taskflow
|
|
105
|
+
|
|
106
|
+
Testing and requirements
|
|
107
|
+
------------------------
|
|
108
|
+
|
|
109
|
+
Requirements
|
|
110
|
+
~~~~~~~~~~~~
|
|
111
|
+
|
|
112
|
+
Because this project has many optional (pluggable) parts like persistence
|
|
113
|
+
backends and engines, we decided to split our requirements into two
|
|
114
|
+
parts: - things that are absolutely required (you can't use the project
|
|
115
|
+
without them) are put into ``requirements.txt``. The requirements
|
|
116
|
+
that are required by some optional part of this project (you can use the
|
|
117
|
+
project without them) are put into our ``test-requirements.txt`` file (so
|
|
118
|
+
that we can still test the optional functionality works as expected). If
|
|
119
|
+
you want to use the feature in question (`eventlet`_ or the worker based engine
|
|
120
|
+
that uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
|
|
121
|
+
have an implementation built using `kazoo`_ ...), you should add
|
|
122
|
+
that requirement(s) to your project or environment.
|
|
123
|
+
|
|
124
|
+
Tox.ini
|
|
125
|
+
~~~~~~~
|
|
126
|
+
|
|
127
|
+
Our ``tox.ini`` file describes several test environments that allow to test
|
|
128
|
+
TaskFlow with different python versions and sets of requirements installed.
|
|
129
|
+
Please refer to the `tox`_ documentation to understand how to make these test
|
|
130
|
+
environments work for you.
|
|
131
|
+
|
|
132
|
+
Developer documentation
|
|
133
|
+
-----------------------
|
|
134
|
+
|
|
135
|
+
We also have sphinx documentation in ``docs/source``.
|
|
136
|
+
|
|
137
|
+
*To build it, run:*
|
|
138
|
+
|
|
139
|
+
::
|
|
140
|
+
|
|
141
|
+
$ python setup.py build_sphinx
|
|
142
|
+
|
|
143
|
+
.. _kazoo: https://kazoo.readthedocs.io/en/latest/
|
|
144
|
+
.. _sqlalchemy: https://www.sqlalchemy.org/
|
|
145
|
+
.. _kombu: https://kombu.readthedocs.io/en/latest/
|
|
146
|
+
.. _eventlet: http://eventlet.net/
|
|
147
|
+
.. _tox: https://tox.testrun.org/
|
|
148
|
+
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
deprecations:
|
|
3
|
+
- |
|
|
4
|
+
Eventlet usages are deprecated and the removal of Eventlet from
|
|
5
|
+
OpenStack `is planned <https://governance.openstack.org/tc//goals/proposed/remove-eventlet.html>`_,
|
|
6
|
+
for this reason the eventlet_utils module is now deprecated.
|
|
7
|
+
The support of Eventlet will be soon removed from taskflow.
|
|
8
|
+
|
|
9
|
+
Please start considering removing your internal Eventlet usages and
|
|
10
|
+
start migrating your stack.
|
|
@@ -56,7 +56,6 @@ taskflow.engines =
|
|
|
56
56
|
[extras]
|
|
57
57
|
zookeeper =
|
|
58
58
|
kazoo>=2.6.0 # Apache-2.0
|
|
59
|
-
zake>=0.1.6 # Apache-2.0
|
|
60
59
|
redis =
|
|
61
60
|
redis>=4.0.0 # MIT
|
|
62
61
|
etcd =
|
|
@@ -71,14 +70,6 @@ database =
|
|
|
71
70
|
SQLAlchemy-Utils>=0.30.11 # BSD License
|
|
72
71
|
PyMySQL>=0.7.6 # MIT License
|
|
73
72
|
psycopg2>=2.8.0 # LGPL/ZPL
|
|
74
|
-
test =
|
|
75
|
-
pydotplus>=2.0.2 # MIT License
|
|
76
|
-
hacking<0.11,>=0.10.0
|
|
77
|
-
oslotest>=3.2.0 # Apache-2.0
|
|
78
|
-
mock>=2.0.0 # BSD
|
|
79
|
-
testtools>=2.2.0 # MIT
|
|
80
|
-
testscenarios>=0.4 # Apache-2.0/BSD
|
|
81
|
-
stestr>=2.0.0 # Apache-2.0
|
|
82
73
|
|
|
83
74
|
[egg_info]
|
|
84
75
|
tag_build =
|
|
@@ -26,12 +26,14 @@ from taskflow.tests.unit.jobs import base
|
|
|
26
26
|
from taskflow.tests import utils as test_utils
|
|
27
27
|
|
|
28
28
|
ETCD_AVAILABLE = test_utils.etcd_available()
|
|
29
|
+
ETCD_PORT = test_utils.ETCD_PORT
|
|
29
30
|
|
|
30
31
|
|
|
31
32
|
class EtcdJobBoardMixin:
|
|
32
33
|
def create_board(self, conf=None, persistence=None):
|
|
33
34
|
self.path = f"test-{uuidutils.generate_uuid()}"
|
|
34
35
|
board_conf = {
|
|
36
|
+
"port": ETCD_PORT,
|
|
35
37
|
"path": self.path,
|
|
36
38
|
}
|
|
37
39
|
if conf:
|
|
@@ -32,6 +32,7 @@ from taskflow.utils import redis_utils as ru
|
|
|
32
32
|
|
|
33
33
|
REDIS_AVAILABLE = test_utils.redis_available(
|
|
34
34
|
impl_redis.RedisJobBoard.MIN_REDIS_VERSION)
|
|
35
|
+
REDIS_PORT = test_utils.REDIS_PORT
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
@testtools.skipIf(not REDIS_AVAILABLE, 'redis is not available')
|
|
@@ -41,7 +42,7 @@ class RedisJobboardTest(test.TestCase, base.BoardTestMixin):
|
|
|
41
42
|
|
|
42
43
|
def create_board(self, persistence=None):
|
|
43
44
|
namespace = uuidutils.generate_uuid()
|
|
44
|
-
client = ru.RedisClient()
|
|
45
|
+
client = ru.RedisClient(port=REDIS_PORT)
|
|
45
46
|
config = {
|
|
46
47
|
'namespace': ("taskflow-%s" % namespace).encode('latin-1'),
|
|
47
48
|
}
|
|
@@ -17,8 +17,6 @@
|
|
|
17
17
|
import pickle
|
|
18
18
|
import sys
|
|
19
19
|
|
|
20
|
-
from oslo_utils import encodeutils
|
|
21
|
-
|
|
22
20
|
from taskflow import exceptions
|
|
23
21
|
from taskflow import test
|
|
24
22
|
from taskflow.tests import utils as test_utils
|
|
@@ -334,8 +332,7 @@ class NonAsciiExceptionsTestCase(test.TestCase):
|
|
|
334
332
|
bad_string = chr(200)
|
|
335
333
|
excp = ValueError(bad_string)
|
|
336
334
|
fail = failure.Failure.from_exception(excp)
|
|
337
|
-
self.assertEqual(
|
|
338
|
-
fail.exception_str)
|
|
335
|
+
self.assertEqual(str(excp), fail.exception_str)
|
|
339
336
|
expected = u'Failure: ValueError: \xc8'
|
|
340
337
|
self.assertEqual(expected, str(fail))
|
|
341
338
|
|
|
@@ -350,7 +347,7 @@ class NonAsciiExceptionsTestCase(test.TestCase):
|
|
|
350
347
|
def test_wrapped_failure_non_ascii_unicode(self):
|
|
351
348
|
hi_cn = u'嗨'
|
|
352
349
|
fail = ValueError(hi_cn)
|
|
353
|
-
self.assertEqual(hi_cn,
|
|
350
|
+
self.assertEqual(hi_cn, str(fail))
|
|
354
351
|
fail = failure.Failure.from_exception(fail)
|
|
355
352
|
wrapped_fail = exceptions.WrappedFailure([fail])
|
|
356
353
|
expected_result = (u"WrappedFailure: "
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
# under the License.
|
|
16
16
|
|
|
17
17
|
import contextlib
|
|
18
|
+
import os
|
|
18
19
|
import string
|
|
19
20
|
import threading
|
|
20
21
|
import time
|
|
@@ -32,12 +33,12 @@ from taskflow.types import failure
|
|
|
32
33
|
from taskflow.utils import kazoo_utils
|
|
33
34
|
from taskflow.utils import redis_utils
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
ETCD_PORT = int(os.getenv("TASKFLOW_TEST_ETCD_PORT", 2379))
|
|
37
|
+
REDIS_PORT = int(os.getenv("TASKFLOW_TEST_REDIS_SENTINEL_PORT", 6379))
|
|
38
|
+
ZK_PORT = int(os.getenv("TASKFLOW_TEST_ZOOKEEPER_PORT", 2181))
|
|
38
39
|
ZK_TEST_CONFIG = {
|
|
39
40
|
'timeout': 1.0,
|
|
40
|
-
'hosts': ["localhost
|
|
41
|
+
'hosts': ["localhost:%d" % ZK_PORT],
|
|
41
42
|
}
|
|
42
43
|
# If latches/events take longer than this to become empty/set, something is
|
|
43
44
|
# usually wrong and should be debugged instead of deadlocking...
|
|
@@ -78,7 +79,7 @@ def zookeeper_available(min_version, timeout=3):
|
|
|
78
79
|
|
|
79
80
|
|
|
80
81
|
def redis_available(min_version):
|
|
81
|
-
client = redis.Redis()
|
|
82
|
+
client = redis.Redis(port=REDIS_PORT)
|
|
82
83
|
try:
|
|
83
84
|
client.ping()
|
|
84
85
|
except Exception:
|
|
@@ -90,7 +91,7 @@ def redis_available(min_version):
|
|
|
90
91
|
|
|
91
92
|
|
|
92
93
|
def etcd_available():
|
|
93
|
-
client = etcd3gw.Etcd3Client()
|
|
94
|
+
client = etcd3gw.Etcd3Client(port=ETCD_PORT)
|
|
94
95
|
try:
|
|
95
96
|
client.get("/")
|
|
96
97
|
except Exception:
|
|
@@ -21,7 +21,6 @@ import os
|
|
|
21
21
|
import sys
|
|
22
22
|
import traceback
|
|
23
23
|
|
|
24
|
-
from oslo_utils import encodeutils
|
|
25
24
|
from oslo_utils import reflection
|
|
26
25
|
|
|
27
26
|
from taskflow import exceptions as exc
|
|
@@ -29,9 +28,6 @@ from taskflow.utils import iter_utils
|
|
|
29
28
|
from taskflow.utils import schema_utils as su
|
|
30
29
|
|
|
31
30
|
|
|
32
|
-
_exception_message = encodeutils.exception_to_unicode
|
|
33
|
-
|
|
34
|
-
|
|
35
31
|
def _copy_exc_info(exc_info):
|
|
36
32
|
if exc_info is None:
|
|
37
33
|
return None
|
|
@@ -57,7 +53,7 @@ def _are_equal_exc_info_tuples(ei1, ei2):
|
|
|
57
53
|
# because we want the types to be exactly the same, not just have
|
|
58
54
|
# one be inherited from the other.
|
|
59
55
|
if not all((type(ei1[1]) == type(ei2[1]), # noqa: E721
|
|
60
|
-
|
|
56
|
+
str(ei1[1]) == str(ei2[1]),
|
|
61
57
|
repr(ei1[1]) == repr(ei2[1]))):
|
|
62
58
|
return False
|
|
63
59
|
if ei1[2] == ei2[2]:
|
|
@@ -195,7 +191,7 @@ class Failure():
|
|
|
195
191
|
if not self._exc_type_names:
|
|
196
192
|
raise TypeError("Invalid exception type '%s' (%s)"
|
|
197
193
|
% (exc_info[0], type(exc_info[0])))
|
|
198
|
-
self._exception_str =
|
|
194
|
+
self._exception_str = str(self._exc_info[1])
|
|
199
195
|
self._traceback_str = ''.join(
|
|
200
196
|
traceback.format_tb(self._exc_info[2]))
|
|
201
197
|
self._causes = kwargs.pop('causes', None)
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# License for the specific language governing permissions and limitations
|
|
15
15
|
# under the License.
|
|
16
16
|
|
|
17
|
+
import debtcollector.removals
|
|
17
18
|
from oslo_utils import importutils
|
|
18
19
|
|
|
19
20
|
_eventlet = importutils.try_import('eventlet')
|
|
@@ -21,6 +22,7 @@ _eventlet = importutils.try_import('eventlet')
|
|
|
21
22
|
EVENTLET_AVAILABLE = bool(_eventlet)
|
|
22
23
|
|
|
23
24
|
|
|
25
|
+
@debtcollector.removals.remove(message='Eventlet support is deprecated.')
|
|
24
26
|
def check_for_eventlet(exc=None):
|
|
25
27
|
"""Check if eventlet is available and if not raise a runtime error.
|
|
26
28
|
|
|
@@ -29,6 +31,6 @@ def check_for_eventlet(exc=None):
|
|
|
29
31
|
"""
|
|
30
32
|
if not EVENTLET_AVAILABLE:
|
|
31
33
|
if exc is None:
|
|
32
|
-
raise RuntimeError('Eventlet is not
|
|
34
|
+
raise RuntimeError('Eventlet is not currently available')
|
|
33
35
|
else:
|
|
34
36
|
raise exc
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: taskflow
|
|
3
|
+
Version: 5.12.0
|
|
4
|
+
Summary: Taskflow structured state management library.
|
|
5
|
+
Home-page: https://docs.openstack.org/taskflow/latest/
|
|
6
|
+
Author: OpenStack
|
|
7
|
+
Author-email: openstack-discuss@lists.openstack.org
|
|
8
|
+
Keywords: reliable,tasks,execution,parallel,dataflow,workflows,distributed
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Environment :: OpenStack
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Intended Audience :: Information Technology
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
15
|
+
Classifier: Programming Language :: Python
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
22
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
24
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
25
|
+
Requires-Python: >=3.9
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: pbr>=2.0.0
|
|
28
|
+
Requires-Dist: debtcollector>=1.2.0
|
|
29
|
+
Requires-Dist: futurist>=1.2.0
|
|
30
|
+
Requires-Dist: fasteners>=0.17.3
|
|
31
|
+
Requires-Dist: networkx>=2.1.0
|
|
32
|
+
Requires-Dist: stevedore>=1.20.0
|
|
33
|
+
Requires-Dist: jsonschema>=3.2.0
|
|
34
|
+
Requires-Dist: automaton>=1.9.0
|
|
35
|
+
Requires-Dist: oslo.utils>=3.33.0
|
|
36
|
+
Requires-Dist: oslo.serialization>=2.18.0
|
|
37
|
+
Requires-Dist: tenacity>=6.0.0
|
|
38
|
+
Requires-Dist: cachetools>=2.0.0
|
|
39
|
+
Requires-Dist: pydot>=1.2.4
|
|
40
|
+
Provides-Extra: zookeeper
|
|
41
|
+
Requires-Dist: kazoo>=2.6.0; extra == "zookeeper"
|
|
42
|
+
Provides-Extra: redis
|
|
43
|
+
Requires-Dist: redis>=4.0.0; extra == "redis"
|
|
44
|
+
Provides-Extra: etcd
|
|
45
|
+
Requires-Dist: etcd3gw>=2.0.0; extra == "etcd"
|
|
46
|
+
Provides-Extra: workers
|
|
47
|
+
Requires-Dist: kombu>=4.3.0; extra == "workers"
|
|
48
|
+
Provides-Extra: eventlet
|
|
49
|
+
Requires-Dist: eventlet>=0.18.2; extra == "eventlet"
|
|
50
|
+
Provides-Extra: database
|
|
51
|
+
Requires-Dist: SQLAlchemy>=1.0.10; extra == "database"
|
|
52
|
+
Requires-Dist: alembic>=0.8.10; extra == "database"
|
|
53
|
+
Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "database"
|
|
54
|
+
Requires-Dist: PyMySQL>=0.7.6; extra == "database"
|
|
55
|
+
Requires-Dist: psycopg2>=2.8.0; extra == "database"
|
|
56
|
+
Provides-Extra: test
|
|
57
|
+
Requires-Dist: kazoo>=2.6.0; extra == "test"
|
|
58
|
+
Requires-Dist: redis>=4.0.0; extra == "test"
|
|
59
|
+
Requires-Dist: etcd3gw>=2.0.0; extra == "test"
|
|
60
|
+
Requires-Dist: kombu>=4.3.0; extra == "test"
|
|
61
|
+
Requires-Dist: eventlet>=0.18.2; extra == "test"
|
|
62
|
+
Requires-Dist: SQLAlchemy>=1.0.10; extra == "test"
|
|
63
|
+
Requires-Dist: alembic>=0.8.10; extra == "test"
|
|
64
|
+
Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "test"
|
|
65
|
+
Requires-Dist: PyMySQL>=0.7.6; extra == "test"
|
|
66
|
+
Requires-Dist: psycopg2>=2.8.0; extra == "test"
|
|
67
|
+
Requires-Dist: zake>=0.1.6; extra == "test"
|
|
68
|
+
Requires-Dist: pydotplus>=2.0.2; extra == "test"
|
|
69
|
+
Requires-Dist: oslotest>=3.2.0; extra == "test"
|
|
70
|
+
Requires-Dist: testtools>=2.2.0; extra == "test"
|
|
71
|
+
Requires-Dist: testscenarios>=0.4; extra == "test"
|
|
72
|
+
Requires-Dist: stestr>=2.0.0; extra == "test"
|
|
73
|
+
Requires-Dist: pifpaf>=0.10.0; extra == "test"
|
|
74
|
+
|
|
75
|
+
========================
|
|
76
|
+
Team and repository tags
|
|
77
|
+
========================
|
|
78
|
+
|
|
79
|
+
.. image:: https://governance.openstack.org/tc/badges/taskflow.svg
|
|
80
|
+
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
|
81
|
+
|
|
82
|
+
.. Change things from this point on
|
|
83
|
+
|
|
84
|
+
TaskFlow
|
|
85
|
+
========
|
|
86
|
+
|
|
87
|
+
.. image:: https://img.shields.io/pypi/v/taskflow.svg
|
|
88
|
+
:target: https://pypi.org/project/taskflow/
|
|
89
|
+
:alt: Latest Version
|
|
90
|
+
|
|
91
|
+
A library to do [jobs, tasks, flows] in a highly available, easy to understand
|
|
92
|
+
and declarative manner (and more!) to be used with OpenStack and other
|
|
93
|
+
projects.
|
|
94
|
+
|
|
95
|
+
* Free software: Apache license
|
|
96
|
+
* Documentation: https://docs.openstack.org/taskflow/latest/
|
|
97
|
+
* Source: https://opendev.org/openstack/taskflow
|
|
98
|
+
* Bugs: https://bugs.launchpad.net/taskflow/
|
|
99
|
+
* Release notes: https://docs.openstack.org/releasenotes/taskflow/
|
|
100
|
+
|
|
101
|
+
Join us
|
|
102
|
+
-------
|
|
103
|
+
|
|
104
|
+
- https://launchpad.net/taskflow
|
|
105
|
+
|
|
106
|
+
Testing and requirements
|
|
107
|
+
------------------------
|
|
108
|
+
|
|
109
|
+
Requirements
|
|
110
|
+
~~~~~~~~~~~~
|
|
111
|
+
|
|
112
|
+
Because this project has many optional (pluggable) parts like persistence
|
|
113
|
+
backends and engines, we decided to split our requirements into two
|
|
114
|
+
parts: - things that are absolutely required (you can't use the project
|
|
115
|
+
without them) are put into ``requirements.txt``. The requirements
|
|
116
|
+
that are required by some optional part of this project (you can use the
|
|
117
|
+
project without them) are put into our ``test-requirements.txt`` file (so
|
|
118
|
+
that we can still test the optional functionality works as expected). If
|
|
119
|
+
you want to use the feature in question (`eventlet`_ or the worker based engine
|
|
120
|
+
that uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
|
|
121
|
+
have an implementation built using `kazoo`_ ...), you should add
|
|
122
|
+
that requirement(s) to your project or environment.
|
|
123
|
+
|
|
124
|
+
Tox.ini
|
|
125
|
+
~~~~~~~
|
|
126
|
+
|
|
127
|
+
Our ``tox.ini`` file describes several test environments that allow to test
|
|
128
|
+
TaskFlow with different python versions and sets of requirements installed.
|
|
129
|
+
Please refer to the `tox`_ documentation to understand how to make these test
|
|
130
|
+
environments work for you.
|
|
131
|
+
|
|
132
|
+
Developer documentation
|
|
133
|
+
-----------------------
|
|
134
|
+
|
|
135
|
+
We also have sphinx documentation in ``docs/source``.
|
|
136
|
+
|
|
137
|
+
*To build it, run:*
|
|
138
|
+
|
|
139
|
+
::
|
|
140
|
+
|
|
141
|
+
$ python setup.py build_sphinx
|
|
142
|
+
|
|
143
|
+
.. _kazoo: https://kazoo.readthedocs.io/en/latest/
|
|
144
|
+
.. _sqlalchemy: https://www.sqlalchemy.org/
|
|
145
|
+
.. _kombu: https://kombu.readthedocs.io/en/latest/
|
|
146
|
+
.. _eventlet: http://eventlet.net/
|
|
147
|
+
.. _tox: https://tox.testrun.org/
|
|
148
|
+
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
.coveragerc
|
|
2
2
|
.mailmap
|
|
3
3
|
.pre-commit-config.yaml
|
|
4
|
+
.pylintrc
|
|
4
5
|
.stestr.conf
|
|
5
6
|
.zuul.yaml
|
|
6
7
|
AUTHORS
|
|
@@ -9,7 +10,6 @@ ChangeLog
|
|
|
9
10
|
LICENSE
|
|
10
11
|
README.rst
|
|
11
12
|
bindep.txt
|
|
12
|
-
pylintrc
|
|
13
13
|
requirements.txt
|
|
14
14
|
run_tests.sh
|
|
15
15
|
setup-etcd-env.sh
|
|
@@ -65,6 +65,7 @@ playbooks/tests/functional/pre.yml
|
|
|
65
65
|
releasenotes/notes/.placeholder
|
|
66
66
|
releasenotes/notes/add-sentinel-redis-support-9fd16e2a5dd5c0c9.yaml
|
|
67
67
|
releasenotes/notes/bug-2056656-871b67ddbc8cfc92.yaml
|
|
68
|
+
releasenotes/notes/deprecate-eventlet-df4a34a7d56acc47.yaml
|
|
68
69
|
releasenotes/notes/disable-process_executor-python-312-d1074c816bc8303e.yaml
|
|
69
70
|
releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml
|
|
70
71
|
releasenotes/notes/etcd-jobboard-backend-8a9fea2238fb0f12.yaml
|
|
@@ -22,4 +22,3 @@ mysql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
|
|
|
22
22
|
postgresql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
|
|
23
23
|
sqlite = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
|
|
24
24
|
zookeeper = taskflow.persistence.backends.impl_zookeeper:ZkBackend
|
|
25
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"git_version": "e41463b1", "is_release": true}
|