taskflow 5.10.0__tar.gz → 5.11.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.
Files changed (356) hide show
  1. {taskflow-5.10.0 → taskflow-5.11.0}/.pre-commit-config.yaml +5 -18
  2. {taskflow-5.10.0 → taskflow-5.11.0}/.zuul.yaml +6 -0
  3. {taskflow-5.10.0 → taskflow-5.11.0}/ChangeLog +18 -0
  4. taskflow-5.11.0/PKG-INFO +147 -0
  5. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/2023.1.rst +1 -1
  6. {taskflow-5.10.0 → taskflow-5.11.0}/setup-etcd-env.sh +1 -1
  7. {taskflow-5.10.0 → taskflow-5.11.0}/setup.cfg +0 -9
  8. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/jobs/test_etcd_job.py +2 -0
  9. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/jobs/test_redis_job.py +2 -1
  10. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_failure.py +2 -5
  11. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/utils.py +7 -6
  12. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/failure.py +2 -6
  13. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/eventlet_utils.py +1 -1
  14. taskflow-5.11.0/taskflow.egg-info/PKG-INFO +147 -0
  15. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow.egg-info/SOURCES.txt +1 -1
  16. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow.egg-info/entry_points.txt +0 -1
  17. taskflow-5.11.0/taskflow.egg-info/pbr.json +1 -0
  18. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow.egg-info/requires.txt +25 -16
  19. {taskflow-5.10.0 → taskflow-5.11.0}/test-requirements.txt +1 -4
  20. {taskflow-5.10.0 → taskflow-5.11.0}/tox.ini +7 -3
  21. taskflow-5.10.0/PKG-INFO +0 -109
  22. taskflow-5.10.0/taskflow.egg-info/PKG-INFO +0 -109
  23. taskflow-5.10.0/taskflow.egg-info/pbr.json +0 -1
  24. {taskflow-5.10.0 → taskflow-5.11.0}/.coveragerc +0 -0
  25. {taskflow-5.10.0 → taskflow-5.11.0}/.mailmap +0 -0
  26. /taskflow-5.10.0/pylintrc → /taskflow-5.11.0/.pylintrc +0 -0
  27. {taskflow-5.10.0 → taskflow-5.11.0}/.stestr.conf +0 -0
  28. {taskflow-5.10.0 → taskflow-5.11.0}/AUTHORS +0 -0
  29. {taskflow-5.10.0 → taskflow-5.11.0}/CONTRIBUTING.rst +0 -0
  30. {taskflow-5.10.0 → taskflow-5.11.0}/LICENSE +0 -0
  31. {taskflow-5.10.0 → taskflow-5.11.0}/README.rst +0 -0
  32. {taskflow-5.10.0 → taskflow-5.11.0}/bindep.txt +0 -0
  33. {taskflow-5.10.0 → taskflow-5.11.0}/doc/diagrams/area_of_influence.graffle.tgz +0 -0
  34. {taskflow-5.10.0 → taskflow-5.11.0}/doc/diagrams/core.graffle.tgz +0 -0
  35. {taskflow-5.10.0 → taskflow-5.11.0}/doc/diagrams/jobboard.graffle.tgz +0 -0
  36. {taskflow-5.10.0 → taskflow-5.11.0}/doc/diagrams/tasks.graffle.tgz +0 -0
  37. {taskflow-5.10.0 → taskflow-5.11.0}/doc/diagrams/worker-engine.graffle.tgz +0 -0
  38. {taskflow-5.10.0 → taskflow-5.11.0}/doc/requirements.txt +0 -0
  39. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/conf.py +0 -0
  40. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/index.rst +0 -0
  41. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/templates/layout.html +0 -0
  42. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/arguments_and_results.rst +0 -0
  43. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/atoms.rst +0 -0
  44. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/conductors.rst +0 -0
  45. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/engines.rst +0 -0
  46. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/examples.rst +0 -0
  47. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/exceptions.rst +0 -0
  48. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/history.rst +0 -0
  49. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/area_of_influence.svg +0 -0
  50. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/conductor.png +0 -0
  51. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/conductor_cycle.png +0 -0
  52. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/distributed_flow_rpc.png +0 -0
  53. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/engine_states.svg +0 -0
  54. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/flow_states.svg +0 -0
  55. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/job_states.svg +0 -0
  56. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/jobboard.png +0 -0
  57. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/mandelbrot.png +0 -0
  58. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/retry_states.svg +0 -0
  59. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/task_states.svg +0 -0
  60. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/tasks.png +0 -0
  61. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/wbe_request_states.svg +0 -0
  62. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/img/worker-engine.svg +0 -0
  63. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/index.rst +0 -0
  64. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/inputs_and_outputs.rst +0 -0
  65. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/jobs.rst +0 -0
  66. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/notifications.rst +0 -0
  67. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/patterns.rst +0 -0
  68. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/persistence.rst +0 -0
  69. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/resumption.rst +0 -0
  70. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/shelf.rst +0 -0
  71. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/states.rst +0 -0
  72. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/types.rst +0 -0
  73. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/utils.rst +0 -0
  74. {taskflow-5.10.0 → taskflow-5.11.0}/doc/source/user/workers.rst +0 -0
  75. {taskflow-5.10.0 → taskflow-5.11.0}/playbooks/tests/functional/Debian.yaml +0 -0
  76. {taskflow-5.10.0 → taskflow-5.11.0}/playbooks/tests/functional/RedHat.yaml +0 -0
  77. {taskflow-5.10.0 → taskflow-5.11.0}/playbooks/tests/functional/pre.yml +0 -0
  78. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/.placeholder +0 -0
  79. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/add-sentinel-redis-support-9fd16e2a5dd5c0c9.yaml +0 -0
  80. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/bug-2056656-871b67ddbc8cfc92.yaml +0 -0
  81. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/disable-process_executor-python-312-d1074c816bc8303e.yaml +0 -0
  82. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml +0 -0
  83. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/etcd-jobboard-backend-8a9fea2238fb0f12.yaml +0 -0
  84. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/fix-endless-loop-on-storage-error-dd4467f0bbc66abf.yaml +0 -0
  85. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/fix-endless-loop-on-storage-failures-b98b30f0c34d25e1.yaml +0 -0
  86. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/fix-revert-all-revert-a0310cd7beaa7409.yaml +0 -0
  87. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/fix-storage-failure-handling-5c115d92daa0eb82.yaml +0 -0
  88. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/fix-zookeeper-option-parsing-f9d37fbc39af47f4.yaml +0 -0
  89. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/redis-username-df0eb33869db09a2.yaml +0 -0
  90. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/remove-py38-15af791146f479e1.yaml +0 -0
  91. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/remove-strict-redis-f2a5a924b314de41.yaml +0 -0
  92. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/sentinel-fallbacks-6fe2ab0d68959cdf.yaml +0 -0
  93. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/sentinel-ssl-399c56ed7067d282.yaml +0 -0
  94. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/sentinel-use-redis-creds-63f58b12ad46a2b5.yaml +0 -0
  95. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/notes/zookeeper-ssl-support-b9abf24a39096b62.yaml +0 -0
  96. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/2023.2.rst +0 -0
  97. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/2024.1.rst +0 -0
  98. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/2024.2.rst +0 -0
  99. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/_static/.placeholder +0 -0
  100. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/_templates/.placeholder +0 -0
  101. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/conf.py +0 -0
  102. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/index.rst +0 -0
  103. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/ocata.rst +0 -0
  104. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/pike.rst +0 -0
  105. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/queens.rst +0 -0
  106. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/rocky.rst +0 -0
  107. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/stein.rst +0 -0
  108. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/train.rst +0 -0
  109. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/unreleased.rst +0 -0
  110. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/ussuri.rst +0 -0
  111. {taskflow-5.10.0 → taskflow-5.11.0}/releasenotes/source/victoria.rst +0 -0
  112. {taskflow-5.10.0 → taskflow-5.11.0}/requirements.txt +0 -0
  113. {taskflow-5.10.0 → taskflow-5.11.0}/run_tests.sh +0 -0
  114. {taskflow-5.10.0 → taskflow-5.11.0}/setup.py +0 -0
  115. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/__init__.py +0 -0
  116. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/atom.py +0 -0
  117. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/conductors/__init__.py +0 -0
  118. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/conductors/backends/__init__.py +0 -0
  119. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/conductors/backends/impl_blocking.py +0 -0
  120. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/conductors/backends/impl_executor.py +0 -0
  121. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/conductors/backends/impl_nonblocking.py +0 -0
  122. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/conductors/base.py +0 -0
  123. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/contrib/__init__.py +0 -0
  124. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/deciders.py +0 -0
  125. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/__init__.py +0 -0
  126. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/__init__.py +0 -0
  127. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/actions/__init__.py +0 -0
  128. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/actions/base.py +0 -0
  129. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/actions/retry.py +0 -0
  130. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/actions/task.py +0 -0
  131. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/builder.py +0 -0
  132. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/compiler.py +0 -0
  133. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/completer.py +0 -0
  134. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/deciders.py +0 -0
  135. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/engine.py +0 -0
  136. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/executor.py +0 -0
  137. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/process_executor.py +0 -0
  138. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/runtime.py +0 -0
  139. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/scheduler.py +0 -0
  140. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/scopes.py +0 -0
  141. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/selector.py +0 -0
  142. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/action_engine/traversal.py +0 -0
  143. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/base.py +0 -0
  144. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/helpers.py +0 -0
  145. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/__init__.py +0 -0
  146. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/dispatcher.py +0 -0
  147. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/endpoint.py +0 -0
  148. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/engine.py +0 -0
  149. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/executor.py +0 -0
  150. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/protocol.py +0 -0
  151. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/proxy.py +0 -0
  152. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/server.py +0 -0
  153. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/types.py +0 -0
  154. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/engines/worker_based/worker.py +0 -0
  155. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/99_bottles.py +0 -0
  156. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/alphabet_soup.py +0 -0
  157. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/build_a_car.py +0 -0
  158. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/buildsystem.py +0 -0
  159. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/calculate_in_parallel.py +0 -0
  160. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/calculate_linear.py +0 -0
  161. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/create_parallel_volume.py +0 -0
  162. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/delayed_return.py +0 -0
  163. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/distance_calculator.py +0 -0
  164. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/dump_memory_backend.py +0 -0
  165. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/echo_listener.py +0 -0
  166. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/example_utils.py +0 -0
  167. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/fake_billing.py +0 -0
  168. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/graph_flow.py +0 -0
  169. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/hello_world.py +0 -0
  170. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/jobboard_produce_consume_colors.py +0 -0
  171. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/parallel_table_multiply.py +0 -0
  172. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/persistence_example.py +0 -0
  173. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/pseudo_scoping.out.txt +0 -0
  174. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/pseudo_scoping.py +0 -0
  175. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_from_backend.out.txt +0 -0
  176. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_from_backend.py +0 -0
  177. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_many_flows/my_flows.py +0 -0
  178. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_many_flows/resume_all.py +0 -0
  179. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_many_flows/run_flow.py +0 -0
  180. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_many_flows.out.txt +0 -0
  181. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_many_flows.py +0 -0
  182. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_vm_boot.py +0 -0
  183. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/resume_volume_create.py +0 -0
  184. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/retry_flow.out.txt +0 -0
  185. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/retry_flow.py +0 -0
  186. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/reverting_linear.out.txt +0 -0
  187. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/reverting_linear.py +0 -0
  188. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/run_by_iter.out.txt +0 -0
  189. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/run_by_iter.py +0 -0
  190. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/run_by_iter_enumerate.out.txt +0 -0
  191. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/run_by_iter_enumerate.py +0 -0
  192. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/share_engine_thread.py +0 -0
  193. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/simple_linear.out.txt +0 -0
  194. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/simple_linear.py +0 -0
  195. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/simple_linear_listening.out.txt +0 -0
  196. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/simple_linear_listening.py +0 -0
  197. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/simple_linear_pass.out.txt +0 -0
  198. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/simple_linear_pass.py +0 -0
  199. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/simple_map_reduce.py +0 -0
  200. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/switch_graph_flow.py +0 -0
  201. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/timing_listener.py +0 -0
  202. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/tox_conductor.py +0 -0
  203. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/wbe_event_sender.py +0 -0
  204. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/wbe_mandelbrot.out.txt +0 -0
  205. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/wbe_mandelbrot.py +0 -0
  206. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/wbe_simple_linear.out.txt +0 -0
  207. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/wbe_simple_linear.py +0 -0
  208. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/examples/wrapped_exception.py +0 -0
  209. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/exceptions.py +0 -0
  210. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/flow.py +0 -0
  211. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/formatters.py +0 -0
  212. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/jobs/__init__.py +0 -0
  213. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/jobs/backends/__init__.py +0 -0
  214. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/jobs/backends/impl_etcd.py +0 -0
  215. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/jobs/backends/impl_redis.py +0 -0
  216. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/jobs/backends/impl_zookeeper.py +0 -0
  217. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/jobs/base.py +0 -0
  218. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/listeners/__init__.py +0 -0
  219. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/listeners/base.py +0 -0
  220. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/listeners/capturing.py +0 -0
  221. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/listeners/claims.py +0 -0
  222. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/listeners/logging.py +0 -0
  223. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/listeners/printing.py +0 -0
  224. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/listeners/timing.py +0 -0
  225. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/logging.py +0 -0
  226. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/patterns/__init__.py +0 -0
  227. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/patterns/graph_flow.py +0 -0
  228. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/patterns/linear_flow.py +0 -0
  229. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/patterns/unordered_flow.py +0 -0
  230. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/__init__.py +0 -0
  231. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/__init__.py +0 -0
  232. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/impl_dir.py +0 -0
  233. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/impl_memory.py +0 -0
  234. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/impl_sqlalchemy.py +0 -0
  235. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/impl_zookeeper.py +0 -0
  236. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/__init__.py +0 -0
  237. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/README +0 -0
  238. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/alembic.ini +0 -0
  239. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/env.py +0 -0
  240. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/script.py.mako +0 -0
  241. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/0bc3e1a3c135_set_result_meduimtext_type.py +0 -0
  242. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/14b227d79a87_add_intention_column.py +0 -0
  243. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/1c783c0c2875_replace_exception_an.py +0 -0
  244. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/1cea328f0f65_initial_logbook_deta.py +0 -0
  245. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/2ad4984f2864_switch_postgres_to_json_native.py +0 -0
  246. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/3162c0f3f8e4_add_revert_results_and_revert_failure_.py +0 -0
  247. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/40fc8c914bd2_fix_atomdetails_failure_size.py +0 -0
  248. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/589dccdf2b6e_rename_taskdetails_to_atomdetails.py +0 -0
  249. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/6df9422fcb43_fix_flowdetails_meta_size.py +0 -0
  250. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/84d6e888850_add_task_detail_type.py +0 -0
  251. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/README +0 -0
  252. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/migration.py +0 -0
  253. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/tables.py +0 -0
  254. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/base.py +0 -0
  255. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/models.py +0 -0
  256. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/persistence/path_based.py +0 -0
  257. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/retry.py +0 -0
  258. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/states.py +0 -0
  259. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/storage.py +0 -0
  260. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/task.py +0 -0
  261. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/test.py +0 -0
  262. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/__init__.py +0 -0
  263. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/fixtures.py +0 -0
  264. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/test_examples.py +0 -0
  265. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/__init__.py +0 -0
  266. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/__init__.py +0 -0
  267. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_builder.py +0 -0
  268. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_compile.py +0 -0
  269. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_creation.py +0 -0
  270. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_process_executor.py +0 -0
  271. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_scoping.py +0 -0
  272. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/jobs/__init__.py +0 -0
  273. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/jobs/base.py +0 -0
  274. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/jobs/test_entrypoint.py +0 -0
  275. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/jobs/test_zk_job.py +0 -0
  276. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/patterns/__init__.py +0 -0
  277. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/patterns/test_graph_flow.py +0 -0
  278. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/patterns/test_linear_flow.py +0 -0
  279. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/patterns/test_unordered_flow.py +0 -0
  280. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/persistence/__init__.py +0 -0
  281. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/persistence/base.py +0 -0
  282. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/persistence/test_dir_persistence.py +0 -0
  283. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/persistence/test_memory_persistence.py +0 -0
  284. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/persistence/test_sql_persistence.py +0 -0
  285. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/persistence/test_zk_persistence.py +0 -0
  286. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_arguments_passing.py +0 -0
  287. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_check_transition.py +0 -0
  288. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_conductors.py +0 -0
  289. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_deciders.py +0 -0
  290. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_engine_helpers.py +0 -0
  291. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_engines.py +0 -0
  292. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_exceptions.py +0 -0
  293. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_flow_dependencies.py +0 -0
  294. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_formatters.py +0 -0
  295. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_functor_task.py +0 -0
  296. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_listeners.py +0 -0
  297. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_mapfunctor_task.py +0 -0
  298. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_notifier.py +0 -0
  299. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_progress.py +0 -0
  300. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_reducefunctor_task.py +0 -0
  301. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_retries.py +0 -0
  302. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_states.py +0 -0
  303. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_storage.py +0 -0
  304. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_suspend.py +0 -0
  305. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_task.py +0 -0
  306. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_types.py +0 -0
  307. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_utils.py +0 -0
  308. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_async_utils.py +0 -0
  309. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_binary.py +0 -0
  310. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_iter_utils.py +0 -0
  311. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_kazoo_utils.py +0 -0
  312. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_threading_utils.py +0 -0
  313. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/__init__.py +0 -0
  314. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_creation.py +0 -0
  315. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_dispatcher.py +0 -0
  316. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_endpoint.py +0 -0
  317. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_executor.py +0 -0
  318. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_message_pump.py +0 -0
  319. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_pipeline.py +0 -0
  320. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_protocol.py +0 -0
  321. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_proxy.py +0 -0
  322. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_server.py +0 -0
  323. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_types.py +0 -0
  324. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_worker.py +0 -0
  325. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/__init__.py +0 -0
  326. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/entity.py +0 -0
  327. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/graph.py +0 -0
  328. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/latch.py +0 -0
  329. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/notifier.py +0 -0
  330. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/sets.py +0 -0
  331. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/timing.py +0 -0
  332. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/types/tree.py +0 -0
  333. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/__init__.py +0 -0
  334. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/async_utils.py +0 -0
  335. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/banner.py +0 -0
  336. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/iter_utils.py +0 -0
  337. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/kazoo_utils.py +0 -0
  338. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/kombu_utils.py +0 -0
  339. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/misc.py +0 -0
  340. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/persistence_utils.py +0 -0
  341. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/redis_utils.py +0 -0
  342. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/schema_utils.py +0 -0
  343. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/utils/threading_utils.py +0 -0
  344. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow/version.py +0 -0
  345. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow.egg-info/dependency_links.txt +0 -0
  346. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow.egg-info/not-zip-safe +0 -0
  347. {taskflow-5.10.0 → taskflow-5.11.0}/taskflow.egg-info/top_level.txt +0 -0
  348. {taskflow-5.10.0 → taskflow-5.11.0}/tools/clear_zk.sh +0 -0
  349. {taskflow-5.10.0 → taskflow-5.11.0}/tools/env_builder.sh +0 -0
  350. {taskflow-5.10.0 → taskflow-5.11.0}/tools/pretty_tox.sh +0 -0
  351. {taskflow-5.10.0 → taskflow-5.11.0}/tools/schema_generator.py +0 -0
  352. {taskflow-5.10.0 → taskflow-5.11.0}/tools/speed_test.py +0 -0
  353. {taskflow-5.10.0 → taskflow-5.11.0}/tools/state_graph.py +0 -0
  354. {taskflow-5.10.0 → taskflow-5.11.0}/tools/subunit_trace.py +0 -0
  355. {taskflow-5.10.0 → taskflow-5.11.0}/tools/test-setup.sh +0 -0
  356. {taskflow-5.10.0 → taskflow-5.11.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: 9136088a246768144165fcc3ecc3d31bb686920a # v3.3.0
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: local
21
+ - repo: https://opendev.org/openstack/hacking
22
+ rev: 7.0.0
31
23
  hooks:
32
- - id: flake8
33
- name: flake8
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)/.*$'
@@ -5,6 +5,12 @@
5
5
  pre-run: playbooks/tests/functional/pre.yml
6
6
  vars:
7
7
  tox_envlist: functional
8
+ irrelevant-files:
9
+ - ^.*\.rst$
10
+ - ^doc/.*$
11
+ - ^LICENSE$
12
+ - ^releasenotes/.*$
13
+ - ^\.pre-commit-config\.yaml$
8
14
 
9
15
  - job:
10
16
  name: taskflow-functional-redis
@@ -1,6 +1,24 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 5.11.0
5
+ ------
6
+
7
+ * Skip installation to speed up pep8
8
+ * fix typo
9
+ * Skip functional jobs for license file update
10
+ * pre-commit: Bump versions
11
+ * Remove "test" extra
12
+ * Sync test requirements
13
+ * Remove zake from runtime dependency
14
+ * Read pifpaf environments to detect service ports
15
+ * Drop unused constants
16
+ * Bump etcd in tests
17
+ * Replace oslo\_utils.encodeutils.exception\_to\_unicode
18
+ * Bump pylint
19
+ * Skip functional tests for doc update
20
+ * reno: Update master for unmaintained/2023.1
21
+
4
22
  5.10.0
5
23
  ------
6
24
 
@@ -0,0 +1,147 @@
1
+ Metadata-Version: 2.1
2
+ Name: taskflow
3
+ Version: 5.11.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: futurist>=1.2.0
29
+ Requires-Dist: fasteners>=0.17.3
30
+ Requires-Dist: networkx>=2.1.0
31
+ Requires-Dist: stevedore>=1.20.0
32
+ Requires-Dist: jsonschema>=3.2.0
33
+ Requires-Dist: automaton>=1.9.0
34
+ Requires-Dist: oslo.utils>=3.33.0
35
+ Requires-Dist: oslo.serialization>=2.18.0
36
+ Requires-Dist: tenacity>=6.0.0
37
+ Requires-Dist: cachetools>=2.0.0
38
+ Requires-Dist: pydot>=1.2.4
39
+ Provides-Extra: zookeeper
40
+ Requires-Dist: kazoo>=2.6.0; extra == "zookeeper"
41
+ Provides-Extra: redis
42
+ Requires-Dist: redis>=4.0.0; extra == "redis"
43
+ Provides-Extra: etcd
44
+ Requires-Dist: etcd3gw>=2.0.0; extra == "etcd"
45
+ Provides-Extra: workers
46
+ Requires-Dist: kombu>=4.3.0; extra == "workers"
47
+ Provides-Extra: eventlet
48
+ Requires-Dist: eventlet>=0.18.2; extra == "eventlet"
49
+ Provides-Extra: database
50
+ Requires-Dist: SQLAlchemy>=1.0.10; extra == "database"
51
+ Requires-Dist: alembic>=0.8.10; extra == "database"
52
+ Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "database"
53
+ Requires-Dist: PyMySQL>=0.7.6; extra == "database"
54
+ Requires-Dist: psycopg2>=2.8.0; extra == "database"
55
+ Provides-Extra: test
56
+ Requires-Dist: kazoo>=2.6.0; extra == "test"
57
+ Requires-Dist: redis>=4.0.0; extra == "test"
58
+ Requires-Dist: etcd3gw>=2.0.0; extra == "test"
59
+ Requires-Dist: kombu>=4.3.0; extra == "test"
60
+ Requires-Dist: eventlet>=0.18.2; extra == "test"
61
+ Requires-Dist: SQLAlchemy>=1.0.10; extra == "test"
62
+ Requires-Dist: alembic>=0.8.10; extra == "test"
63
+ Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "test"
64
+ Requires-Dist: PyMySQL>=0.7.6; extra == "test"
65
+ Requires-Dist: psycopg2>=2.8.0; extra == "test"
66
+ Requires-Dist: zake>=0.1.6; extra == "test"
67
+ Requires-Dist: pydotplus>=2.0.2; extra == "test"
68
+ Requires-Dist: oslotest>=3.2.0; extra == "test"
69
+ Requires-Dist: testtools>=2.2.0; extra == "test"
70
+ Requires-Dist: testscenarios>=0.4; extra == "test"
71
+ Requires-Dist: stestr>=2.0.0; extra == "test"
72
+ Requires-Dist: pifpaf>=0.10.0; extra == "test"
73
+
74
+ ========================
75
+ Team and repository tags
76
+ ========================
77
+
78
+ .. image:: https://governance.openstack.org/tc/badges/taskflow.svg
79
+ :target: https://governance.openstack.org/tc/reference/tags/index.html
80
+
81
+ .. Change things from this point on
82
+
83
+ TaskFlow
84
+ ========
85
+
86
+ .. image:: https://img.shields.io/pypi/v/taskflow.svg
87
+ :target: https://pypi.org/project/taskflow/
88
+ :alt: Latest Version
89
+
90
+ A library to do [jobs, tasks, flows] in a highly available, easy to understand
91
+ and declarative manner (and more!) to be used with OpenStack and other
92
+ projects.
93
+
94
+ * Free software: Apache license
95
+ * Documentation: https://docs.openstack.org/taskflow/latest/
96
+ * Source: https://opendev.org/openstack/taskflow
97
+ * Bugs: https://bugs.launchpad.net/taskflow/
98
+ * Release notes: https://docs.openstack.org/releasenotes/taskflow/
99
+
100
+ Join us
101
+ -------
102
+
103
+ - https://launchpad.net/taskflow
104
+
105
+ Testing and requirements
106
+ ------------------------
107
+
108
+ Requirements
109
+ ~~~~~~~~~~~~
110
+
111
+ Because this project has many optional (pluggable) parts like persistence
112
+ backends and engines, we decided to split our requirements into two
113
+ parts: - things that are absolutely required (you can't use the project
114
+ without them) are put into ``requirements.txt``. The requirements
115
+ that are required by some optional part of this project (you can use the
116
+ project without them) are put into our ``test-requirements.txt`` file (so
117
+ that we can still test the optional functionality works as expected). If
118
+ you want to use the feature in question (`eventlet`_ or the worker based engine
119
+ that uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
120
+ have an implementation built using `kazoo`_ ...), you should add
121
+ that requirement(s) to your project or environment.
122
+
123
+ Tox.ini
124
+ ~~~~~~~
125
+
126
+ Our ``tox.ini`` file describes several test environments that allow to test
127
+ TaskFlow with different python versions and sets of requirements installed.
128
+ Please refer to the `tox`_ documentation to understand how to make these test
129
+ environments work for you.
130
+
131
+ Developer documentation
132
+ -----------------------
133
+
134
+ We also have sphinx documentation in ``docs/source``.
135
+
136
+ *To build it, run:*
137
+
138
+ ::
139
+
140
+ $ python setup.py build_sphinx
141
+
142
+ .. _kazoo: https://kazoo.readthedocs.io/en/latest/
143
+ .. _sqlalchemy: https://www.sqlalchemy.org/
144
+ .. _kombu: https://kombu.readthedocs.io/en/latest/
145
+ .. _eventlet: http://eventlet.net/
146
+ .. _tox: https://tox.testrun.org/
147
+
@@ -3,4 +3,4 @@
3
3
  ===========================
4
4
 
5
5
  .. release-notes::
6
- :branch: stable/2023.1
6
+ :branch: unmaintained/2023.1
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
  set -eux
3
3
  if [ -z "$(which etcd)" ]; then
4
- ETCD_VERSION=3.3.27
4
+ ETCD_VERSION=3.4.27
5
5
  case `uname -s` in
6
6
  Darwin)
7
7
  OS=darwin
@@ -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(encodeutils.exception_to_unicode(excp),
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, encodeutils.exception_to_unicode(fail))
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
- ARGS_KEY = '__args__'
36
- KWARGS_KEY = '__kwargs__'
37
- ORDER_KEY = '__order__'
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:2181"],
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
- _exception_message(ei1[1]) == _exception_message(ei2[1]),
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 = _exception_message(self._exc_info[1])
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)
@@ -29,6 +29,6 @@ def check_for_eventlet(exc=None):
29
29
  """
30
30
  if not EVENTLET_AVAILABLE:
31
31
  if exc is None:
32
- raise RuntimeError('Eventlet is not current available')
32
+ raise RuntimeError('Eventlet is not currently available')
33
33
  else:
34
34
  raise exc
@@ -0,0 +1,147 @@
1
+ Metadata-Version: 2.1
2
+ Name: taskflow
3
+ Version: 5.11.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: futurist>=1.2.0
29
+ Requires-Dist: fasteners>=0.17.3
30
+ Requires-Dist: networkx>=2.1.0
31
+ Requires-Dist: stevedore>=1.20.0
32
+ Requires-Dist: jsonschema>=3.2.0
33
+ Requires-Dist: automaton>=1.9.0
34
+ Requires-Dist: oslo.utils>=3.33.0
35
+ Requires-Dist: oslo.serialization>=2.18.0
36
+ Requires-Dist: tenacity>=6.0.0
37
+ Requires-Dist: cachetools>=2.0.0
38
+ Requires-Dist: pydot>=1.2.4
39
+ Provides-Extra: zookeeper
40
+ Requires-Dist: kazoo>=2.6.0; extra == "zookeeper"
41
+ Provides-Extra: redis
42
+ Requires-Dist: redis>=4.0.0; extra == "redis"
43
+ Provides-Extra: etcd
44
+ Requires-Dist: etcd3gw>=2.0.0; extra == "etcd"
45
+ Provides-Extra: workers
46
+ Requires-Dist: kombu>=4.3.0; extra == "workers"
47
+ Provides-Extra: eventlet
48
+ Requires-Dist: eventlet>=0.18.2; extra == "eventlet"
49
+ Provides-Extra: database
50
+ Requires-Dist: SQLAlchemy>=1.0.10; extra == "database"
51
+ Requires-Dist: alembic>=0.8.10; extra == "database"
52
+ Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "database"
53
+ Requires-Dist: PyMySQL>=0.7.6; extra == "database"
54
+ Requires-Dist: psycopg2>=2.8.0; extra == "database"
55
+ Provides-Extra: test
56
+ Requires-Dist: kazoo>=2.6.0; extra == "test"
57
+ Requires-Dist: redis>=4.0.0; extra == "test"
58
+ Requires-Dist: etcd3gw>=2.0.0; extra == "test"
59
+ Requires-Dist: kombu>=4.3.0; extra == "test"
60
+ Requires-Dist: eventlet>=0.18.2; extra == "test"
61
+ Requires-Dist: SQLAlchemy>=1.0.10; extra == "test"
62
+ Requires-Dist: alembic>=0.8.10; extra == "test"
63
+ Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "test"
64
+ Requires-Dist: PyMySQL>=0.7.6; extra == "test"
65
+ Requires-Dist: psycopg2>=2.8.0; extra == "test"
66
+ Requires-Dist: zake>=0.1.6; extra == "test"
67
+ Requires-Dist: pydotplus>=2.0.2; extra == "test"
68
+ Requires-Dist: oslotest>=3.2.0; extra == "test"
69
+ Requires-Dist: testtools>=2.2.0; extra == "test"
70
+ Requires-Dist: testscenarios>=0.4; extra == "test"
71
+ Requires-Dist: stestr>=2.0.0; extra == "test"
72
+ Requires-Dist: pifpaf>=0.10.0; extra == "test"
73
+
74
+ ========================
75
+ Team and repository tags
76
+ ========================
77
+
78
+ .. image:: https://governance.openstack.org/tc/badges/taskflow.svg
79
+ :target: https://governance.openstack.org/tc/reference/tags/index.html
80
+
81
+ .. Change things from this point on
82
+
83
+ TaskFlow
84
+ ========
85
+
86
+ .. image:: https://img.shields.io/pypi/v/taskflow.svg
87
+ :target: https://pypi.org/project/taskflow/
88
+ :alt: Latest Version
89
+
90
+ A library to do [jobs, tasks, flows] in a highly available, easy to understand
91
+ and declarative manner (and more!) to be used with OpenStack and other
92
+ projects.
93
+
94
+ * Free software: Apache license
95
+ * Documentation: https://docs.openstack.org/taskflow/latest/
96
+ * Source: https://opendev.org/openstack/taskflow
97
+ * Bugs: https://bugs.launchpad.net/taskflow/
98
+ * Release notes: https://docs.openstack.org/releasenotes/taskflow/
99
+
100
+ Join us
101
+ -------
102
+
103
+ - https://launchpad.net/taskflow
104
+
105
+ Testing and requirements
106
+ ------------------------
107
+
108
+ Requirements
109
+ ~~~~~~~~~~~~
110
+
111
+ Because this project has many optional (pluggable) parts like persistence
112
+ backends and engines, we decided to split our requirements into two
113
+ parts: - things that are absolutely required (you can't use the project
114
+ without them) are put into ``requirements.txt``. The requirements
115
+ that are required by some optional part of this project (you can use the
116
+ project without them) are put into our ``test-requirements.txt`` file (so
117
+ that we can still test the optional functionality works as expected). If
118
+ you want to use the feature in question (`eventlet`_ or the worker based engine
119
+ that uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
120
+ have an implementation built using `kazoo`_ ...), you should add
121
+ that requirement(s) to your project or environment.
122
+
123
+ Tox.ini
124
+ ~~~~~~~
125
+
126
+ Our ``tox.ini`` file describes several test environments that allow to test
127
+ TaskFlow with different python versions and sets of requirements installed.
128
+ Please refer to the `tox`_ documentation to understand how to make these test
129
+ environments work for you.
130
+
131
+ Developer documentation
132
+ -----------------------
133
+
134
+ We also have sphinx documentation in ``docs/source``.
135
+
136
+ *To build it, run:*
137
+
138
+ ::
139
+
140
+ $ python setup.py build_sphinx
141
+
142
+ .. _kazoo: https://kazoo.readthedocs.io/en/latest/
143
+ .. _sqlalchemy: https://www.sqlalchemy.org/
144
+ .. _kombu: https://kombu.readthedocs.io/en/latest/
145
+ .. _eventlet: http://eventlet.net/
146
+ .. _tox: https://tox.testrun.org/
147
+
@@ -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
@@ -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": "3d0a7efb", "is_release": true}
@@ -1,21 +1,21 @@
1
- automaton>=1.9.0
2
- cachetools>=2.0.0
3
- fasteners>=0.17.3
1
+ pbr>=2.0.0
4
2
  futurist>=1.2.0
5
- jsonschema>=3.2.0
3
+ fasteners>=0.17.3
6
4
  networkx>=2.1.0
7
- oslo.serialization>=2.18.0
8
- oslo.utils>=3.33.0
9
- pbr>=2.0.0
10
- pydot>=1.2.4
11
5
  stevedore>=1.20.0
6
+ jsonschema>=3.2.0
7
+ automaton>=1.9.0
8
+ oslo.utils>=3.33.0
9
+ oslo.serialization>=2.18.0
12
10
  tenacity>=6.0.0
11
+ cachetools>=2.0.0
12
+ pydot>=1.2.4
13
13
 
14
14
  [database]
15
- PyMySQL>=0.7.6
16
- SQLAlchemy-Utils>=0.30.11
17
15
  SQLAlchemy>=1.0.10
18
16
  alembic>=0.8.10
17
+ SQLAlchemy-Utils>=0.30.11
18
+ PyMySQL>=0.7.6
19
19
  psycopg2>=2.8.0
20
20
 
21
21
  [etcd]
@@ -28,17 +28,26 @@ eventlet>=0.18.2
28
28
  redis>=4.0.0
29
29
 
30
30
  [test]
31
- hacking<0.11,>=0.10.0
32
- mock>=2.0.0
33
- oslotest>=3.2.0
31
+ kazoo>=2.6.0
32
+ redis>=4.0.0
33
+ etcd3gw>=2.0.0
34
+ kombu>=4.3.0
35
+ eventlet>=0.18.2
36
+ SQLAlchemy>=1.0.10
37
+ alembic>=0.8.10
38
+ SQLAlchemy-Utils>=0.30.11
39
+ PyMySQL>=0.7.6
40
+ psycopg2>=2.8.0
41
+ zake>=0.1.6
34
42
  pydotplus>=2.0.2
35
- stestr>=2.0.0
36
- testscenarios>=0.4
43
+ oslotest>=3.2.0
37
44
  testtools>=2.2.0
45
+ testscenarios>=0.4
46
+ stestr>=2.0.0
47
+ pifpaf>=0.10.0
38
48
 
39
49
  [workers]
40
50
  kombu>=4.3.0
41
51
 
42
52
  [zookeeper]
43
53
  kazoo>=2.6.0
44
- zake>=0.1.6
@@ -4,7 +4,6 @@
4
4
 
5
5
  # zookeeper
6
6
  kazoo>=2.6.0 # Apache-2.0
7
- zake>=0.1.6 # Apache-2.0
8
7
 
9
8
  # redis
10
9
  redis>=4.0.0 # MIT
@@ -26,12 +25,10 @@ PyMySQL>=0.7.6 # MIT License
26
25
  psycopg2>=2.8.0 # LGPL/ZPL
27
26
 
28
27
  # test
28
+ zake>=0.1.6 # Apache-2.0
29
29
  pydotplus>=2.0.2 # MIT License
30
- hacking<6.2.0,>=6.1.0
31
30
  oslotest>=3.2.0 # Apache-2.0
32
31
  testtools>=2.2.0 # MIT
33
32
  testscenarios>=0.4 # Apache-2.0/BSD
34
33
  stestr>=2.0.0 # Apache-2.0
35
34
  pifpaf>=0.10.0 # Apache-2.0
36
-
37
- pre-commit>=2.6.0 # MIT