Skip to content

Commit e2df296

Browse files
committed
Refactoring, cleaning
1 parent d4017d5 commit e2df296

File tree

1 file changed

+40
-44
lines changed

1 file changed

+40
-44
lines changed

src/entrypoint.py

Lines changed: 40 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
# Badge setup
88
SRC = '"https://colab.research.google.com/assets/colab-badge.svg"'
99
ALT = '"Open In Colab"'
10+
BADGE_VAR = "{{ badge }}"
11+
BADGE_PATTERN = re.compile(r"<!--<badge>-->(.*?)<!--</badge>-->")
12+
HREF_PATTERN = re.compile(r"href=[\"\'](.*?)[\"\']")
1013

1114
# Set repository
1215
CURRENT_REPOSITORY = os.environ['GITHUB_REPOSITORY']
@@ -77,12 +80,20 @@ def check_cells(data: dict, repo_name: str, branch: str, nb_path: str):
7780
for cell in data["cells"]:
7881
# Check only markdown cells
7982
if cell["cell_type"] == "markdown":
80-
# If a cell already has a badge - check the repo and branch
81-
if UPDATE and any(["<!--<badge>-->" in line for line in cell["source"]]):
82-
# Update repo, branch, file path
83-
save = True if update_badge(cell, repo_name, branch, nb_path) else save
84-
# Add badge code, add metadata
85-
save = True if add_badge(cell, repo_name, branch, nb_path) else save
83+
text = cell["source"]
84+
for i, line in enumerate(text):
85+
# If a cell already has a badge - check the repo and branch
86+
if UPDATE:
87+
# Update repo, branch, file path
88+
new_line = update_badge(line, repo_name, branch, nb_path)
89+
if new_line:
90+
text[i] = new_line
91+
save = True if new_line else save
92+
# Add badge code
93+
new_line = add_badge(line, repo_name, branch, nb_path)
94+
if new_line:
95+
text[i] = new_line
96+
save = True if new_line else save
8697
else:
8798
continue
8899

@@ -92,22 +103,15 @@ def check_cells(data: dict, repo_name: str, branch: str, nb_path: str):
92103
write_nb(data, nb_path)
93104

94105

95-
def add_badge(cell: dict, repo_name: str, branch: str, nb_path: str):
106+
def add_badge(line: str, repo_name: str, branch: str, nb_path: str):
96107
"""Inserts "Open in Colab" badge.
97108
"""
98-
modified = False
99-
pattern = "{{ badge }}"
100-
text = cell["source"]
101-
for i, line in enumerate(text):
102-
if pattern in line:
103-
badge = prepare_badge_code(repo_name, branch, nb_path)
104-
print(f"{nb_path}: Inserting badge...")
105-
new_line = line.replace(pattern, badge)
106-
text[i] = new_line
107-
modified = True
108-
else:
109-
continue
110-
return modified
109+
new_line = None
110+
if BADGE_VAR in line:
111+
badge = prepare_badge_code(repo_name, branch, nb_path)
112+
print(f"{nb_path}: Inserting badge...")
113+
new_line = line.replace(BADGE_VAR, badge)
114+
return new_line
111115

112116

113117
def prepare_badge_code(repo_name: str, branch: str, nb_path: str) -> str:
@@ -118,33 +122,25 @@ def prepare_badge_code(repo_name: str, branch: str, nb_path: str) -> str:
118122
return code
119123

120124

121-
def update_badge(cell: dict, repo_name: str, branch: str, nb_path: str):
125+
def update_badge(line: str, repo_name: str, branch: str, nb_path: str):
122126
"""Updates added badge code.
123127
"""
124-
modified = False
125-
badge_pattern = re.compile(r"<!--<badge>-->(.*?)<!--</badge>-->")
126-
href_pattern = re.compile(r"href=[\"\'](.*?)[\"\']")
127-
128128
new_href = f"https://colab.research.google.com/github/{repo_name}/blob/{branch}/{nb_path}"
129-
text = cell["source"]
130-
131-
for i, line in enumerate(text):
132-
badges = badge_pattern.findall(line)
133-
if badges:
134-
for badge in badges:
135-
href = href_pattern.findall(badge)[0]
136-
repo_branch_nb = href.split("/github/")[-1]
137-
curr_repo, branch_nb = repo_branch_nb.split("/blob/")
138-
curr_branch, curr_nb_path = branch_nb.split("/", 1)
139-
140-
if (curr_repo != repo_name) or (curr_branch != branch) or (curr_nb_path != nb_path):
141-
print(f"{nb_path}: Updating badge info...")
142-
new_line = line.replace(href, new_href)
143-
text[i] = new_line
144-
modified = True
145-
else:
146-
continue
147-
return modified
129+
new_line = None
130+
131+
badges = BADGE_PATTERN.findall(line)
132+
if badges:
133+
for badge in badges:
134+
href = HREF_PATTERN.findall(badge)[0]
135+
repo_branch_nb = href.split("/github/")[-1]
136+
curr_repo, branch_nb = repo_branch_nb.split("/blob/")
137+
curr_branch, curr_nb_path = branch_nb.split("/", 1)
138+
139+
if (curr_repo != repo_name) or (curr_branch != branch) or (curr_nb_path != nb_path):
140+
print(f"{nb_path}: Updating badge info...")
141+
new_line = line.replace(href, new_href)
142+
143+
return new_line
148144

149145

150146
def write_nb(data: dict, file_path: str) -> None:

0 commit comments

Comments
 (0)