conductor-python 1.1.4__tar.gz → 1.1.6__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 (204) hide show
  1. conductor_python-1.1.6/PKG-INFO +271 -0
  2. conductor_python-1.1.6/README.md +244 -0
  3. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/__init__.py +1 -0
  4. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_status.py +18 -0
  5. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_task.py +49 -8
  6. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/conductor_workflow.py +22 -1
  7. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/do_while_task.py +13 -1
  8. conductor_python-1.1.6/src/conductor/client/workflow/task/http_poll_task.py +76 -0
  9. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/http_task.py +0 -2
  10. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/join_task.py +4 -1
  11. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/task.py +38 -3
  12. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/task_type.py +1 -0
  13. conductor_python-1.1.6/src/conductor_python.egg-info/PKG-INFO +271 -0
  14. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor_python.egg-info/SOURCES.txt +1 -0
  15. conductor-python-1.1.4/PKG-INFO +0 -226
  16. conductor-python-1.1.4/README.md +0 -199
  17. conductor-python-1.1.4/src/conductor_python.egg-info/PKG-INFO +0 -226
  18. {conductor-python-1.1.4 → conductor_python-1.1.6}/LICENSE +0 -0
  19. {conductor-python-1.1.4 → conductor_python-1.1.6}/setup.cfg +0 -0
  20. {conductor-python-1.1.4 → conductor_python-1.1.6}/setup.py +0 -0
  21. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/__init__.py +0 -0
  22. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/__init__.py +0 -0
  23. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/ai/__init__.py +0 -0
  24. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/ai/configuration.py +0 -0
  25. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/ai/integrations.py +0 -0
  26. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/ai/orchestrator.py +0 -0
  27. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/authorization_client.py +0 -0
  28. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/automator/__init__.py +0 -0
  29. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/automator/task_handler.py +0 -0
  30. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/automator/task_runner.py +0 -0
  31. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/automator/utils.py +0 -0
  32. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/configuration/__init__.py +0 -0
  33. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/configuration/configuration.py +0 -0
  34. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/configuration/settings/__init__.py +0 -0
  35. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/configuration/settings/authentication_settings.py +0 -0
  36. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/configuration/settings/metrics_settings.py +0 -0
  37. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/event/__init__.py +0 -0
  38. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/event/event_client.py +0 -0
  39. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/event/queue/__init__.py +0 -0
  40. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/event/queue/kafka_queue_configuration.py +0 -0
  41. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/event/queue/queue_configuration.py +0 -0
  42. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/event/queue/queue_worker_configuration.py +0 -0
  43. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/exceptions/__init__.py +0 -0
  44. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/exceptions/api_error.py +0 -0
  45. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/exceptions/api_exception_handler.py +0 -0
  46. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/helpers/__init__.py +0 -0
  47. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/helpers/helper.py +0 -0
  48. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/__init__.py +0 -0
  49. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/__init__.py +0 -0
  50. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/application_resource_api.py +0 -0
  51. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/authorization_resource_api.py +0 -0
  52. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/event_resource_api.py +0 -0
  53. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/group_resource_api.py +0 -0
  54. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/integration_resource_api.py +0 -0
  55. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/metadata_resource_api.py +0 -0
  56. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/prompt_resource_api.py +0 -0
  57. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/scheduler_resource_api.py +0 -0
  58. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/secret_resource_api.py +0 -0
  59. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/task_resource_api.py +0 -0
  60. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/token_resource_api.py +0 -0
  61. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/user_resource_api.py +0 -0
  62. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/workflow_bulk_resource_api.py +0 -0
  63. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api/workflow_resource_api.py +0 -0
  64. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/api_client.py +0 -0
  65. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/action.py +0 -0
  66. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/authorization_request.py +0 -0
  67. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/bulk_response.py +0 -0
  68. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/conductor_application.py +0 -0
  69. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/conductor_user.py +0 -0
  70. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/correlation_ids_search_request.py +0 -0
  71. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/create_or_update_application_request.py +0 -0
  72. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/event_handler.py +0 -0
  73. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/external_storage_location.py +0 -0
  74. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/generate_token_request.py +0 -0
  75. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/group.py +0 -0
  76. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/health.py +0 -0
  77. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/health_check_status.py +0 -0
  78. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/integration.py +0 -0
  79. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/integration_api.py +0 -0
  80. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/integration_api_update.py +0 -0
  81. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/integration_def.py +0 -0
  82. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/integration_update.py +0 -0
  83. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/permission.py +0 -0
  84. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/poll_data.py +0 -0
  85. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/prompt_template.py +0 -0
  86. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/prompt_test_request.py +0 -0
  87. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/rate_limit.py +0 -0
  88. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/rerun_workflow_request.py +0 -0
  89. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/response.py +0 -0
  90. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/role.py +0 -0
  91. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/save_schedule_request.py +0 -0
  92. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/scrollable_search_result_workflow_summary.py +0 -0
  93. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/search_result_task.py +0 -0
  94. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/search_result_task_summary.py +0 -0
  95. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/search_result_workflow.py +0 -0
  96. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/search_result_workflow_schedule_execution_model.py +0 -0
  97. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/search_result_workflow_summary.py +0 -0
  98. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/skip_task_request.py +0 -0
  99. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/start_workflow.py +0 -0
  100. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/start_workflow_request.py +0 -0
  101. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/state_change_event.py +0 -0
  102. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/sub_workflow_params.py +0 -0
  103. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/subject_ref.py +0 -0
  104. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/tag_object.py +0 -0
  105. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/tag_string.py +0 -0
  106. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/target_ref.py +0 -0
  107. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/task.py +0 -0
  108. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/task_def.py +0 -0
  109. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/task_details.py +0 -0
  110. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/task_exec_log.py +0 -0
  111. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/task_result.py +0 -0
  112. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/task_result_status.py +0 -0
  113. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/task_summary.py +0 -0
  114. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/token.py +0 -0
  115. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/upsert_group_request.py +0 -0
  116. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/upsert_user_request.py +0 -0
  117. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow.py +0 -0
  118. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_def.py +0 -0
  119. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_run.py +0 -0
  120. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_schedule.py +0 -0
  121. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_schedule_execution_model.py +0 -0
  122. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_state_update.py +0 -0
  123. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_summary.py +0 -0
  124. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_tag.py +0 -0
  125. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/models/workflow_test_request.py +0 -0
  126. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/rest.py +0 -0
  127. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/http/thread.py +0 -0
  128. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/integration_client.py +0 -0
  129. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/metadata_client.py +0 -0
  130. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/__init__.py +0 -0
  131. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/api/__init__.py +0 -0
  132. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/api/tags_api.py +0 -0
  133. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/models/__init__.py +0 -0
  134. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/models/access_key.py +0 -0
  135. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/models/access_key_status.py +0 -0
  136. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/models/access_type.py +0 -0
  137. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/models/created_access_key.py +0 -0
  138. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/models/granted_permission.py +0 -0
  139. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/models/metadata_tag.py +0 -0
  140. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/models/ratelimit_tag.py +0 -0
  141. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_authorization_client.py +0 -0
  142. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_base_client.py +0 -0
  143. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_integration_client.py +0 -0
  144. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_metadata_client.py +0 -0
  145. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_prompt_client.py +0 -0
  146. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_scheduler_client.py +0 -0
  147. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_secret_client.py +0 -0
  148. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_task_client.py +0 -0
  149. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes/orkes_workflow_client.py +0 -0
  150. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/orkes_clients.py +0 -0
  151. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/prompt_client.py +0 -0
  152. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/scheduler_client.py +0 -0
  153. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/secret_client.py +0 -0
  154. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/task_client.py +0 -0
  155. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/telemetry/__init__.py +0 -0
  156. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/telemetry/metrics_collector.py +0 -0
  157. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/telemetry/model/__init__.py +0 -0
  158. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/telemetry/model/metric_documentation.py +0 -0
  159. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/telemetry/model/metric_label.py +0 -0
  160. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/telemetry/model/metric_name.py +0 -0
  161. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/worker/__init__.py +0 -0
  162. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/worker/exception.py +0 -0
  163. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/worker/worker.py +0 -0
  164. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/worker/worker_interface.py +0 -0
  165. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/worker/worker_task.py +0 -0
  166. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/__init__.py +0 -0
  167. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/executor/__init__.py +0 -0
  168. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/executor/workflow_executor.py +0 -0
  169. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/__init__.py +0 -0
  170. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/dynamic_fork_task.py +0 -0
  171. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/dynamic_task.py +0 -0
  172. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/event_task.py +0 -0
  173. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/fork_task.py +0 -0
  174. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/get_document.py +0 -0
  175. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/human_task.py +0 -0
  176. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/inline.py +0 -0
  177. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/javascript_task.py +0 -0
  178. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/json_jq_task.py +0 -0
  179. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/kafka_publish.py +0 -0
  180. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/kafka_publish_input.py +0 -0
  181. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/__init__.py +0 -0
  182. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/llm_chat_complete.py +0 -0
  183. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/llm_generate_embeddings.py +0 -0
  184. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/llm_index_documents.py +0 -0
  185. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/llm_index_text.py +0 -0
  186. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/llm_query_embeddings.py +0 -0
  187. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/llm_search_index.py +0 -0
  188. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/llm_text_complete.py +0 -0
  189. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/utils/__init__.py +0 -0
  190. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/utils/embedding_model.py +0 -0
  191. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/llm_tasks/utils/prompt.py +0 -0
  192. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/set_variable_task.py +0 -0
  193. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/simple_task.py +0 -0
  194. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/start_workflow_task.py +0 -0
  195. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/sub_workflow_task.py +0 -0
  196. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/switch_task.py +0 -0
  197. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/terminate_task.py +0 -0
  198. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/timeout_policy.py +0 -0
  199. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/wait_for_webhook_task.py +0 -0
  200. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow/task/wait_task.py +0 -0
  201. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor/client/workflow_client.py +0 -0
  202. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor_python.egg-info/dependency_links.txt +0 -0
  203. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor_python.egg-info/requires.txt +0 -0
  204. {conductor-python-1.1.4 → conductor_python-1.1.6}/src/conductor_python.egg-info/top_level.txt +0 -0
@@ -0,0 +1,271 @@
1
+ Metadata-Version: 2.1
2
+ Name: conductor-python
3
+ Version: 1.1.6
4
+ Summary: Netflix Conductor Python SDK
5
+ Home-page: https://github.com/conductor-sdk/conductor-python
6
+ Author: Orkes
7
+ Author-email: developers@orkes.io
8
+ Classifier: Development Status :: 5 - Production/Stable
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Intended Audience :: System Administrators
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
16
+ Requires-Python: >=3.6
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: certifi>=14.05.14
20
+ Requires-Dist: prometheus-client>=0.13.1
21
+ Requires-Dist: six>=1.10
22
+ Requires-Dist: requests>=2.31.0
23
+ Requires-Dist: typing-extensions>=4.2.0
24
+ Requires-Dist: astor>=0.8.1
25
+ Requires-Dist: shortuuid>=1.0.11
26
+ Requires-Dist: dacite>=1.8.1
27
+
28
+ # Conductor OSS Python SDK
29
+
30
+ Python SDK for working with https://github.com/conductor-oss/conductor.
31
+
32
+ [Conductor](https://www.conductor-oss.org/) is the leading open-source orchestration platform allowing developers to build highly scalable distributed applications.
33
+
34
+ Check out the [official documentation for Conductor](https://orkes.io/content).
35
+
36
+ ## ⭐ Conductor OSS
37
+
38
+ Show support for the Conductor OSS. Please help spread the awareness by starring Conductor repo.
39
+
40
+ [![GitHub stars](https://img.shields.io/github/stars/conductor-oss/conductor.svg?style=social&label=Star&maxAge=)](https://GitHub.com/conductor-oss/conductor/)
41
+
42
+ ## Content
43
+
44
+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
45
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
46
+
47
+ - [Install Conductor Python SDK](#install-conductor-python-sdk)
48
+ - [Get Conductor Python SDK](#get-conductor-python-sdk)
49
+ - [Hello World Application Using Conductor](#hello-world-application-using-conductor)
50
+ - [Step 1: Create Workflow](#step-1-create-workflow)
51
+ - [Creating Workflows by Code](#creating-workflows-by-code)
52
+ - [(Alternatively) Creating Workflows in JSON](#alternatively-creating-workflows-in-json)
53
+ - [Step 2: Write Task Worker](#step-2-write-task-worker)
54
+ - [Step 3: Write _Hello World_ Application](#step-3-write-_hello-world_-application)
55
+ - [Running Workflows on Conductor Standalone (Installed Locally)](#running-workflows-on-conductor-standalone-installed-locally)
56
+ - [Setup Environment Variable](#setup-environment-variable)
57
+ - [Start Conductor Server](#start-conductor-server)
58
+ - [Execute Hello World Application](#execute-hello-world-application)
59
+ - [Running Workflows on Orkes Conductor](#running-workflows-on-orkes-conductor)
60
+ - [Learn More about Conductor Python SDK](#learn-more-about-conductor-python-sdk)
61
+ - [Create and Run Conductor Workers](#create-and-run-conductor-workers)
62
+ - [Create Conductor Workflows](#create-conductor-workflows)
63
+ - [Using Conductor in your Application](#using-conductor-in-your-application)
64
+
65
+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
66
+
67
+ ## Install Conductor Python SDK
68
+
69
+ Before installing Conductor Python SDK, it is a good practice to set up a dedicated virtual environment as follows:
70
+
71
+ ```shell
72
+ virtualenv conductor
73
+ source conductor/bin/activate
74
+ ```
75
+
76
+ ### Get Conductor Python SDK
77
+
78
+ The SDK requires Python 3.9+. To install the SDK, use the following command:
79
+
80
+ ```shell
81
+ python3 -m pip install conductor-python
82
+ ```
83
+
84
+ ## Hello World Application Using Conductor
85
+
86
+ In this section, we will create a simple "Hello World" application that executes a "greetings" workflow managed by Conductor.
87
+
88
+ ### Step 1: Create Workflow
89
+
90
+ #### Creating Workflows by Code
91
+
92
+ Create [greetings_workflow.py](examples/helloworld/greetings_workflow.py) with the following:
93
+
94
+ ```python
95
+ from conductor.client.workflow.conductor_workflow import ConductorWorkflow
96
+ from conductor.client.workflow.executor.workflow_executor import WorkflowExecutor
97
+ from greetings_worker import greet
98
+
99
+ def greetings_workflow(workflow_executor: WorkflowExecutor) -> ConductorWorkflow:
100
+ name = 'greetings'
101
+ workflow = ConductorWorkflow(name=name, executor=workflow_executor)
102
+ workflow.version = 1
103
+ workflow >> greet(task_ref_name='greet_ref', name=workflow.input('name'))
104
+ return workflow
105
+
106
+
107
+ ```
108
+
109
+ #### (Alternatively) Creating Workflows in JSON
110
+
111
+ Create `greetings_workflow.json` with the following:
112
+
113
+ ```json
114
+ {
115
+ "name": "greetings",
116
+ "description": "Sample greetings workflow",
117
+ "version": 1,
118
+ "tasks": [
119
+ {
120
+ "name": "greet",
121
+ "taskReferenceName": "greet_ref",
122
+ "type": "SIMPLE",
123
+ "inputParameters": {
124
+ "name": "${workflow.input.name}"
125
+ }
126
+ }
127
+ ],
128
+ "timeoutPolicy": "TIME_OUT_WF",
129
+ "timeoutSeconds": 60
130
+ }
131
+ ```
132
+
133
+ Workflows must be registered to the Conductor server. Use the API to register the greetings workflow from the JSON file above:
134
+ ```shell
135
+ curl -X POST -H "Content-Type:application/json" \
136
+ http://localhost:8080/api/metadata/workflow -d @greetings_workflow.json
137
+ ```
138
+ > [!note]
139
+ > To use the Conductor API, the Conductor server must be up and running (see [Running over Conductor standalone (installed locally)](#running-over-conductor-standalone-installed-locally)).
140
+
141
+ ### Step 2: Write Task Worker
142
+
143
+ Using Python, a worker represents a function with the worker_task decorator. Create [greetings_worker.py](examples/helloworld/greetings_worker.py) file as illustrated below:
144
+
145
+ > [!note]
146
+ > A single workflow can have task workers written in different languages and deployed anywhere, making your workflow polyglot and distributed!
147
+
148
+ ```python
149
+ from conductor.client.worker.worker_task import worker_task
150
+
151
+
152
+ @worker_task(task_definition_name='greet')
153
+ def greet(name: str) -> str:
154
+ return f'Hello {name}'
155
+
156
+ ```
157
+ Now, we are ready to write our main application, which will execute our workflow.
158
+
159
+ ### Step 3: Write _Hello World_ Application
160
+
161
+ Let's add [helloworld.py](examples/helloworld/helloworld.py) with a `main` method:
162
+
163
+ ```python
164
+ from conductor.client.automator.task_handler import TaskHandler
165
+ from conductor.client.configuration.configuration import Configuration
166
+ from conductor.client.workflow.conductor_workflow import ConductorWorkflow
167
+ from conductor.client.workflow.executor.workflow_executor import WorkflowExecutor
168
+ from greetings_workflow import greetings_workflow
169
+
170
+
171
+ def register_workflow(workflow_executor: WorkflowExecutor) -> ConductorWorkflow:
172
+ workflow = greetings_workflow(workflow_executor=workflow_executor)
173
+ workflow.register(True)
174
+ return workflow
175
+
176
+
177
+ def main():
178
+ # The app is connected to http://localhost:8080/api by default
179
+ api_config = Configuration()
180
+
181
+ workflow_executor = WorkflowExecutor(configuration=api_config)
182
+
183
+ # Registering the workflow (Required only when the app is executed the first time)
184
+ workflow = register_workflow(workflow_executor)
185
+
186
+ # Starting the worker polling mechanism
187
+ task_handler = TaskHandler(configuration=api_config)
188
+ task_handler.start_processes()
189
+
190
+ workflow_run = workflow_executor.execute(name=workflow.name, version=workflow.version,
191
+ workflow_input={'name': 'Orkes'})
192
+
193
+ print(f'\nworkflow result: {workflow_run.output["result"]}\n')
194
+ print(f'see the workflow execution here: {api_config.ui_host}/execution/{workflow_run.workflow_id}\n')
195
+ task_handler.stop_processes()
196
+
197
+
198
+ if __name__ == '__main__':
199
+ main()
200
+ ```
201
+ ## Running Workflows on Conductor Standalone (Installed Locally)
202
+
203
+ ### Setup Environment Variable
204
+
205
+ Set the following environment variable to point the SDK to the Conductor Server API endpoint:
206
+
207
+ ```shell
208
+ export CONDUCTOR_SERVER_URL=http://localhost:8080/api
209
+ ```
210
+ ### Start Conductor Server
211
+
212
+ To start the Conductor server in a standalone mode from a Docker image, type the command below:
213
+
214
+ ```shell
215
+ docker run --init -p 8080:8080 -p 5000:5000 conductoross/conductor-standalone:3.15.0
216
+ ```
217
+ To ensure the server has started successfully, open Conductor UI on http://localhost:5000.
218
+
219
+ ### Execute Hello World Application
220
+
221
+ To run the application, type the following command:
222
+
223
+ ```
224
+ python helloworld.py
225
+ ```
226
+
227
+ Now, the workflow is executed, and its execution status can be viewed from Conductor UI (http://localhost:5000).
228
+
229
+ Navigate to the **Executions** tab to view the workflow execution.
230
+
231
+ <img width="1434" alt="Screenshot 2024-03-18 at 12 30 07" src="https://github.com/Srividhya-S-Subramanian/conductor-python-v1/assets/163816773/11e829b6-d46a-4b47-b2cf-0bf524a6ebdc">
232
+
233
+ ## Running Workflows on Orkes Conductor
234
+
235
+ For running the workflow in Orkes Conductor,
236
+
237
+ - Update the Conductor server URL to your cluster name.
238
+
239
+ ```shell
240
+ export CONDUCTOR_SERVER_URL=https://[cluster-name].orkesconductor.io/api
241
+ ```
242
+
243
+ - If you want to run the workflow on the Orkes Conductor Playground, set the Conductor Server variable as follows:
244
+
245
+ ```shell
246
+ export CONDUCTOR_SERVER_URL=https://play.orkes.io/api
247
+ ```
248
+
249
+ - Orkes Conductor requires authentication. [Obtain the key and secret from the Conductor server](https://orkes.io/content/how-to-videos/access-key-and-secret) and set the following environment variables.
250
+
251
+ ```shell
252
+ export CONDUCTOR_AUTH_KEY=your_key
253
+ export CONDUCTOR_AUTH_SECRET=your_key_secret
254
+ ```
255
+
256
+ Run the application and view the execution status from Conductor's UI Console.
257
+
258
+ > [!NOTE]
259
+ > That's it - you just created and executed your first distributed Python app!
260
+
261
+ ## Learn More about Conductor Python SDK
262
+
263
+ There are three main ways you can use Conductor when building durable, resilient, distributed applications.
264
+
265
+ 1. Write service workers that implement business logic to accomplish a specific goal - such as initiating payment transfer, getting user information from the database, etc.
266
+ 2. Create Conductor workflows that implement application state - A typical workflow implements the saga pattern.
267
+ 3. Use Conductor SDK and APIs to manage workflows from your application.
268
+
269
+ ### [Create and Run Conductor Workers](workers.md)
270
+ ### [Create Conductor Workflows](workflows.md)
271
+ ### [Using Conductor in your Application](conductor_apps.md)
@@ -0,0 +1,244 @@
1
+ # Conductor OSS Python SDK
2
+
3
+ Python SDK for working with https://github.com/conductor-oss/conductor.
4
+
5
+ [Conductor](https://www.conductor-oss.org/) is the leading open-source orchestration platform allowing developers to build highly scalable distributed applications.
6
+
7
+ Check out the [official documentation for Conductor](https://orkes.io/content).
8
+
9
+ ## ⭐ Conductor OSS
10
+
11
+ Show support for the Conductor OSS. Please help spread the awareness by starring Conductor repo.
12
+
13
+ [![GitHub stars](https://img.shields.io/github/stars/conductor-oss/conductor.svg?style=social&label=Star&maxAge=)](https://GitHub.com/conductor-oss/conductor/)
14
+
15
+ ## Content
16
+
17
+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
18
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
19
+
20
+ - [Install Conductor Python SDK](#install-conductor-python-sdk)
21
+ - [Get Conductor Python SDK](#get-conductor-python-sdk)
22
+ - [Hello World Application Using Conductor](#hello-world-application-using-conductor)
23
+ - [Step 1: Create Workflow](#step-1-create-workflow)
24
+ - [Creating Workflows by Code](#creating-workflows-by-code)
25
+ - [(Alternatively) Creating Workflows in JSON](#alternatively-creating-workflows-in-json)
26
+ - [Step 2: Write Task Worker](#step-2-write-task-worker)
27
+ - [Step 3: Write _Hello World_ Application](#step-3-write-_hello-world_-application)
28
+ - [Running Workflows on Conductor Standalone (Installed Locally)](#running-workflows-on-conductor-standalone-installed-locally)
29
+ - [Setup Environment Variable](#setup-environment-variable)
30
+ - [Start Conductor Server](#start-conductor-server)
31
+ - [Execute Hello World Application](#execute-hello-world-application)
32
+ - [Running Workflows on Orkes Conductor](#running-workflows-on-orkes-conductor)
33
+ - [Learn More about Conductor Python SDK](#learn-more-about-conductor-python-sdk)
34
+ - [Create and Run Conductor Workers](#create-and-run-conductor-workers)
35
+ - [Create Conductor Workflows](#create-conductor-workflows)
36
+ - [Using Conductor in your Application](#using-conductor-in-your-application)
37
+
38
+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
39
+
40
+ ## Install Conductor Python SDK
41
+
42
+ Before installing Conductor Python SDK, it is a good practice to set up a dedicated virtual environment as follows:
43
+
44
+ ```shell
45
+ virtualenv conductor
46
+ source conductor/bin/activate
47
+ ```
48
+
49
+ ### Get Conductor Python SDK
50
+
51
+ The SDK requires Python 3.9+. To install the SDK, use the following command:
52
+
53
+ ```shell
54
+ python3 -m pip install conductor-python
55
+ ```
56
+
57
+ ## Hello World Application Using Conductor
58
+
59
+ In this section, we will create a simple "Hello World" application that executes a "greetings" workflow managed by Conductor.
60
+
61
+ ### Step 1: Create Workflow
62
+
63
+ #### Creating Workflows by Code
64
+
65
+ Create [greetings_workflow.py](examples/helloworld/greetings_workflow.py) with the following:
66
+
67
+ ```python
68
+ from conductor.client.workflow.conductor_workflow import ConductorWorkflow
69
+ from conductor.client.workflow.executor.workflow_executor import WorkflowExecutor
70
+ from greetings_worker import greet
71
+
72
+ def greetings_workflow(workflow_executor: WorkflowExecutor) -> ConductorWorkflow:
73
+ name = 'greetings'
74
+ workflow = ConductorWorkflow(name=name, executor=workflow_executor)
75
+ workflow.version = 1
76
+ workflow >> greet(task_ref_name='greet_ref', name=workflow.input('name'))
77
+ return workflow
78
+
79
+
80
+ ```
81
+
82
+ #### (Alternatively) Creating Workflows in JSON
83
+
84
+ Create `greetings_workflow.json` with the following:
85
+
86
+ ```json
87
+ {
88
+ "name": "greetings",
89
+ "description": "Sample greetings workflow",
90
+ "version": 1,
91
+ "tasks": [
92
+ {
93
+ "name": "greet",
94
+ "taskReferenceName": "greet_ref",
95
+ "type": "SIMPLE",
96
+ "inputParameters": {
97
+ "name": "${workflow.input.name}"
98
+ }
99
+ }
100
+ ],
101
+ "timeoutPolicy": "TIME_OUT_WF",
102
+ "timeoutSeconds": 60
103
+ }
104
+ ```
105
+
106
+ Workflows must be registered to the Conductor server. Use the API to register the greetings workflow from the JSON file above:
107
+ ```shell
108
+ curl -X POST -H "Content-Type:application/json" \
109
+ http://localhost:8080/api/metadata/workflow -d @greetings_workflow.json
110
+ ```
111
+ > [!note]
112
+ > To use the Conductor API, the Conductor server must be up and running (see [Running over Conductor standalone (installed locally)](#running-over-conductor-standalone-installed-locally)).
113
+
114
+ ### Step 2: Write Task Worker
115
+
116
+ Using Python, a worker represents a function with the worker_task decorator. Create [greetings_worker.py](examples/helloworld/greetings_worker.py) file as illustrated below:
117
+
118
+ > [!note]
119
+ > A single workflow can have task workers written in different languages and deployed anywhere, making your workflow polyglot and distributed!
120
+
121
+ ```python
122
+ from conductor.client.worker.worker_task import worker_task
123
+
124
+
125
+ @worker_task(task_definition_name='greet')
126
+ def greet(name: str) -> str:
127
+ return f'Hello {name}'
128
+
129
+ ```
130
+ Now, we are ready to write our main application, which will execute our workflow.
131
+
132
+ ### Step 3: Write _Hello World_ Application
133
+
134
+ Let's add [helloworld.py](examples/helloworld/helloworld.py) with a `main` method:
135
+
136
+ ```python
137
+ from conductor.client.automator.task_handler import TaskHandler
138
+ from conductor.client.configuration.configuration import Configuration
139
+ from conductor.client.workflow.conductor_workflow import ConductorWorkflow
140
+ from conductor.client.workflow.executor.workflow_executor import WorkflowExecutor
141
+ from greetings_workflow import greetings_workflow
142
+
143
+
144
+ def register_workflow(workflow_executor: WorkflowExecutor) -> ConductorWorkflow:
145
+ workflow = greetings_workflow(workflow_executor=workflow_executor)
146
+ workflow.register(True)
147
+ return workflow
148
+
149
+
150
+ def main():
151
+ # The app is connected to http://localhost:8080/api by default
152
+ api_config = Configuration()
153
+
154
+ workflow_executor = WorkflowExecutor(configuration=api_config)
155
+
156
+ # Registering the workflow (Required only when the app is executed the first time)
157
+ workflow = register_workflow(workflow_executor)
158
+
159
+ # Starting the worker polling mechanism
160
+ task_handler = TaskHandler(configuration=api_config)
161
+ task_handler.start_processes()
162
+
163
+ workflow_run = workflow_executor.execute(name=workflow.name, version=workflow.version,
164
+ workflow_input={'name': 'Orkes'})
165
+
166
+ print(f'\nworkflow result: {workflow_run.output["result"]}\n')
167
+ print(f'see the workflow execution here: {api_config.ui_host}/execution/{workflow_run.workflow_id}\n')
168
+ task_handler.stop_processes()
169
+
170
+
171
+ if __name__ == '__main__':
172
+ main()
173
+ ```
174
+ ## Running Workflows on Conductor Standalone (Installed Locally)
175
+
176
+ ### Setup Environment Variable
177
+
178
+ Set the following environment variable to point the SDK to the Conductor Server API endpoint:
179
+
180
+ ```shell
181
+ export CONDUCTOR_SERVER_URL=http://localhost:8080/api
182
+ ```
183
+ ### Start Conductor Server
184
+
185
+ To start the Conductor server in a standalone mode from a Docker image, type the command below:
186
+
187
+ ```shell
188
+ docker run --init -p 8080:8080 -p 5000:5000 conductoross/conductor-standalone:3.15.0
189
+ ```
190
+ To ensure the server has started successfully, open Conductor UI on http://localhost:5000.
191
+
192
+ ### Execute Hello World Application
193
+
194
+ To run the application, type the following command:
195
+
196
+ ```
197
+ python helloworld.py
198
+ ```
199
+
200
+ Now, the workflow is executed, and its execution status can be viewed from Conductor UI (http://localhost:5000).
201
+
202
+ Navigate to the **Executions** tab to view the workflow execution.
203
+
204
+ <img width="1434" alt="Screenshot 2024-03-18 at 12 30 07" src="https://github.com/Srividhya-S-Subramanian/conductor-python-v1/assets/163816773/11e829b6-d46a-4b47-b2cf-0bf524a6ebdc">
205
+
206
+ ## Running Workflows on Orkes Conductor
207
+
208
+ For running the workflow in Orkes Conductor,
209
+
210
+ - Update the Conductor server URL to your cluster name.
211
+
212
+ ```shell
213
+ export CONDUCTOR_SERVER_URL=https://[cluster-name].orkesconductor.io/api
214
+ ```
215
+
216
+ - If you want to run the workflow on the Orkes Conductor Playground, set the Conductor Server variable as follows:
217
+
218
+ ```shell
219
+ export CONDUCTOR_SERVER_URL=https://play.orkes.io/api
220
+ ```
221
+
222
+ - Orkes Conductor requires authentication. [Obtain the key and secret from the Conductor server](https://orkes.io/content/how-to-videos/access-key-and-secret) and set the following environment variables.
223
+
224
+ ```shell
225
+ export CONDUCTOR_AUTH_KEY=your_key
226
+ export CONDUCTOR_AUTH_SECRET=your_key_secret
227
+ ```
228
+
229
+ Run the application and view the execution status from Conductor's UI Console.
230
+
231
+ > [!NOTE]
232
+ > That's it - you just created and executed your first distributed Python app!
233
+
234
+ ## Learn More about Conductor Python SDK
235
+
236
+ There are three main ways you can use Conductor when building durable, resilient, distributed applications.
237
+
238
+ 1. Write service workers that implement business logic to accomplish a specific goal - such as initiating payment transfer, getting user information from the database, etc.
239
+ 2. Create Conductor workflows that implement application state - A typical workflow implements the saga pattern.
240
+ 3. Use Conductor SDK and APIs to manage workflows from your application.
241
+
242
+ ### [Create and Run Conductor Workers](workers.md)
243
+ ### [Create Conductor Workflows](workflows.md)
244
+ ### [Using Conductor in your Application](conductor_apps.md)
@@ -52,3 +52,4 @@ from conductor.client.http.models.workflow_tag import WorkflowTag
52
52
  from conductor.client.http.models.integration import Integration
53
53
  from conductor.client.http.models.integration_api import IntegrationApi
54
54
  from conductor.client.http.models.state_change_event import StateChangeEvent, StateChangeConfig, StateChangeEventType
55
+ from conductor.client.http.models.workflow_task import CacheConfig
@@ -3,6 +3,9 @@ import re # noqa: F401
3
3
 
4
4
  import six
5
5
 
6
+ terminal_status = ('COMPLETED', 'FAILED', 'TIMED_OUT', 'TERMINATED')
7
+ successful_status = ('PAUSED', 'COMPLETED')
8
+ running_status = ('RUNNING', 'PAUSED')
6
9
 
7
10
  class WorkflowStatus(object):
8
11
  """NOTE: This class is auto generated by the swagger code generator program.
@@ -189,6 +192,21 @@ class WorkflowStatus(object):
189
192
 
190
193
  return result
191
194
 
195
+ def is_completed(self) -> bool:
196
+ """Checks if the workflow has completed
197
+ :return: True if the workflow status is COMPLETED, FAILED or TERMINATED
198
+ """
199
+ return self._status in terminal_status
200
+
201
+ def is_successful(self) -> bool:
202
+ """Checks if the workflow has completed in successful state (ie COMPLETED)
203
+ :return: True if the workflow status is COMPLETED
204
+ """
205
+ return self._status in successful_status
206
+
207
+ def is_running(self) -> bool:
208
+ return self.status in running_status
209
+
192
210
  def to_str(self):
193
211
  """Returns the string representation of the model"""
194
212
  return pprint.pformat(self.to_dict())
@@ -7,11 +7,39 @@ import six
7
7
  from conductor.client.http.models.state_change_event import StateChangeConfig, StateChangeEventType, StateChangeEvent
8
8
 
9
9
 
10
- class WorkflowTask(object):
11
- """NOTE: This class is auto generated by the swagger code generator program.
10
+ class CacheConfig(object):
11
+ swagger_types = {
12
+ 'key': 'str',
13
+ 'ttl_in_second': 'int'
14
+ }
12
15
 
13
- Do not edit the class manually.
14
- """
16
+ attribute_map = {
17
+ 'key': 'key',
18
+ 'ttl_in_second': 'ttlInSecond'
19
+ }
20
+
21
+ def __init__(self, key: str, ttl_in_second: int):
22
+ self._key = key
23
+ self._ttl_in_second = ttl_in_second
24
+
25
+ @property
26
+ def key(self):
27
+ return self._key
28
+
29
+ @key.setter
30
+ def key(self, key):
31
+ self._key = key
32
+
33
+ @property
34
+ def ttl_in_second(self):
35
+ return self._ttl_in_second
36
+
37
+ @ttl_in_second.setter
38
+ def ttl_in_second(self, ttl_in_second):
39
+ self._ttl_in_second = ttl_in_second
40
+
41
+
42
+ class WorkflowTask(object):
15
43
  """
16
44
  Attributes:
17
45
  swagger_types (dict): The key is attribute name
@@ -50,7 +78,8 @@ class WorkflowTask(object):
50
78
  'evaluator_type': 'str',
51
79
  'expression': 'str',
52
80
  'workflow_task_type': 'str',
53
- 'on_state_change': 'dict(str, StateChangeConfig)'
81
+ 'on_state_change': 'dict(str, StateChangeConfig)',
82
+ 'cache_config': 'CacheConfig'
54
83
  }
55
84
 
56
85
  attribute_map = {
@@ -84,7 +113,8 @@ class WorkflowTask(object):
84
113
  'evaluator_type': 'evaluatorType',
85
114
  'expression': 'expression',
86
115
  'workflow_task_type': 'workflowTaskType',
87
- 'on_state_change': 'onStateChange'
116
+ 'on_state_change': 'onStateChange',
117
+ 'cache_config': 'cacheConfig'
88
118
  }
89
119
 
90
120
  def __init__(self, name=None, task_reference_name=None, description=None, input_parameters=None, type=None,
@@ -94,7 +124,8 @@ class WorkflowTask(object):
94
124
  sub_workflow_param=None, join_on=None, sink=None, optional=None, task_definition=None,
95
125
  rate_limited=None, default_exclusive_join_task=None, async_complete=None, loop_condition=None,
96
126
  loop_over=None, retry_count=None, evaluator_type=None, expression=None,
97
- workflow_task_type=None, on_state_change: dict[str, StateChangeConfig] = None): # noqa: E501
127
+ workflow_task_type=None, on_state_change: dict[str, StateChangeConfig] = None,
128
+ cache_config: CacheConfig = None): # noqa: E501
98
129
  """WorkflowTask - a model defined in Swagger""" # noqa: E501
99
130
  self._name = None
100
131
  self._task_reference_name = None
@@ -128,6 +159,7 @@ class WorkflowTask(object):
128
159
  self._workflow_task_type = None
129
160
  self.discriminator = None
130
161
  self._on_state_change = None
162
+ self._cache_config = None
131
163
  self.name = name
132
164
  self.task_reference_name = task_reference_name
133
165
  if description is not None:
@@ -188,6 +220,7 @@ class WorkflowTask(object):
188
220
  self.workflow_task_type = workflow_task_type
189
221
  if on_state_change is not None:
190
222
  self._on_state_change = on_state_change
223
+ self._cache_config = cache_config
191
224
 
192
225
  @property
193
226
  def name(self):
@@ -823,9 +856,17 @@ class WorkflowTask(object):
823
856
  @on_state_change.setter
824
857
  def on_state_change(self, state_change: StateChangeConfig):
825
858
  self._on_state_change = {
826
- state_change.type : state_change.events
859
+ state_change.type: state_change.events
827
860
  }
828
861
 
862
+ @property
863
+ def cache_config(self) -> CacheConfig:
864
+ return self._cache_config
865
+
866
+ @cache_config.setter
867
+ def cache_config(self, cache_config: CacheConfig):
868
+ self._cache_config = cache_config
869
+
829
870
  def to_dict(self):
830
871
  """Returns the model properties as a dict"""
831
872
  result = {}