We are pleased to announce the release of: taskflow 6.0.0 This release is part of the flamingo release series. The source is available from: https://opendev.org/openstack/taskflow Download the package from: https://pypi.org/project/taskflow Please report issues through: https://bugs.launchpad.net/taskflow/+bugs For more details, please see below. 6.0.0 ^^^^^ New Features ************ * Added "mask_inputs_keys" and "mask_outputs_keys" parameters to the constructors for "FailureFormatter" and "DynamicLoggingListener" that can be used to mask sensitive information from the "requires" and "provides" fields respectively when logging a atom. Upgrade Notes ************* * Process executor was removed. Changes in taskflow 5.12.0..6.0.0 --------------------------------- 5a5def4d add pyproject.toml to support pip 23.1 8391defe Add release note for mask keys a5b7323f Add mask keys parameters to failure logging 80e1aadc Run pyupgrade to clean up Python 2 syntaxes e3be5c3b redis: Omit ssl options when ssl is disabled eaf4bdce Skip functional tests for .gitreview update 1e8eac4d Remove process executor 44b2aadd Keep taskflow doc job on Ubuntu Jammy bd025444 Update master for stable/2025.1 c56d9671 Use oslo.utils implementation to parse sentinel address 72df15e6 Sets indexes for all tables in taskflow as unique Diffstat (except docs and test files) ------------------------------------- .pre-commit-config.yaml | 5 + .zuul.yaml | 1 + pyproject.toml | 3 + releasenotes/notes/mask-keys-74b9bb5c420d8091.yaml | 7 + .../remove-process_executor-f59d40a5dd287cd7.yaml | 4 + releasenotes/source/2025.1.rst | 6 + releasenotes/source/conf.py | 1 - releasenotes/source/index.rst | 1 + taskflow/atom.py | 8 +- taskflow/conductors/backends/__init__.py | 2 - taskflow/conductors/backends/impl_blocking.py | 4 +- taskflow/conductors/backends/impl_executor.py | 9 +- taskflow/conductors/backends/impl_nonblocking.py | 4 +- taskflow/conductors/base.py | 4 +- taskflow/deciders.py | 2 - taskflow/engines/__init__.py | 2 - taskflow/engines/action_engine/actions/base.py | 4 +- taskflow/engines/action_engine/actions/retry.py | 4 +- taskflow/engines/action_engine/actions/task.py | 4 +- taskflow/engines/action_engine/builder.py | 6 +- taskflow/engines/action_engine/compiler.py | 20 +- taskflow/engines/action_engine/completer.py | 12 +- taskflow/engines/action_engine/deciders.py | 4 +- taskflow/engines/action_engine/engine.py | 30 +- taskflow/engines/action_engine/executor.py | 6 +- taskflow/engines/action_engine/process_executor.py | 720 --------------------- taskflow/engines/action_engine/runtime.py | 4 +- taskflow/engines/action_engine/scheduler.py | 8 +- taskflow/engines/action_engine/scopes.py | 8 +- taskflow/engines/action_engine/selector.py | 4 +- taskflow/engines/action_engine/traversal.py | 2 - taskflow/engines/base.py | 4 +- taskflow/engines/helpers.py | 2 - taskflow/engines/worker_based/dispatcher.py | 6 +- taskflow/engines/worker_based/endpoint.py | 4 +- taskflow/engines/worker_based/engine.py | 5 +- taskflow/engines/worker_based/executor.py | 2 - taskflow/engines/worker_based/protocol.py | 4 +- taskflow/engines/worker_based/proxy.py | 6 +- taskflow/engines/worker_based/server.py | 8 +- taskflow/engines/worker_based/types.py | 13 +- taskflow/engines/worker_based/worker.py | 10 +- taskflow/examples/99_bottles.py | 2 - taskflow/examples/alphabet_soup.py | 2 - taskflow/examples/build_a_car.py | 4 +- taskflow/examples/buildsystem.py | 4 +- taskflow/examples/calculate_in_parallel.py | 4 +- taskflow/examples/calculate_linear.py | 8 +- taskflow/examples/create_parallel_volume.py | 7 +- taskflow/examples/delayed_return.py | 4 +- taskflow/examples/distance_calculator.py | 36 +- taskflow/examples/dump_memory_backend.py | 4 +- taskflow/examples/echo_listener.py | 2 - taskflow/examples/example_utils.py | 4 +- taskflow/examples/fake_billing.py | 20 +- taskflow/examples/graph_flow.py | 6 +- taskflow/examples/hello_world.py | 6 +- .../examples/jobboard_produce_consume_colors.py | 8 +- taskflow/examples/parallel_table_multiply.py | 4 +- taskflow/examples/persistence_example.py | 4 +- taskflow/examples/pseudo_scoping.py | 6 +- taskflow/examples/resume_from_backend.py | 4 +- taskflow/examples/resume_many_flows.py | 2 - taskflow/examples/resume_many_flows/my_flows.py | 2 - taskflow/examples/resume_many_flows/resume_all.py | 4 +- taskflow/examples/resume_many_flows/run_flow.py | 6 +- taskflow/examples/resume_vm_boot.py | 27 +- taskflow/examples/resume_volume_create.py | 8 +- taskflow/examples/retry_flow.py | 2 - taskflow/examples/reverting_linear.py | 4 +- taskflow/examples/run_by_iter.py | 2 - taskflow/examples/run_by_iter_enumerate.py | 4 +- taskflow/examples/share_engine_thread.py | 6 +- taskflow/examples/simple_linear.py | 2 - taskflow/examples/simple_linear_listening.py | 4 +- taskflow/examples/simple_linear_pass.py | 2 - taskflow/examples/simple_map_reduce.py | 2 - taskflow/examples/switch_graph_flow.py | 4 +- taskflow/examples/timing_listener.py | 4 +- taskflow/examples/tox_conductor.py | 8 +- taskflow/examples/wbe_event_sender.py | 2 - taskflow/examples/wbe_mandelbrot.py | 2 - taskflow/examples/wbe_simple_linear.py | 2 - taskflow/examples/wrapped_exception.py | 2 - taskflow/exceptions.py | 16 +- taskflow/flow.py | 4 +- taskflow/formatters.py | 30 +- taskflow/jobs/backends/__init__.py | 2 - taskflow/jobs/backends/impl_redis.py | 40 +- taskflow/jobs/backends/impl_zookeeper.py | 15 +- taskflow/jobs/base.py | 12 +- taskflow/listeners/base.py | 4 +- taskflow/listeners/capturing.py | 4 +- taskflow/listeners/claims.py | 4 +- taskflow/listeners/logging.py | 16 +- taskflow/listeners/printing.py | 4 +- taskflow/listeners/timing.py | 23 +- taskflow/logging.py | 2 - taskflow/patterns/graph_flow.py | 6 +- taskflow/patterns/linear_flow.py | 13 +- taskflow/patterns/unordered_flow.py | 13 +- taskflow/persistence/backends/__init__.py | 4 +- taskflow/persistence/backends/impl_dir.py | 9 +- taskflow/persistence/backends/impl_memory.py | 15 +- taskflow/persistence/backends/impl_sqlalchemy.py | 10 +- taskflow/persistence/backends/impl_zookeeper.py | 6 +- .../persistence/backends/sqlalchemy/alembic/env.py | 2 - .../00af93df9d77_add_unique_into_all_indexes.py | 80 +++ .../versions/14b227d79a87_add_intention_column.py | 2 - .../versions/1c783c0c2875_replace_exception_an.py | 2 - .../versions/1cea328f0f65_initial_logbook_deta.py | 2 - .../2ad4984f2864_switch_postgres_to_json_native.py | 2 - ...3f8e4_add_revert_results_and_revert_failure_.py | 2 - ...9dccdf2b6e_rename_taskdetails_to_atomdetails.py | 2 - .../versions/84d6e888850_add_task_detail_type.py | 2 - taskflow/persistence/backends/sqlalchemy/tables.py | 2 - taskflow/persistence/base.py | 6 +- taskflow/persistence/models.py | 43 +- taskflow/persistence/path_based.py | 4 +- taskflow/retry.py | 30 +- taskflow/states.py | 2 - taskflow/storage.py | 20 +- taskflow/task.py | 33 +- taskflow/test.py | 10 +- .../unit/action_engine/test_process_executor.py | 106 --- .../unit/persistence/test_memory_persistence.py | 6 +- taskflow/types/entity.py | 4 +- taskflow/types/failure.py | 9 +- taskflow/types/graph.py | 32 +- taskflow/types/latch.py | 4 +- taskflow/types/notifier.py | 15 +- taskflow/types/sets.py | 7 +- taskflow/types/timing.py | 4 +- taskflow/types/tree.py | 16 +- taskflow/utils/async_utils.py | 2 - taskflow/utils/banner.py | 17 +- taskflow/utils/eventlet_utils.py | 2 - taskflow/utils/iter_utils.py | 2 - taskflow/utils/kazoo_utils.py | 16 +- taskflow/utils/kombu_utils.py | 12 +- taskflow/utils/misc.py | 10 +- taskflow/utils/persistence_utils.py | 2 - taskflow/utils/redis_utils.py | 6 +- taskflow/utils/schema_utils.py | 2 - taskflow/utils/threading_utils.py | 4 +- taskflow/version.py | 4 +- tools/speed_test.py | 4 +- tools/state_graph.py | 4 +- tools/subunit_trace.py | 18 +- 207 files changed, 750 insertions(+), 2042 deletions(-)
participants (1)
-
no-reply@openstack.org