Skip to content

Commit 6f40a1e

Browse files
Merge pull request #1 from darkdragon-001/improve-iterators
Avoid creating a list for iterators.
2 parents 58301b1 + ba60bac commit 6f40a1e

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

gitlab_submodule/gitlab_submodule.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
from gitlab.v4.objects import Project, ProjectManager
55

66
from gitlab_submodule.objects import Submodule, Subproject
7-
from gitlab_submodule.read_gitmodules import list_project_submodules
7+
from gitlab_submodule.read_gitmodules import list_project_submodules, iterate_project_submodules
88
from gitlab_submodule.submodule_to_project import submodule_to_project
99
from gitlab_submodule.submodule_commit import get_submodule_commit
1010

1111

1212
list_submodules = list_project_submodules
13+
iterate_submodules = iterate_project_submodules
1314

1415

1516
def _get_project_manager(
@@ -50,7 +51,7 @@ def iterate_subprojects(
5051
get_latest_commit_possible_if_not_found: bool = False,
5152
get_latest_commit_possible_ref: Optional[str] = None
5253
) -> Generator[Subproject, None, None]:
53-
for gitmodules_submodule in list_project_submodules(project, ref):
54+
for gitmodules_submodule in iterate_project_submodules(project, ref):
5455
try:
5556
yield submodule_to_subproject(
5657
gitmodules_submodule,

gitlab_submodule/read_gitmodules.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
def list_project_submodules(
1111
project: Project,
1212
ref: Optional[str] = None) -> List[Submodule]:
13-
return list(_get_project_submodules(project, ref))
13+
return list(iterate_project_submodules(project, ref))
1414

1515

16-
def _get_project_submodules(
16+
def iterate_project_submodules(
1717
project: Project,
1818
ref: Optional[str] = None) -> Iterable[Submodule]:
1919
gitmodules_file_content = _get_gitmodules_file_content(project, ref)
@@ -41,7 +41,7 @@ def _get_gitmodules_file_content(project: Project,
4141

4242

4343
def _read_gitmodules_file_content(
44-
gitmodules_file_content: str) -> List[Tuple[str, str, str]]:
44+
gitmodules_file_content: str) -> Iterable[Tuple[str, str, str]]:
4545
"""Some basic regex extractions to parse content of .gitmodules file
4646
"""
4747
name_regex = r'\[submodule "([a-zA-Z0-9\.\-/_]+)"\]'
@@ -52,4 +52,4 @@ def _read_gitmodules_file_content(
5252
urls = re.findall(url_regex, gitmodules_file_content)
5353
if not (len(names) == len(paths) == len(urls)):
5454
raise RuntimeError('Failed parsing the .gitmodules content')
55-
return list(zip(names, urls, paths))
55+
return zip(names, urls, paths)

0 commit comments

Comments
 (0)