scalable-pypeline 2.1.26__tar.gz → 2.1.27__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.

Potentially problematic release.


This version of scalable-pypeline might be problematic. Click here for more details.

Files changed (49) hide show
  1. {scalable-pypeline-2.1.26/scalable_pypeline.egg-info → scalable-pypeline-2.1.27}/PKG-INFO +1 -1
  2. scalable-pypeline-2.1.27/pypeline/__init__.py +1 -0
  3. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipeline_settings_schema.py +1 -0
  4. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/middleware/pypeline_middleware.py +12 -4
  5. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27/scalable_pypeline.egg-info}/PKG-INFO +1 -1
  6. scalable-pypeline-2.1.26/pypeline/__init__.py +0 -1
  7. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/LICENSE +0 -0
  8. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/MANIFEST.in +0 -0
  9. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/README.md +0 -0
  10. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/barrier.py +0 -0
  11. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/constants.py +0 -0
  12. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/dramatiq.py +0 -0
  13. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/executable_job_config_schema.py +0 -0
  14. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/extensions.py +0 -0
  15. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/flask/__init__.py +0 -0
  16. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/flask/api/__init__.py +0 -0
  17. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/flask/api/pipelines.py +0 -0
  18. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/flask/api/schedules.py +0 -0
  19. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/flask/decorators.py +0 -0
  20. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/flask/flask_pypeline.py +0 -0
  21. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipeline_config_schema.py +0 -0
  22. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/__init__.py +0 -0
  23. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/composition/__init__.py +0 -0
  24. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/composition/parallel_pipeline_composition.py +0 -0
  25. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/composition/pypeline_composition.py +0 -0
  26. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/factory.py +0 -0
  27. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/middleware/__init__.py +0 -0
  28. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/middleware/get_active_worker_id_middleware.py +0 -0
  29. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/middleware/graceful_shutdown_middleware.py +0 -0
  30. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pipelines/middleware/parallel_pipeline_middleware.py +0 -0
  31. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/pypeline_yaml.py +0 -0
  32. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/schedule_config_schema.py +0 -0
  33. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/utils/__init__.py +0 -0
  34. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/utils/config_utils.py +0 -0
  35. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/utils/dramatiq_utils.py +0 -0
  36. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/utils/executable_job_util.py +0 -0
  37. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/utils/graceful_shutdown_util.py +0 -0
  38. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/utils/module_utils.py +0 -0
  39. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/utils/pipeline_utils.py +0 -0
  40. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/pypeline/utils/schema_utils.py +0 -0
  41. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/requirements.txt +0 -0
  42. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/scalable_pypeline.egg-info/SOURCES.txt +0 -0
  43. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/scalable_pypeline.egg-info/dependency_links.txt +0 -0
  44. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/scalable_pypeline.egg-info/entry_points.txt +0 -0
  45. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/scalable_pypeline.egg-info/requires.txt +0 -0
  46. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/scalable_pypeline.egg-info/top_level.txt +0 -0
  47. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/setup.cfg +0 -0
  48. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/setup.py +0 -0
  49. {scalable-pypeline-2.1.26 → scalable-pypeline-2.1.27}/tests/fixtures/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scalable-pypeline
3
- Version: 2.1.26
3
+ Version: 2.1.27
4
4
  Summary: PypeLine - Python pipelines for the Real World
5
5
  Home-page: https://gitlab.com/bravos2/pypeline
6
6
  Author: Bravos Power Corporation
@@ -0,0 +1 @@
1
+ __version__ = "2.1.27"
@@ -465,6 +465,7 @@ class PipelineScenarioSchema(Schema):
465
465
  "produce alternative calculations and or results."
466
466
  },
467
467
  )
468
+ execution_id = fields.String(required=False, metadata={"description":"Execution id for a known scenario"})
468
469
 
469
470
 
470
471
  class PipelineScenariosSchema(Schema):
@@ -76,7 +76,13 @@ class PypelineMiddleware(Middleware):
76
76
  # If the lock didn't exist for the current tasks execution id then it would indicate
77
77
  # that this is the start of a new scenario. Therefore we need to find the ancestor
78
78
  # that is executed in the base case execution id and make sure it has completed
79
- if remaining_tasks is None:
79
+ tasks_to_run_in_scenario = None
80
+
81
+ for scenario in message.options["scenarios"]:
82
+ if scenario["execution_id"] == execution_id:
83
+ tasks_to_run_in_scenario = scenario["tasksToRunInScenario"]
84
+
85
+ if ancestor not in tasks_to_run_in_scenario and remaining_tasks is None:
80
86
  ancestor_task_key = (
81
87
  f"{message.options['base_case_execution_id']}-{ancestor}"
82
88
  )
@@ -95,15 +101,17 @@ class PypelineMiddleware(Middleware):
95
101
  remaining_tasks = locking_parallel_barrier.get_task_count()
96
102
  finally:
97
103
  locking_parallel_barrier.release_lock()
104
+
105
+
98
106
  if remaining_tasks is None or remaining_tasks >= 1:
99
107
  ancestor_tasks_complete = False
100
108
  break
101
109
 
102
110
  # If the child's ancestor tasks aren't complete move onto the next child to check
103
111
  if not ancestor_tasks_complete:
104
- break
112
+ continue
105
113
 
106
- # Handle situation where base case kicks off new scenario
114
+ # Handle situation where base case kicks off new scenario.
107
115
  if (
108
116
  message.options["base_case_execution_id"]
109
117
  == message.options["execution_id"]
@@ -160,7 +168,7 @@ class PypelineMiddleware(Middleware):
160
168
  )
161
169
  messages.append(scenario_message)
162
170
 
163
- # Kick off child task for current scenario
171
+ # If we've made it here all ancestors of this child are complete and it's time to run.
164
172
  task_key = f"{execution_id}-{child}"
165
173
  locking_parallel_barrier = LockingParallelBarrier(
166
174
  self.redis_url,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scalable-pypeline
3
- Version: 2.1.26
3
+ Version: 2.1.27
4
4
  Summary: PypeLine - Python pipelines for the Real World
5
5
  Home-page: https://gitlab.com/bravos2/pypeline
6
6
  Author: Bravos Power Corporation
@@ -1 +0,0 @@
1
- __version__ = "2.1.26"