Skip to content

Commit 6f0d13b

Browse files
authored
Merge pull request #462 from singingwolfboy/regex-flags
Pull flags out of regular expressions
2 parents 8d03b34 + f89f487 commit 6f0d13b

File tree

5 files changed

+16
-14
lines changed

5 files changed

+16
-14
lines changed

babel/localtime/_unix.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import pytz
66
import subprocess
77

8-
_systemconfig_tz = re.compile(r'^Time Zone: (.*)$(?m)')
8+
_systemconfig_tz = re.compile(r'^Time Zone: (.*)$', re.MULTILINE)
99

1010

1111
def _tz_from_env(tzenv):

babel/messages/catalog.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
__all__ = ['Message', 'Catalog', 'TranslationError']
2929

3030

31-
PYTHON_FORMAT = re.compile(r'''(?x)
31+
PYTHON_FORMAT = re.compile(r'''
3232
\%
3333
(?:\(([\w]*)\))?
3434
(
@@ -37,7 +37,7 @@
3737
[hlL]?
3838
)
3939
([diouxXeEfFgGcrs%])
40-
''')
40+
''', re.VERBOSE)
4141

4242

4343
def _parse_datetime_header(value):

babel/messages/jslexer.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,33 +25,33 @@
2525
name_re = re.compile(r'[\w$_][\w\d$_]*', re.UNICODE)
2626
dotted_name_re = re.compile(r'[\w$_][\w\d$_.]*[\w\d$_.]', re.UNICODE)
2727
division_re = re.compile(r'/=?')
28-
regex_re = re.compile(r'/(?:[^/\\]*(?:\\.[^/\\]*)*)/[a-zA-Z]*(?s)')
28+
regex_re = re.compile(r'/(?:[^/\\]*(?:\\.[^/\\]*)*)/[a-zA-Z]*', re.DOTALL)
2929
line_re = re.compile(r'(\r\n|\n|\r)')
3030
line_join_re = re.compile(r'\\' + line_re.pattern)
3131
uni_escape_re = re.compile(r'[a-fA-F0-9]{1,4}')
3232

3333
Token = namedtuple('Token', 'type value lineno')
3434

3535
_rules = [
36-
(None, re.compile(r'\s+(?u)')),
36+
(None, re.compile(r'\s+', re.UNICODE)),
3737
(None, re.compile(r'<!--.*')),
3838
('linecomment', re.compile(r'//.*')),
39-
('multilinecomment', re.compile(r'/\*.*?\*/(?us)')),
39+
('multilinecomment', re.compile(r'/\*.*?\*/', re.UNICODE | re.DOTALL)),
4040
('dotted_name', dotted_name_re),
4141
('name', name_re),
42-
('number', re.compile(r'''(?x)(
42+
('number', re.compile(r'''(
4343
(?:0|[1-9]\d*)
4444
(\.\d+)?
4545
([eE][-+]?\d+)? |
4646
(0x[a-fA-F0-9]+)
47-
)''')),
47+
)''', re.VERBOSE)),
4848
('jsx_tag', re.compile(r'(?:</?[^>\s]+|/>)', re.I)), # May be mangled in `get_rules`
4949
('operator', re.compile(r'(%s)' % '|'.join(map(re.escape, operators)))),
5050
('template_string', re.compile(r'''`(?:[^`\\]*(?:\\.[^`\\]*)*)`''', re.UNICODE)),
51-
('string', re.compile(r'''(?xs)(
51+
('string', re.compile(r'''(
5252
'(?:[^'\\]*(?:\\.[^'\\]*)*)' |
5353
"(?:[^"\\]*(?:\\.[^"\\]*)*)"
54-
)'''))
54+
)''', re.VERBOSE | re.DOTALL))
5555
]
5656

5757

babel/plural.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ class RuleError(Exception):
321321
_VARS = 'nivwft'
322322

323323
_RULES = [
324-
(None, re.compile(r'\s+(?u)')),
324+
(None, re.compile(r'\s+', re.UNICODE)),
325325
('word', re.compile(r'\b(and|or|is|(?:with)?in|not|mod|[{0}])\b'
326326
.format(_VARS))),
327327
('value', re.compile(r'\d+')),

scripts/make-release.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ def parse_changelog():
3535
break
3636

3737
match = re.search(r'released on (\w+\s+\d+\w+\s+\d+)'
38-
r'(?:, codename (.*))?(?i)', change_info)
38+
r'(?:, codename (.*))?', change_info,
39+
flags=re.IGNORECASE)
3940
if match is None:
4041
continue
4142

@@ -68,8 +69,9 @@ def inject_version(match):
6869
changed.append(True)
6970
return before + version_number + after
7071
with open(filename) as f:
71-
contents = re.sub(r"^(\s*%s\s*=\s*')(.+?)(')(?sm)" % pattern,
72-
inject_version, f.read())
72+
contents = re.sub(r"^(\s*%s\s*=\s*')(.+?)(')" % pattern,
73+
inject_version, f.read(),
74+
flags=re.DOTALL | re.MULTILINE)
7375

7476
if not changed:
7577
fail('Could not find %s in %s', pattern, filename)

0 commit comments

Comments
 (0)