ScriptCollection 3.5.27__py3-none-any.whl → 3.5.29__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.
@@ -31,7 +31,7 @@ from .ProgramRunnerBase import ProgramRunnerBase
31
31
  from .ProgramRunnerPopen import ProgramRunnerPopen
32
32
  from .ProgramRunnerEpew import ProgramRunnerEpew, CustomEpewArgument
33
33
 
34
- version = "3.5.27"
34
+ version = "3.5.29"
35
35
  __version__ = version
36
36
 
37
37
 
@@ -44,9 +44,11 @@ class ScriptCollectionCore:
44
44
  execute_program_really_if_no_mock_call_is_defined: bool = False
45
45
  __mocked_program_calls: list = None
46
46
  program_runner: ProgramRunnerBase = None
47
+ call_program_runner_directly: bool = None
47
48
 
48
49
  def __init__(self):
49
50
  self.program_runner = ProgramRunnerPopen()
51
+ self.call_program_runner_directly = None
50
52
  self.__mocked_program_calls = list[ScriptCollectionCore.__MockProgramCall]()
51
53
 
52
54
  @staticmethod
@@ -1234,6 +1236,8 @@ class ScriptCollectionCore:
1234
1236
  # verbosity 2: If the exitcode of the executed program is not 0 then the StdErr will be logged. This is supposed to be the default verbosity-level.
1235
1237
  # verbosity 3: Logs and prints StdOut and StdErr of the executed program in realtime.
1236
1238
  # verbosity 4: Same as loglevel 3 but with some more overhead-information.
1239
+ if self.call_program_runner_directly:
1240
+ return self.program_runner.run_program_argsasarray(program, arguments_as_array, working_directory, custom_argument, interactive)
1237
1241
  try:
1238
1242
  arguments_as_str = ' '.join(arguments_as_array)
1239
1243
  mock_loader_result = self.__try_load_mock(program, arguments_as_str, working_directory)
@@ -1323,11 +1327,15 @@ class ScriptCollectionCore:
1323
1327
  # Return-values program_runner: Exitcode, StdOut, StdErr, Pid
1324
1328
  @GeneralUtilities.check_arguments
1325
1329
  def run_program(self, program: str, arguments: str = "", working_directory: str = None, verbosity: int = 1, print_errors_as_information: bool = False, log_file: str = None, timeoutInSeconds: int = 600, addLogOverhead: bool = False, title: str = None, log_namespace: str = "", arguments_for_log: list[str] = None, throw_exception_if_exitcode_is_not_zero: bool = True, custom_argument: object = None, interactive: bool = False) -> tuple[int, str, str, int]:
1330
+ if self.call_program_runner_directly:
1331
+ return self.program_runner.run_program(program, arguments, working_directory, custom_argument, interactive)
1326
1332
  return self.run_program_argsasarray(program, GeneralUtilities.arguments_to_array(arguments), working_directory, verbosity, print_errors_as_information, log_file, timeoutInSeconds, addLogOverhead, title, log_namespace, arguments_for_log, throw_exception_if_exitcode_is_not_zero, custom_argument, interactive)
1327
1333
 
1328
1334
  # Return-values program_runner: Pid
1329
1335
  @GeneralUtilities.check_arguments
1330
1336
  def run_program_argsasarray_async(self, program: str, arguments_as_array: list[str] = [], working_directory: str = None, verbosity: int = 1, print_errors_as_information: bool = False, log_file: str = None, timeoutInSeconds: int = 600, addLogOverhead: bool = False, title: str = None, log_namespace: str = "", arguments_for_log: list[str] = None, custom_argument: object = None, interactive: bool = False) -> int:
1337
+ if self.call_program_runner_directly:
1338
+ return self.program_runner.run_program_argsasarray_async(program, arguments_as_array, working_directory, custom_argument, interactive)
1331
1339
  mock_loader_result = self.__try_load_mock(program, ' '.join(arguments_as_array), working_directory)
1332
1340
  if mock_loader_result[0]:
1333
1341
  return mock_loader_result[1]
@@ -1337,6 +1345,8 @@ class ScriptCollectionCore:
1337
1345
  # Return-values program_runner: Pid
1338
1346
  @GeneralUtilities.check_arguments
1339
1347
  def run_program_async(self, program: str, arguments: str = "", working_directory: str = None, verbosity: int = 1, print_errors_as_information: bool = False, log_file: str = None, timeoutInSeconds: int = 600, addLogOverhead: bool = False, title: str = None, log_namespace: str = "", arguments_for_log: list[str] = None, custom_argument: object = None, interactive: bool = False) -> int:
1348
+ if self.call_program_runner_directly:
1349
+ return self.program_runner.run_program_argsasarray_async(program, arguments, working_directory, custom_argument, interactive)
1340
1350
  return self.run_program_argsasarray_async(program, GeneralUtilities.arguments_to_array(arguments), working_directory, verbosity, print_errors_as_information, log_file, timeoutInSeconds, addLogOverhead, title, log_namespace, arguments_for_log, custom_argument, interactive)
1341
1351
 
1342
1352
  @GeneralUtilities.check_arguments
@@ -1778,7 +1788,7 @@ chmod {permission} {link_file}
1778
1788
  main_reference_file = f"{reference_root_folder}/Reference.md"
1779
1789
  GeneralUtilities.ensure_file_exists(main_reference_file)
1780
1790
  GeneralUtilities.write_text_to_file(main_reference_file, f"""# {productname}
1781
-
1791
+
1782
1792
  TXDX add minimal service-description here.
1783
1793
 
1784
1794
  ## Technical documentation
@@ -1870,7 +1880,7 @@ TXDX
1870
1880
  - [Productive-System](TXDX)
1871
1881
  - [QualityCheck-system](TXDX)
1872
1882
 
1873
- """)
1883
+ """.replace("XDX", "ODO"))
1874
1884
 
1875
1885
  @GeneralUtilities.check_arguments
1876
1886
  def run_with_timeout(self, method, timeout_in_seconds: float) -> bool:
@@ -1692,11 +1692,16 @@ class TasksForCommonProjectStructure:
1692
1692
  GeneralUtilities.write_text_to_file(file, result)
1693
1693
 
1694
1694
  @GeneralUtilities.check_arguments
1695
- def do_npm_install(self, package_json_folder: str,force:bool, verbosity: int) -> None:
1696
- argument = "clean-install"
1695
+ def do_npm_install(self, package_json_folder: str, force: bool, verbosity: int) -> None:
1696
+ argument1 = "install"
1697
1697
  if force:
1698
- argument = f"{argument} --force"
1699
- self.run_with_epew("npm", argument, package_json_folder, verbosity=verbosity)
1698
+ argument1 = f"{argument1} --force"
1699
+ self.run_with_epew("npm", argument1, package_json_folder, verbosity=verbosity)
1700
+
1701
+ argument2 = "clean-install"
1702
+ if force:
1703
+ argument2 = f"{argument2} --force"
1704
+ self.run_with_epew("npm", argument2, package_json_folder, verbosity=verbosity)
1700
1705
 
1701
1706
  @GeneralUtilities.check_arguments
1702
1707
  def run_with_epew(self, program: str, argument: str = "", working_directory: str = None, verbosity: int = 1, print_errors_as_information: bool = False, log_file: str = None, timeoutInSeconds: int = 600, addLogOverhead: bool = False, title: str = None, log_namespace: str = "", arguments_for_log: list[str] = None, throw_exception_if_exitcode_is_not_zero: bool = True, custom_argument: object = None, interactive: bool = False) -> tuple[int, str, str, int]:
@@ -2397,7 +2402,7 @@ class TasksForCommonProjectStructure:
2397
2402
  def generate_svg_files_from_plantuml_files(self, target_folder: str) -> None:
2398
2403
  self.ensure_plantuml_is_available(target_folder)
2399
2404
  plant_uml_folder = os.path.join(target_folder, "Other", "Resources", "PlantUML")
2400
- files_folder = os.path.join(target_folder, "Other/Reference")
2405
+ files_folder = os.path.join(target_folder, "Other", "Reference")
2401
2406
  sc = ScriptCollectionCore()
2402
2407
  for file in GeneralUtilities.get_all_files_of_folder(files_folder):
2403
2408
  if file.endswith(".plantuml"):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ScriptCollection
3
- Version: 3.5.27
3
+ Version: 3.5.29
4
4
  Summary: The ScriptCollection is the place for reusable scripts.
5
5
  Home-page: https://github.com/anionDev/ScriptCollection
6
6
  Author: Marius Göcke
@@ -24,7 +24,7 @@ Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  Requires-Dist: build >=1.2.2.post1
26
26
  Requires-Dist: coverage >=7.6.4
27
- Requires-Dist: cyclonedx-bom >=5.0.0
27
+ Requires-Dist: cyclonedx-bom >=5.1.1
28
28
  Requires-Dist: defusedxml >=0.7.1
29
29
  Requires-Dist: keyboard >=0.13.5
30
30
  Requires-Dist: lcov-cobertura >=2.0.2
@@ -41,7 +41,7 @@ Requires-Dist: PyYAML >=6.0.2
41
41
  Requires-Dist: qrcode >=8.0
42
42
  Requires-Dist: send2trash >=1.8.3
43
43
  Requires-Dist: twine >=5.1.1
44
- Requires-Dist: xmlschema >=3.4.2
44
+ Requires-Dist: xmlschema >=3.4.3
45
45
 
46
46
  # ScriptCollection
47
47
 
@@ -5,12 +5,12 @@ ScriptCollection/ProgramRunnerBase.py,sha256=7QAjoqOz6XPmJH19F2k-Z1fFQB_uZnPFvn-
5
5
  ScriptCollection/ProgramRunnerEpew.py,sha256=C2Rs3YWOWWWJct7XmKphp5CF1tf0j4Fp-ljV2drLTfs,6349
6
6
  ScriptCollection/ProgramRunnerPopen.py,sha256=G3LgQUVCfaq7XjBsGzalElH31Hbr0etttGR2_H87YzA,3512
7
7
  ScriptCollection/RPStream.py,sha256=NRRHL3YSP3D9MuAV2jB_--0KUKCsvJGxeKnxgrRZ9kY,1545
8
- ScriptCollection/ScriptCollectionCore.py,sha256=ghiD-bDQz7a0WeZyur_ziZHKdmIdVi_70iMYo4185rA,101078
9
- ScriptCollection/TasksForCommonProjectStructure.py,sha256=iZWDpFSF0VQotKpjGngs1bBy1-7sVEZiUFRUD08d5wo,194090
8
+ ScriptCollection/ScriptCollectionCore.py,sha256=hJFDTk5gJtTECbWX7m92Q63Ts95ZMN-_dh3tRypLLWs,101921
9
+ ScriptCollection/TasksForCommonProjectStructure.py,sha256=YrCDXbGUIyR_pNH70yq90fRSmIncUia_TCWwFxcY_dc,194282
10
10
  ScriptCollection/UpdateCertificates.py,sha256=Eynbgu7k9jLxApP2D_8Il77B6BFjJap6K7oTeEAZYbk,7790
11
11
  ScriptCollection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- ScriptCollection-3.5.27.dist-info/METADATA,sha256=6ZIEIrTa60Zt0EWsS0HnSMg6BsTnyJUZNwx6WyqEH6A,7684
13
- ScriptCollection-3.5.27.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
14
- ScriptCollection-3.5.27.dist-info/entry_points.txt,sha256=yASwR6hWZ_b5d4W49YeX1htD8ngfWbwgjpfQiJdtUAU,2322
15
- ScriptCollection-3.5.27.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
16
- ScriptCollection-3.5.27.dist-info/RECORD,,
12
+ ScriptCollection-3.5.29.dist-info/METADATA,sha256=nYenV-RxLarp4trAzLJVDInmTv-59RNoSvWcOsL5HPE,7684
13
+ ScriptCollection-3.5.29.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
14
+ ScriptCollection-3.5.29.dist-info/entry_points.txt,sha256=yASwR6hWZ_b5d4W49YeX1htD8ngfWbwgjpfQiJdtUAU,2322
15
+ ScriptCollection-3.5.29.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
16
+ ScriptCollection-3.5.29.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.5.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5