Skip to content

Commit 71bfc2a

Browse files
committed
refactor: cleaned up duplicate code in r_scope
Refs: #101
1 parent 8f1b0a5 commit 71bfc2a

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

conventional_pre_commit/format.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,23 @@ def r_types(types):
2727
return "|".join(types)
2828

2929

30+
def _get_scope_pattern(scopes: Optional[List[str]] = None):
31+
scopes_str = r_types(scopes)
32+
escaped_delimiters = list(map(re.escape, [":", ","])) # type: ignore
33+
delimiters_pattern = r_types(escaped_delimiters)
34+
return rf"\(\s*(?:{scopes_str})(?:\s*(?:{delimiters_pattern})\s*(?:{scopes_str}))*\s*\)"
35+
36+
3037
def r_scope(optional=True, scopes: Optional[List[str]] = None):
3138
"""Regex str for an optional (scope)."""
3239

40+
if scopes:
41+
scopes_pattern = _get_scope_pattern(scopes)
42+
return scopes_pattern
43+
3344
if optional:
34-
if scopes:
35-
scopes_str = r_types(scopes)
36-
# delims_str = r_types([":", ",", "-"])
37-
escaped_delimiters = list(map(re.escape, [":", ","])) # type: ignore
38-
delimiters_pattern = r_types(escaped_delimiters)
39-
return rf"\(\s*(?:{scopes_str})(?:\s*(?:{delimiters_pattern})\s*(?:{scopes_str}))*\s*\)"
4045
return r"(\([\w \/:,-]+\))?"
4146
else:
42-
if scopes:
43-
scopes_str = r_types(scopes)
44-
escaped_delimiters = list(map(re.escape, [":", ","])) # type: ignore
45-
delimiters_pattern = r_types(escaped_delimiters)
46-
return rf"\(\s*(?:{scopes_str})(?:\s*(?:{delimiters_pattern})\s*(?:{scopes_str}))*\s*\)"
4747
return r"(\([\w \/:,-]+\))"
4848

4949

0 commit comments

Comments
 (0)