From c3434808bcb680fbd7265617d9ba0c242b733027 Mon Sep 17 00:00:00 2001 From: Thomas Huszak <58823579+1337thomas@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:58:28 +0100 Subject: [PATCH 1/3] Update SSolutionsRepositoryBuilder.py added possibility to pass a list of paths or a single path (str) --- .../builder/SSolutionsRepositoryBuilder.py | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py b/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py index 2613d10..1093ae4 100644 --- a/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py +++ b/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py @@ -14,22 +14,29 @@ class SSolutionsRepositoryBuilder: def __init__(self): self.repo = SRepository() - def build(self, path): - if not os.path.exists(path): - print("ERROR: path", path, "does not exist!") - sys.exit(1) - if not os.path.isdir(path): - print("ERROR: path", path, "is not a directory!") + def build(self, paths): + if isinstance(paths, str): + paths = [paths] + elif not isinstance(paths, list): + print("ERROR: paths should be either a string or a list of strings!") sys.exit(1) - print("building model from path:", path) - start = timer() - self.collect_solutions_from_sources(path) - self.collect_solutions_from_jars(path) - self.repo.languages = list(SLanguageBuilder.languages.values()) - stop = timer() - duration = (stop - start) - print('duration is: ' + str(duration) + ' seconds') + for path in paths: + if not os.path.exists(path): + print("ERROR: path", path, "does not exist!") + continue + if not os.path.isdir(path): + print("ERROR: path", path, "is not a directory!") + continue + + print("building model from path:", path) + start = timer() + self.collect_solutions_from_sources(path) + self.collect_solutions_from_jars(path) + self.repo.languages = list(SLanguageBuilder.languages.values()) + stop = timer() + duration = (stop - start) + print('duration for', path, 'is: ' + str(duration) + ' seconds') return self.repo def collect_solutions_from_sources(self, path): From 11f920dcffb96bebee5adf288ed8dc1b89158f9b Mon Sep 17 00:00:00 2001 From: Thomas Huszak <58823579+1337thomas@users.noreply.github.com> Date: Mon, 17 Mar 2025 10:37:41 +0100 Subject: [PATCH 2/3] Update SSolutionsRepositoryBuilder.py made one timer for all parsed solutions --- .../mpscli/model/builder/SSolutionsRepositoryBuilder.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py b/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py index 1093ae4..794dac0 100644 --- a/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py +++ b/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py @@ -21,6 +21,7 @@ def build(self, paths): print("ERROR: paths should be either a string or a list of strings!") sys.exit(1) + start = timer() for path in paths: if not os.path.exists(path): print("ERROR: path", path, "does not exist!") @@ -30,13 +31,12 @@ def build(self, paths): continue print("building model from path:", path) - start = timer() self.collect_solutions_from_sources(path) self.collect_solutions_from_jars(path) self.repo.languages = list(SLanguageBuilder.languages.values()) - stop = timer() - duration = (stop - start) - print('duration for', path, 'is: ' + str(duration) + ' seconds') + stop = timer() + duration = (stop - start) + print('duration for parsing solutions: ' + str(duration) + ' seconds') return self.repo def collect_solutions_from_sources(self, path): From a36185718b4471330fc0486d0ba979e8488d2957 Mon Sep 17 00:00:00 2001 From: Thomas Huszak <58823579+1337thomas@users.noreply.github.com> Date: Tue, 18 Mar 2025 09:00:51 +0100 Subject: [PATCH 3/3] Update SSolutionsRepositoryBuilder.py review update --- .../src/mpscli/model/builder/SSolutionsRepositoryBuilder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py b/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py index 794dac0..a051d99 100644 --- a/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py +++ b/mps-cli-py/src/mpscli/model/builder/SSolutionsRepositoryBuilder.py @@ -33,10 +33,10 @@ def build(self, paths): print("building model from path:", path) self.collect_solutions_from_sources(path) self.collect_solutions_from_jars(path) - self.repo.languages = list(SLanguageBuilder.languages.values()) + self.repo.languages = list(SLanguageBuilder.languages.values()) stop = timer() duration = (stop - start) - print('duration for parsing solutions: ' + str(duration) + ' seconds') + print('duration for parsing modules: ' + str(duration) + ' seconds') return self.repo def collect_solutions_from_sources(self, path):