pypeline-runner 1.9.0__tar.gz → 1.9.1__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 (32) hide show
  1. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/PKG-INFO +1 -1
  2. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/pyproject.toml +1 -1
  3. pypeline_runner-1.9.1/src/pypeline/__init__.py +1 -0
  4. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/main.py +0 -2
  5. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/pypeline.py +24 -15
  6. pypeline_runner-1.9.0/src/pypeline/__init__.py +0 -1
  7. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/LICENSE +0 -0
  8. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/README.md +0 -0
  9. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/__run.py +0 -0
  10. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/domain/__init__.py +0 -0
  11. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/domain/artifacts.py +0 -0
  12. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/domain/config.py +0 -0
  13. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/domain/execution_context.py +0 -0
  14. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/domain/pipeline.py +0 -0
  15. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/domain/project_slurper.py +0 -0
  16. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/__init__.py +0 -0
  17. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/create.py +0 -0
  18. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/.gitignore +0 -0
  19. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/bootstrap.ps1 +0 -0
  20. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/bootstrap.py +0 -0
  21. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/poetry.toml +0 -0
  22. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/pypeline.ps1 +0 -0
  23. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/pypeline.yaml +0 -0
  24. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/pyproject.toml +0 -0
  25. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/scoopfile.json +0 -0
  26. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/steps/my_step.py +0 -0
  27. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/kickstart/templates/project/west.yaml +0 -0
  28. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/py.typed +0 -0
  29. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/steps/__init__.py +0 -0
  30. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/steps/create_venv.py +0 -0
  31. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/steps/scoop_install.py +0 -0
  32. {pypeline_runner-1.9.0 → pypeline_runner-1.9.1}/src/pypeline/steps/west_install.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pypeline-runner
3
- Version: 1.9.0
3
+ Version: 1.9.1
4
4
  Summary: Configure and execute pipelines with Python (similar to GitHub workflows or Jenkins pipelines).
5
5
  License: MIT
6
6
  Author: cuinixam
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pypeline-runner"
3
- version = "1.9.0"
3
+ version = "1.9.1"
4
4
  description = "Configure and execute pipelines with Python (similar to GitHub workflows or Jenkins pipelines)."
5
5
  authors = ["cuinixam <me@cuinixam.com>"]
6
6
  license = "MIT"
@@ -0,0 +1 @@
1
+ __version__ = "1.9.1"
@@ -60,8 +60,6 @@ def run(
60
60
  return
61
61
  if not project_slurper.pipeline:
62
62
  raise UserNotificationException("No pipeline found in the configuration.")
63
- if single and step and len(step) > 1:
64
- raise UserNotificationException("Only one step can be run with the --single flag.")
65
63
  # Schedule the steps to run
66
64
  steps_references = PipelineScheduler[ExecutionContext](project_slurper.pipeline, project_dir).get_steps_to_run(step, single)
67
65
  if not steps_references:
@@ -124,27 +124,36 @@ class PipelineScheduler(Generic[TExecutionContext]):
124
124
  step_names: Optional[List[str]],
125
125
  single: Optional[bool],
126
126
  ) -> List[PipelineStepReference[PipelineStep[TExecutionContext]]]:
127
- if step_names:
128
- found_steps = set()
129
- filtered_step_refs = []
130
-
127
+ if not step_names:
128
+ return steps_references
129
+
130
+ step_names_set = set(step_names)
131
+ filtered_steps = []
132
+ found_steps = set()
133
+
134
+ if single:
135
+ # Include only the explicitly named steps, preserving order
136
+ filtered_steps = [step for step in steps_references if step.name in step_names_set]
137
+ found_steps = {step.name for step in filtered_steps}
138
+ else:
139
+ # Include all steps until the last explicitly named step is found
131
140
  for step in steps_references:
132
- if step.name in step_names:
141
+ filtered_steps.append(step)
142
+ if step.name in step_names_set:
133
143
  found_steps.add(step.name)
134
- if single:
135
- filtered_step_refs.append(step)
144
+ if found_steps == step_names_set:
145
+ # Once all named steps have been found, stop here
136
146
  break
137
- else:
138
- filtered_step_refs.append(step)
139
-
140
- # Check if all input step names were found
141
- missing_steps = set(step_names) - found_steps
142
- if missing_steps:
147
+ else:
148
+ # If loop completes without finding all named steps
149
+ missing_steps = step_names_set - found_steps
143
150
  raise UserNotificationException(f"Steps not found in pipeline configuration: {', '.join(missing_steps)}")
144
151
 
145
- return filtered_step_refs
152
+ missing_steps = step_names_set - found_steps
153
+ if missing_steps:
154
+ raise UserNotificationException(f"Steps not found in pipeline configuration: {', '.join(missing_steps)}")
146
155
 
147
- return steps_references
156
+ return filtered_steps
148
157
 
149
158
  @staticmethod
150
159
  def create_pipeline_loader(pipeline: PipelineConfig, project_root_dir: Path) -> PipelineLoader[PipelineStep[TExecutionContext]]:
@@ -1 +0,0 @@
1
- __version__ = "1.9.0"
File without changes