ScriptCollection 3.5.151__py3-none-any.whl → 3.5.152__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.
@@ -34,7 +34,7 @@ from .ProgramRunnerPopen import ProgramRunnerPopen
34
34
  from .ProgramRunnerEpew import ProgramRunnerEpew, CustomEpewArgument
35
35
  from .SCLog import SCLog, LogLevel
36
36
 
37
- version = "3.5.151"
37
+ version = "3.5.152"
38
38
  __version__ = version
39
39
 
40
40
 
@@ -240,10 +240,9 @@ class TasksForCommonProjectStructure:
240
240
  @GeneralUtilities.check_arguments
241
241
  def copy_source_files_to_output_directory(self, buildscript_file: str) -> None:
242
242
  GeneralUtilities.write_message_to_stdout("Copy sourcecode...")
243
- sc = ScriptCollectionCore()
244
243
  folder = os.path.dirname(os.path.realpath(buildscript_file))
245
244
  codeunit_folder = GeneralUtilities.resolve_relative_path("../..", folder)
246
- result = sc.run_program_argsasarray("git", ["ls-tree", "-r", "HEAD", "--name-only"], codeunit_folder)
245
+ result = self.__sc.run_program_argsasarray("git", ["ls-tree", "-r", "HEAD", "--name-only"], codeunit_folder)
247
246
  files = [f for f in result[1].split('\n') if len(f) > 0]
248
247
  for file in files:
249
248
  full_source_file = os.path.join(codeunit_folder, file)
@@ -271,7 +270,6 @@ class TasksForCommonProjectStructure:
271
270
  }
272
271
  for target in targets:
273
272
  GeneralUtilities.write_message_to_stdout(f"Build package {package_name} for target {target_names[target]}...")
274
- sc = ScriptCollectionCore()
275
273
  self.run_with_epew("flutter", f"build {target}", src_folder, verbosity)
276
274
  if target == "web":
277
275
  web_relase_folder = os.path.join(src_folder, "build/web")
@@ -300,7 +298,7 @@ class TasksForCommonProjectStructure:
300
298
  GeneralUtilities.ensure_directory_does_not_exist(apk_folder)
301
299
  GeneralUtilities.ensure_directory_exists(apk_folder)
302
300
  apks_file = f"{apk_folder}/{codeunit_name}.apks"
303
- sc.run_program("java", f"-jar {bundletool} build-apks --bundle={aab_file} --output={apks_file} --mode=universal", aab_relase_folder, verbosity)
301
+ self.__sc.run_program("java", f"-jar {bundletool} build-apks --bundle={aab_file} --output={apks_file} --mode=universal", aab_relase_folder, verbosity)
304
302
  with zipfile.ZipFile(apks_file, "r") as zip_ref:
305
303
  zip_ref.extract("universal.apk", apk_folder)
306
304
  GeneralUtilities.ensure_file_does_not_exist(apks_file)
@@ -485,7 +483,7 @@ class TasksForCommonProjectStructure:
485
483
  self.write_version_to_codeunit_file(codeunit_file, current_version)
486
484
 
487
485
  @GeneralUtilities.check_arguments
488
- def t4_transform(self, commontasks_script_file_of_current_file: str, verbosity: int,ignore_git_ignored_files:bool=True):
486
+ def t4_transform(self, commontasks_script_file_of_current_file: str, verbosity: int, ignore_git_ignored_files: bool = True):
489
487
  codeunit_folder = GeneralUtilities.resolve_relative_path("../..", commontasks_script_file_of_current_file)
490
488
  self.__ensure_grylibrary_is_available(codeunit_folder)
491
489
  repository_folder: str = os.path.dirname(codeunit_folder)
@@ -494,51 +492,19 @@ class TasksForCommonProjectStructure:
494
492
  for search_result in Path(codeunit_folder).glob('**/*.tt'):
495
493
  tt_file = str(search_result)
496
494
  relative_path_to_tt_file_from_repository = str(Path(tt_file).relative_to(repository_folder))
497
- if (not ignore_git_ignored_files) or (ignore_git_ignored_files and not self.__sc.file_is_git_ignored(relative_path_to_tt_file_from_repository,repository_folder)):
495
+ if (not ignore_git_ignored_files) or (ignore_git_ignored_files and not self.__sc.file_is_git_ignored(relative_path_to_tt_file_from_repository, repository_folder)):
498
496
  relative_path_to_tt_file_from_codeunit_file = str(Path(tt_file).relative_to(codeunit_folder))
499
497
  argument = [f"--parameter=repositoryFolder={repository_folder}", f"--parameter=codeUnitName={codeunitname}", relative_path_to_tt_file_from_codeunit_file]
500
498
  self.__sc.run_program_argsasarray("t4", argument, codeunit_folder, verbosity=verbosity)
501
499
 
502
500
  @GeneralUtilities.check_arguments
503
- def get_resource_from_global_resource(self,codeunit_folder:str,resource_name:str):
504
- repository_folder:str= GeneralUtilities.resolve_relative_path("..", codeunit_folder)
505
- source_folder:str=os.path.join(repository_folder,"Other","Resources",resource_name)
506
- target_folder:str=os.path.join(codeunit_folder,"Other","Resources",resource_name)
501
+ def get_resource_from_global_resource(self, codeunit_folder: str, resource_name: str):
502
+ repository_folder: str = GeneralUtilities.resolve_relative_path("..", codeunit_folder)
503
+ source_folder: str = os.path.join(repository_folder, "Other", "Resources", resource_name)
504
+ target_folder: str = os.path.join(codeunit_folder, "Other", "Resources", resource_name)
507
505
  GeneralUtilities.ensure_folder_exists_and_is_empty(target_folder)
508
506
  GeneralUtilities.copy_content_of_folder(source_folder, target_folder)
509
507
 
510
- @GeneralUtilities.check_arguments
511
- def clone_repository_as_resource(self,local_repository_folder:str,remote_repository_link:str, resource_name:str,repository_subname:str=None)->str:
512
- commit_id:str=None
513
- target_folder:str=os.path.join(local_repository_folder,"Other","Resources",resource_name)
514
- if repository_subname is not None:
515
- target_folder=os.path.join(target_folder,repository_subname)
516
- if not os.path.isdir(target_folder):
517
- GeneralUtilities.ensure_directory_exists(target_folder)
518
- GeneralUtilities.write_message_to_stdout(f"Clone {remote_repository_link} into {target_folder}...")
519
- self.__sc.run_program("git",f"clone --recurse-submodules {remote_repository_link} {target_folder}")
520
-
521
- self.__sc.git_get_commit_id(target_folder)
522
-
523
- git_folders:list[str]=[]
524
- git_files:list[str]=[]
525
- for dirpath, dirnames, filenames in os.walk(target_folder):
526
- for dirname in dirnames:
527
- if dirname == ".git":
528
- full_path = os.path.join(dirpath, dirname)
529
- git_folders.append(full_path)
530
- for filename in filenames:
531
- if filename == ".git":
532
- full_path = os.path.join(dirpath, filename)
533
- git_files.append(full_path)
534
- for git_folder in git_folders:
535
- if os.path.isdir(git_folder):
536
- GeneralUtilities.ensure_directory_does_not_exist(git_folder)
537
- for git_file in git_files:
538
- if os.path.isdir(git_file):
539
- GeneralUtilities.ensure_file_does_not_exist(git_file)
540
- return commit_id
541
-
542
508
  @GeneralUtilities.check_arguments
543
509
  def standardized_tasks_generate_reference_by_docfx(self, generate_reference_script_file: str, verbosity: int, targetenvironmenttype: str, commandline_arguments: list[str]) -> None:
544
510
  verbosity = TasksForCommonProjectStructure.get_verbosity_from_commandline_arguments(commandline_arguments, verbosity)
@@ -821,10 +787,9 @@ class TasksForCommonProjectStructure:
821
787
  GeneralUtilities.write_message_to_stdout("Generate SBOM...")
822
788
  self.assert_is_codeunit_folder(codeunit_folder)
823
789
  codeunit_name = os.path.basename(codeunit_folder)
824
- sc = ScriptCollectionCore()
825
790
  bomfile_folder = "Other\\Artifacts\\BOM"
826
791
  verbosity = TasksForCommonProjectStructure.get_verbosity_from_commandline_arguments(commandline_arguments, verbosity)
827
- sc.run_program_argsasarray("dotnet", ["CycloneDX", f"{codeunit_name}\\{codeunit_name}.csproj", "-o", bomfile_folder, "--disable-github-licenses"], codeunit_folder, verbosity=verbosity)
792
+ self.__sc.run_program_argsasarray("dotnet", ["CycloneDX", f"{codeunit_name}\\{codeunit_name}.csproj", "-o", bomfile_folder, "--disable-github-licenses"], codeunit_folder, verbosity=verbosity)
828
793
  codeunitversion = self.get_version_of_codeunit(os.path.join(codeunit_folder, f"{codeunit_name}.codeunit.xml"))
829
794
  target = f"{codeunit_folder}\\{bomfile_folder}\\{codeunit_name}.{codeunitversion}.sbom.xml"
830
795
  GeneralUtilities.ensure_file_does_not_exist(target)
@@ -1495,8 +1460,7 @@ class TasksForCommonProjectStructure:
1495
1460
  codeunit_folder = os.path.join(repository_folder, codeunitname)
1496
1461
  artifacts_folder = self.get_artifacts_folder(repository_folder, codeunitname)
1497
1462
  applicationimage_folder = os.path.join(artifacts_folder, "BuildResult_OCIImage")
1498
- sc = ScriptCollectionCore()
1499
- image_file = sc.find_file_by_extension(applicationimage_folder, "tar")
1463
+ image_file = self.__sc.find_file_by_extension(applicationimage_folder, "tar")
1500
1464
  image_filename = os.path.basename(image_file)
1501
1465
  codeunit_version = self.get_version_of_codeunit(os.path.join(codeunit_folder, f"{codeunitname}.codeunit.xml"))
1502
1466
  if remote_image_name is None:
@@ -1507,15 +1471,15 @@ class TasksForCommonProjectStructure:
1507
1471
  remote_image_latest = f"{remote_repo}:latest"
1508
1472
  remote_image_version = f"{remote_repo}:{codeunit_version}"
1509
1473
  GeneralUtilities.write_message_to_stdout("Load image...")
1510
- sc.run_program("docker", f"load --input {image_filename}", applicationimage_folder, verbosity=verbosity)
1474
+ self.__sc.run_program("docker", f"load --input {image_filename}", applicationimage_folder, verbosity=verbosity)
1511
1475
  GeneralUtilities.write_message_to_stdout("Tag image...")
1512
- sc.run_program("docker", f"tag {local_image_name}:{codeunit_version} {remote_image_latest}", verbosity=verbosity)
1513
- sc.run_program("docker", f"tag {local_image_name}:{codeunit_version} {remote_image_version}", verbosity=verbosity)
1476
+ self.__sc.run_program("docker", f"tag {local_image_name}:{codeunit_version} {remote_image_latest}", verbosity=verbosity)
1477
+ self.__sc.run_program("docker", f"tag {local_image_name}:{codeunit_version} {remote_image_version}", verbosity=verbosity)
1514
1478
  GeneralUtilities.write_message_to_stdout("Push image...")
1515
- sc.run_program("docker", f"push {remote_image_latest}", verbosity=verbosity)
1516
- sc.run_program("docker", f"push {remote_image_version}", verbosity=verbosity)
1479
+ self.__sc.run_program("docker", f"push {remote_image_latest}", verbosity=verbosity)
1480
+ self.__sc.run_program("docker", f"push {remote_image_version}", verbosity=verbosity)
1517
1481
  if push_readme:
1518
- sc.run_program("docker-pushrm", f"{remote_repo}", codeunit_folder, verbosity=verbosity)
1482
+ self.__sc.run_program("docker-pushrm", f"{remote_repo}", codeunit_folder, verbosity=verbosity)
1519
1483
 
1520
1484
  @GeneralUtilities.check_arguments
1521
1485
  def get_dependent_code_units(self, codeunit_file: str) -> list[str]:
@@ -1797,7 +1761,7 @@ class TasksForCommonProjectStructure:
1797
1761
  @GeneralUtilities.check_arguments
1798
1762
  def get_version_of_project(self, repository_folder: str) -> str:
1799
1763
  self.__sc.assert_is_git_repository(repository_folder)
1800
- return ScriptCollectionCore().get_semver_version_from_gitversion(repository_folder)
1764
+ return self.__sc.get_semver_version_from_gitversion(repository_folder)
1801
1765
 
1802
1766
  @GeneralUtilities.check_arguments
1803
1767
  def replace_common_variables_in_nuspec_file(self, codeunit_folder: str) -> None:
@@ -2248,7 +2212,7 @@ class TasksForCommonProjectStructure:
2248
2212
  openapi_spec_file = os.path.join(codeunit_folder, "Other", "Resources", "DependentCodeUnits", name_of_api_providing_codeunit, "APISpecification", f"{name_of_api_providing_codeunit}.latest.api.json")
2249
2213
  target_folder = os.path.join(codeunit_folder, target_subfolder_in_codeunit)
2250
2214
  GeneralUtilities.ensure_folder_exists_and_is_empty(target_folder)
2251
- ScriptCollectionCore().run_program("java", f'-jar {openapigenerator_jar_file} generate -i {openapi_spec_file} -g {language} -o {target_folder} --global-property supportingFiles --global-property models --global-property apis', codeunit_folder)
2215
+ self.__sc.run_program("java", f'-jar {openapigenerator_jar_file} generate -i {openapi_spec_file} -g {language} -o {target_folder} --global-property supportingFiles --global-property models --global-property apis', codeunit_folder)
2252
2216
 
2253
2217
  @GeneralUtilities.check_arguments
2254
2218
  def generate_api_client_from_dependent_codeunit_in_dotnet(self, file: str, name_of_api_providing_codeunit: str, base_namespace: str) -> None:
@@ -2266,7 +2230,7 @@ class TasksForCommonProjectStructure:
2266
2230
  openapi_spec_file = os.path.join(codeunit_folder, "Other", "Resources", "DependentCodeUnits", name_of_api_providing_codeunit, "APISpecification", f"{name_of_api_providing_codeunit}.latest.api.json")
2267
2231
  target_folder = os.path.join(codeunit_folder, target_subfolder_in_codeunit)
2268
2232
  GeneralUtilities.ensure_directory_exists(target_folder)
2269
- ScriptCollectionCore().run_program("java", f'-jar {openapigenerator_jar_file} generate -i {openapi_spec_file} -g {language} -o {target_folder} --global-property supportingFiles --global-property models --global-property apis {additional_properties}', codeunit_folder)
2233
+ self.__sc.run_program("java", f'-jar {openapigenerator_jar_file} generate -i {openapi_spec_file} -g {language} -o {target_folder} --global-property supportingFiles --global-property models --global-property apis {additional_properties}', codeunit_folder)
2270
2234
 
2271
2235
  # move docs to correct folder
2272
2236
  target_folder_docs = os.path.join(target_folder, "docs")
@@ -2963,13 +2927,12 @@ class TasksForCommonProjectStructure:
2963
2927
 
2964
2928
  @GeneralUtilities.check_arguments
2965
2929
  def __generate_svg_files_from_plantuml(self, diagrams_files_folder: str, plant_uml_folder: str) -> None:
2966
- sc = ScriptCollectionCore()
2967
2930
  for file in GeneralUtilities.get_all_files_of_folder(diagrams_files_folder):
2968
2931
  if file.endswith(".plantuml"):
2969
2932
  output_filename = self.get_output_filename_for_plantuml_filename(file)
2970
2933
  argument = ['-jar', f'{plant_uml_folder}/plantuml.jar', '-tsvg', os.path.basename(file)]
2971
2934
  folder = os.path.dirname(file)
2972
- sc.run_program_argsasarray("java", argument, folder, verbosity=0)
2935
+ self.__sc.run_program_argsasarray("java", argument, folder, verbosity=0)
2973
2936
  result_file = folder+"/" + output_filename
2974
2937
  GeneralUtilities.assert_file_exists(result_file)
2975
2938
  self.__sc.format_xml_file(result_file)
@@ -3067,7 +3030,7 @@ class TasksForCommonProjectStructure:
3067
3030
  artifacts_folder = os.path.join(codeunit_folder, "Other", "Artifacts", artifact_name_of_zip)
3068
3031
  manifest_folder = os.path.join(codeunit_folder, "Other", "Artifacts", "WinGet-Manifest")
3069
3032
  GeneralUtilities.assert_folder_exists(artifacts_folder)
3070
- artifacts_file = ScriptCollectionCore().find_file_by_extension(artifacts_folder, "zip")
3033
+ artifacts_file = self.__sc.find_file_by_extension(artifacts_folder, "zip")
3071
3034
  winget_template_file = os.path.join(build_folder, "WinGet-Template.yaml")
3072
3035
  winget_manifest_file = os.path.join(manifest_folder, "WinGet-Manifest.yaml")
3073
3036
  GeneralUtilities.assert_file_exists(winget_template_file)
@@ -3502,3 +3465,57 @@ class TasksForCommonProjectStructure:
3502
3465
  excluded = ["opendms"]
3503
3466
  iu.update_all_services_in_docker_compose_file(dockercomposefile, VersionEcholon.LatestPatchOrLatestMinor, excluded)
3504
3467
  iu.check_for_newest_version(dockercomposefile, excluded)
3468
+
3469
+
3470
+ @GeneralUtilities.check_arguments
3471
+ def clone_repository_as_resource(self, local_repository_folder: str, remote_repository_link: str, resource_name: str, repository_subname: str = None) -> None:
3472
+ resrepo_commit_id_folder: str = os.path.join(local_repository_folder, "Other", "Resources", f"{resource_name}Version")
3473
+ resrepo_commit_id_file: str = os.path.join(resrepo_commit_id_folder, f"{resource_name}Version.txt")
3474
+ latest_version: str = GeneralUtilities.read_text_from_file(resrepo_commit_id_file)
3475
+ resrepo_data_folder: str = os.path.join(local_repository_folder, "Other", "Resources", resource_name).replace("\\", "/")
3476
+ current_version: str = None
3477
+ resrepo_data_version: str = os.path.join(resrepo_data_folder, f"{resource_name}Version.txt")
3478
+ if os.path.isdir(resrepo_data_folder):
3479
+ if os.path.isfile(resrepo_data_version):
3480
+ current_version = GeneralUtilities.read_text_from_file(resrepo_data_version)
3481
+ if (current_version is None) or (current_version != latest_version):
3482
+ target_folder: str = resrepo_data_folder
3483
+ if repository_subname is not None:
3484
+ target_folder = f"{resrepo_data_folder}/{repository_subname}"
3485
+ GeneralUtilities.ensure_folder_exists_and_is_empty(target_folder)
3486
+ self.__sc.run_program("git", f"clone --recurse-submodules {remote_repository_link} {target_folder}")
3487
+ self.__sc.run_program("git", f"checkout {latest_version}", target_folder)
3488
+ GeneralUtilities.write_text_to_file(resrepo_data_version, latest_version)
3489
+
3490
+ git_folders: list[str] = []
3491
+ git_files: list[str] = []
3492
+ for dirpath, dirnames, filenames in os.walk(target_folder):
3493
+ for dirname in dirnames:
3494
+ if dirname == ".git":
3495
+ full_path = os.path.join(dirpath, dirname)
3496
+ git_folders.append(full_path)
3497
+ for filename in filenames:
3498
+ if filename == ".git":
3499
+ full_path = os.path.join(dirpath, filename)
3500
+ git_files.append(full_path)
3501
+ for git_folder in git_folders:
3502
+ if os.path.isdir(git_folder):
3503
+ GeneralUtilities.ensure_directory_does_not_exist(git_folder)
3504
+ for git_file in git_files:
3505
+ if os.path.isdir(git_file):
3506
+ GeneralUtilities.ensure_file_does_not_exist(git_file)
3507
+
3508
+ def set_latest_version_for_clone_repository_as_resource(self, resourcename: str, github_link: str, branch: str = "main"):
3509
+ current_file = str(Path(__file__).absolute())
3510
+ repository_folder = GeneralUtilities.resolve_relative_path("../../..", current_file)
3511
+
3512
+ resrepo_commit_id_folder: str = os.path.join(repository_folder, "Other", "Resources", f"{resourcename}Version")
3513
+ resrepo_commit_id_file: str = os.path.join(resrepo_commit_id_folder, f"{resourcename}Version.txt")
3514
+ current_version: str = GeneralUtilities.read_text_from_file(resrepo_commit_id_file)
3515
+
3516
+ stdOut = [l.split("\t") for l in GeneralUtilities.string_to_lines(self.__sc.run_program("git", f"ls-remote {github_link}")[1])]
3517
+ stdOut = [l for l in stdOut if l[1] == f"refs/heads/{branch}"]
3518
+ GeneralUtilities.assert_condition(len(stdOut) == 1)
3519
+ latest_version: str = stdOut[0][0]
3520
+ if current_version != latest_version:
3521
+ GeneralUtilities.write_text_to_file(resrepo_commit_id_file, latest_version)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ScriptCollection
3
- Version: 3.5.151
3
+ Version: 3.5.152
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
@@ -7,11 +7,11 @@ ScriptCollection/ProgramRunnerBase.py,sha256=2kMIAqdc65UjBAddOZkzy_aFx9h5roZ5a4b
7
7
  ScriptCollection/ProgramRunnerEpew.py,sha256=4pjEd0r9Fcz3TTDv0MdTSd5KkigYXcWUVI1X43regfU,6477
8
8
  ScriptCollection/ProgramRunnerPopen.py,sha256=BPY7-ZMIlqT7JOKz8qlB5c0laF2Js-ijzqk09GxZC48,3821
9
9
  ScriptCollection/SCLog.py,sha256=GJ44S6VaBVwX5Dd6MIrdZn6I0dpaaYKVq9w-N0nMXlo,4496
10
- ScriptCollection/ScriptCollectionCore.py,sha256=YJ6uOGQa224jtsva_OX3r8h2aIzGR9GAfJH4h-9iIAc,138093
11
- ScriptCollection/TasksForCommonProjectStructure.py,sha256=9vccEWsxlW7xGXFLc2RPPFMWCkmoGxbSGu7hi9NxkeU,244959
10
+ ScriptCollection/ScriptCollectionCore.py,sha256=cOswEDwCQ4ndqIz-X0M2lGQD1WBtKLXvjd5aXtyoxUo,138093
11
+ ScriptCollection/TasksForCommonProjectStructure.py,sha256=_QNBZo_48y6UIGKpeepkrCHNvkCpO6MHB2kakgLBe4k,246625
12
12
  ScriptCollection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- scriptcollection-3.5.151.dist-info/METADATA,sha256=-EuHJHBjH-Oe9njZujrMzqr5aUXDVt_20DyCPY_81RE,7689
14
- scriptcollection-3.5.151.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
15
- scriptcollection-3.5.151.dist-info/entry_points.txt,sha256=AvmVO9iyWImExpvzL3YYQ9AOEiUIN9guPRRG_W_VNWY,4116
16
- scriptcollection-3.5.151.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
17
- scriptcollection-3.5.151.dist-info/RECORD,,
13
+ scriptcollection-3.5.152.dist-info/METADATA,sha256=W5nkU3X26V-6tgI3aFnpzsaaVPOFHYcHQ1iQW2U_ILg,7689
14
+ scriptcollection-3.5.152.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
15
+ scriptcollection-3.5.152.dist-info/entry_points.txt,sha256=AvmVO9iyWImExpvzL3YYQ9AOEiUIN9guPRRG_W_VNWY,4116
16
+ scriptcollection-3.5.152.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
17
+ scriptcollection-3.5.152.dist-info/RECORD,,