Skip to content

Commit

Permalink
octal-values: Pre-compile regex for performance
Browse files Browse the repository at this point in the history
  • Loading branch information
DerekTBrown authored and adrienverge committed Jun 11, 2022
1 parent bdbec7d commit 5658cf7
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions yamllint/rules/octal_values.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,7 @@
DEFAULT = {'forbid-implicit-octal': True,
'forbid-explicit-octal': True}


def _is_octal_number(string):
return re.match(r'^[0-7]+$', string) is not None
IS_OCTAL_NUMBER_PATTERN = re.compile(r'^[0-7]+$')


def check(conf, token, prev, next, nextnext, context):
Expand All @@ -98,7 +96,7 @@ def check(conf, token, prev, next, nextnext, context):
if not token.style:
val = token.value
if (val.isdigit() and len(val) > 1 and val[0] == '0' and
_is_octal_number(val[1:])):
IS_OCTAL_NUMBER_PATTERN.match(val[1:]) is not None):
yield LintProblem(
token.start_mark.line + 1, token.end_mark.column + 1,
'forbidden implicit octal value "%s"' %
Expand All @@ -109,7 +107,7 @@ def check(conf, token, prev, next, nextnext, context):
if not token.style:
val = token.value
if (len(val) > 2 and val[:2] == '0o' and
_is_octal_number(val[2:])):
IS_OCTAL_NUMBER_PATTERN.match(val[2:]) is not None):
yield LintProblem(
token.start_mark.line + 1, token.end_mark.column + 1,
'forbidden explicit octal value "%s"' %
Expand Down

0 comments on commit 5658cf7

Please sign in to comment.