pypeline-runner 1.16.0__py3-none-any.whl → 1.17.0__py3-none-any.whl

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.
pypeline/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.16.0"
1
+ __version__ = "1.17.0"
@@ -8,6 +8,7 @@ from mashumaro import DataClassDictMixin
8
8
  from py_app_dev.core.exceptions import UserNotificationException
9
9
  from py_app_dev.core.logging import logger
10
10
 
11
+ from pypeline import __version__
11
12
  from pypeline.bootstrap.run import get_bootstrap_script
12
13
 
13
14
  from ..domain.execution_context import ExecutionContext
@@ -40,7 +41,7 @@ class CreateVEnv(PipelineStep[ExecutionContext]):
40
41
  self.bootstrap_script_type = BootstrapScriptType.CUSTOM if self.user_config.bootstrap_script else BootstrapScriptType.INTERNAL
41
42
  super().__init__(execution_context, group_name, config)
42
43
  self.logger = logger.bind()
43
- self.bootstrap_script = get_bootstrap_script()
44
+ self.internal_bootstrap_script = get_bootstrap_script()
44
45
  self.package_manager = self.user_config.package_manager if self.user_config.package_manager else self.DEFAULT_PACKAGE_MANAGER
45
46
  self.python_executable = self.user_config.python_executable if self.user_config.python_executable else self.DEFAULT_PYTHON_EXECUTABLE
46
47
  self.venv_dir = self.project_root_dir / ".venv"
@@ -61,6 +62,10 @@ class CreateVEnv(PipelineStep[ExecutionContext]):
61
62
  else:
62
63
  raise UserNotificationException(f"Could not extract the package manager name from {self.package_manager}")
63
64
 
65
+ @property
66
+ def target_internal_bootstrap_script(self) -> Path:
67
+ return self.project_root_dir.joinpath(".bootstrap/bootstrap.py")
68
+
64
69
  def get_name(self) -> str:
65
70
  return self.__class__.__name__
66
71
 
@@ -83,22 +88,34 @@ class CreateVEnv(PipelineStep[ExecutionContext]):
83
88
  "--package-manager",
84
89
  f'"{self.package_manager}"',
85
90
  ]
91
+
92
+ # Copy the internal bootstrap script to the project root .bootstrap/bootstrap.py
93
+ self.target_internal_bootstrap_script.parent.mkdir(exist_ok=True)
94
+ if not self.target_internal_bootstrap_script.exists() or self.target_internal_bootstrap_script.read_text() != self.internal_bootstrap_script.read_text():
95
+ self.target_internal_bootstrap_script.write_text(self.internal_bootstrap_script.read_text())
96
+ self.logger.warning(f"Updated bootstrap script at {self.target_internal_bootstrap_script}")
97
+
98
+ # Run the copied bootstrap script
86
99
  self.execution_context.create_process_executor(
87
- [self.python_executable, self.bootstrap_script.as_posix(), *bootstrap_args],
100
+ [self.python_executable, self.target_internal_bootstrap_script.as_posix(), *bootstrap_args],
88
101
  cwd=self.project_root_dir,
89
102
  ).execute()
103
+
90
104
  return 0
91
105
 
92
106
  def get_inputs(self) -> List[Path]:
93
107
  package_manager_relevant_file = self.SUPPORTED_PACKAGE_MANAGERS.get(self.package_manager_name, [])
94
- return [self.project_root_dir / file for file in package_manager_relevant_file] + [self.bootstrap_script]
108
+ return [self.project_root_dir / file for file in package_manager_relevant_file]
95
109
 
96
110
  def get_outputs(self) -> List[Path]:
97
- return [self.venv_dir]
111
+ outputs = [self.venv_dir]
112
+ if self.bootstrap_script_type == BootstrapScriptType.INTERNAL:
113
+ outputs.append(self.target_internal_bootstrap_script)
114
+ return outputs
98
115
 
99
116
  def get_config(self) -> Optional[dict[str, str]]:
100
117
  return {
101
- "bootstrap_script": self.bootstrap_script.as_posix(),
118
+ "version": __version__,
102
119
  "python_executable": self.python_executable,
103
120
  "package_manager": self.package_manager,
104
121
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pypeline-runner
3
- Version: 1.16.0
3
+ Version: 1.17.0
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,4 +1,4 @@
1
- pypeline/__init__.py,sha256=zXjo5icgcGx5X40awUvUOk5_ohh0Pz1N3VFKYCfYEcM,23
1
+ pypeline/__init__.py,sha256=BVr0oLjmHWJS0DsUE-HOjf8hMNndB1Nh8X6y77zSq8s,23
2
2
  pypeline/__run.py,sha256=TCdaX05Qm3g8T4QYryKB25Xxf0L5Km7hFOHe1mK9vI0,350
3
3
  pypeline/bootstrap/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  pypeline/bootstrap/run.py,sha256=iZS-VZGk2KnMRVOb3QuYPrTeINQqVdWkvgjEDpl8oQA,15927
@@ -21,12 +21,12 @@ pypeline/main.py,sha256=2mC2BDB1OWIXhaijBXG6Y1vfT8_yMZ4Dj55w5u7g7-w,4158
21
21
  pypeline/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  pypeline/pypeline.py,sha256=-mquLfFlEvESk-HORhvjRMESIzdlVAgBLPjwUDOPLqg,7452
23
23
  pypeline/steps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- pypeline/steps/create_venv.py,sha256=NeS2Q0a0USwEc-PpcqDxOOCGEDRENlnzAxI0OjTL3N4,4861
24
+ pypeline/steps/create_venv.py,sha256=SoUUfqwgvO8d8RSXOGPVEPRyPVz_Hs_5H2ill8IZ9Ho,5790
25
25
  pypeline/steps/env_setup_script.py,sha256=u08A6pvMccFQbcnU0xruFvpU30PbDrttnbOjl1gDqog,2340
26
26
  pypeline/steps/scoop_install.py,sha256=DDXBD-5TVaT-u6Yf7A85uWoCgBVmLvj9nPGrZ8OQCz0,3853
27
27
  pypeline/steps/west_install.py,sha256=hPyr28ksdKsQ0tv0gMNytzupgk1IgjN9CpmaBdX5zps,1947
28
- pypeline_runner-1.16.0.dist-info/LICENSE,sha256=sKxdoqSmW9ezvPvt0ZGJbneyA0SBcm0GiqzTv2jN230,1066
29
- pypeline_runner-1.16.0.dist-info/METADATA,sha256=LdGV3SefgqFcV2tki0BBK2pr4wNzIBCOZ7Ws7Dx-Jew,7553
30
- pypeline_runner-1.16.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
31
- pypeline_runner-1.16.0.dist-info/entry_points.txt,sha256=pe1u0uuhPI_yeQ0KjEw6jK-EvQfPcZwBSajgbAdKz1o,47
32
- pypeline_runner-1.16.0.dist-info/RECORD,,
28
+ pypeline_runner-1.17.0.dist-info/LICENSE,sha256=sKxdoqSmW9ezvPvt0ZGJbneyA0SBcm0GiqzTv2jN230,1066
29
+ pypeline_runner-1.17.0.dist-info/METADATA,sha256=Wgrsu74YaKO49uoYe53gmZz_gkruZ1ivYcj6Rc44iTg,7553
30
+ pypeline_runner-1.17.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
31
+ pypeline_runner-1.17.0.dist-info/entry_points.txt,sha256=pe1u0uuhPI_yeQ0KjEw6jK-EvQfPcZwBSajgbAdKz1o,47
32
+ pypeline_runner-1.17.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.2
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any