Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lib/_py_warnings.py
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ def _setoption(arg):
if message:
message = re.escape(message)
if module:
module = re.escape(module) + r'\Z'
module = re.escape(module) + r'\z'
if lineno:
try:
lineno = int(lineno)
Expand Down
4 changes: 2 additions & 2 deletions Lib/_pydecimal.py
Original file line number Diff line number Diff line change
Expand Up @@ -6096,7 +6096,7 @@ def _convert_for_comparison(self, other, equality_op=False):
(?P<diag>\d*) # with (possibly empty) diagnostic info.
)
# \s*
\Z
\z
""", re.VERBOSE | re.IGNORECASE).match

_all_zeros = re.compile('0*$').match
Expand Down Expand Up @@ -6124,7 +6124,7 @@ def _convert_for_comparison(self, other, equality_op=False):
(?P<thousands_sep>[,_])?
(?:\.(?P<precision>0|(?!0)\d+))?
(?P<type>[eEfFgGn%])?
\Z
\z
""", re.VERBOSE|re.DOTALL)

del re
Expand Down
2 changes: 1 addition & 1 deletion Lib/email/feedparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

NLCRE = re.compile(r'\r\n|\r|\n')
NLCRE_bol = re.compile(r'(\r\n|\r|\n)')
NLCRE_eol = re.compile(r'(\r\n|\r|\n)\Z')
NLCRE_eol = re.compile(r'(\r\n|\r|\n)\z')
NLCRE_crack = re.compile(r'(\r\n|\r|\n)')
# RFC 2822 $3.6.8 Optional fields. ftext is %d33-57 / %d59-126, Any character
# except controls, SP, and ":".
Expand Down
2 changes: 1 addition & 1 deletion Lib/fractions.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def _hash_algorithm(numerator, denominator):
(?:\.(?P<decimal>\d*|\d+(_\d+)*))? # an optional fractional part
(?:E(?P<exp>[-+]?\d+(_\d+)*))? # and optional exponent
)
\s*\Z # and optional whitespace to finish
\s*\z # and optional whitespace to finish
""", re.VERBOSE | re.IGNORECASE)


Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/pyshell.py
Original file line number Diff line number Diff line change
Expand Up @@ -1350,7 +1350,7 @@ def recall(self, s, event):
self.text.see("insert")
self.text.undo_block_stop()

_last_newline_re = re.compile(r"[ \t]*(\n[ \t]*)?\Z")
_last_newline_re = re.compile(r"[ \t]*(\n[ \t]*)?\z")
def runit(self):
index_before = self.text.index("end-2c")
line = self.text.get("iomark", "end-1c")
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_asyncio/test_locks.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
r'(, value:\d)?'
r'(, waiters:\d+)?'
r'(, waiters:\d+\/\d+)?' # barrier
r')\]>\Z'
r')\]>\z'
)
RGX_REPR = re.compile(STR_RGX_REPR)

Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_gc.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ def func():
# We're mostly just checking that this doesn't crash.
rc, stdout, stderr = assert_python_ok("-c", code)
self.assertEqual(rc, 0)
self.assertRegex(stdout, rb"""\A\s*func=<function at \S+>\s*\Z""")
self.assertRegex(stdout, rb"""\A\s*func=<function at \S+>\s*\z""")
self.assertFalse(stderr)

@refcount_test
Expand Down
6 changes: 3 additions & 3 deletions Lib/test/test_import/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1001,7 +1001,7 @@ def test_script_shadowing_third_party(self):

expected_error = error + (
rb" \(consider renaming '.*numpy.py' if it has the "
rb"same name as a library you intended to import\)\s+\Z"
rb"same name as a library you intended to import\)\s+\z"
)

popen = script_helper.spawn_python(os.path.join(tmp, "numpy.py"))
Expand All @@ -1022,14 +1022,14 @@ def test_script_maybe_not_shadowing_third_party(self):
f.write("this_script_does_not_attempt_to_import_numpy = True")

expected_error = (
rb"AttributeError: module 'numpy' has no attribute 'attr'\s+\Z"
rb"AttributeError: module 'numpy' has no attribute 'attr'\s+\z"
)
popen = script_helper.spawn_python('-c', 'import numpy; numpy.attr', cwd=tmp)
stdout, stderr = popen.communicate()
self.assertRegex(stdout, expected_error)

expected_error = (
rb"ImportError: cannot import name 'attr' from 'numpy' \(.*\)\s+\Z"
rb"ImportError: cannot import name 'attr' from 'numpy' \(.*\)\s+\z"
)
popen = script_helper.spawn_python('-c', 'from numpy import attr', cwd=tmp)
stdout, stderr = popen.communicate()
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -6740,7 +6740,7 @@ def test_compute_files_to_delete_same_filename_different_extensions(self):
rotator = rotators[i]
candidates = rotator.getFilesToDelete()
self.assertEqual(len(candidates), n_files - backupCount, candidates)
matcher = re.compile(r"^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}\Z")
matcher = re.compile(r"^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}\z")
for c in candidates:
d, fn = os.path.split(c)
self.assertStartsWith(fn, prefix+'.')
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_strtod.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
(?P<int>\d*) # having a (possibly empty) integer part
(?:\.(?P<frac>\d*))? # followed by an optional fractional part
(?:E(?P<exp>[-+]?\d+))? # and an optional exponent
\Z
\z
""", re.VERBOSE | re.IGNORECASE).match

# Pure Python version of correctly rounded string->float conversion.
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_tkinter/widget_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def checkInvalidParam(self, widget, name, value, errmsg=None):
orig = widget[name]
if errmsg is not None:
errmsg = errmsg.format(re.escape(str(value)))
errmsg = fr'\A{errmsg}\Z'
errmsg = fr'\A{errmsg}\z'
with self.assertRaisesRegex(tkinter.TclError, errmsg or ''):
widget[name] = value
self.assertEqual(widget[name], orig)
Expand Down
6 changes: 3 additions & 3 deletions Lib/test/test_ttk/test_widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -490,7 +490,7 @@ def _show_drop_down_listbox(self):
width = self.combo.winfo_width()
x, y = width - 5, 5
if sys.platform != 'darwin': # there's no down arrow on macOS
self.assertRegex(self.combo.identify(x, y), r'.*downarrow\Z')
self.assertRegex(self.combo.identify(x, y), r'.*downarrow\z')
self.combo.event_generate('<Button-1>', x=x, y=y)
self.combo.event_generate('<ButtonRelease-1>', x=x, y=y)

Expand Down Expand Up @@ -1250,7 +1250,7 @@ def _click_increment_arrow(self):
height = self.spin.winfo_height()
x = width - 5
y = height//2 - 5
self.assertRegex(self.spin.identify(x, y), r'.*uparrow\Z')
self.assertRegex(self.spin.identify(x, y), r'.*uparrow\z')
self.spin.event_generate('<ButtonPress-1>', x=x, y=y)
self.spin.event_generate('<ButtonRelease-1>', x=x, y=y)
self.spin.update_idletasks()
Expand All @@ -1260,7 +1260,7 @@ def _click_decrement_arrow(self):
height = self.spin.winfo_height()
x = width - 5
y = height//2 + 4
self.assertRegex(self.spin.identify(x, y), r'.*downarrow\Z')
self.assertRegex(self.spin.identify(x, y), r'.*downarrow\z')
self.spin.event_generate('<ButtonPress-1>', x=x, y=y)
self.spin.event_generate('<ButtonRelease-1>', x=x, y=y)
self.spin.update_idletasks()
Expand Down
4 changes: 2 additions & 2 deletions Lib/textwrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ class TextWrapper:
-(?: (?<=%(lt)s{2}-) | (?<=%(lt)s-%(lt)s-))
(?= %(lt)s -? %(lt)s)
| # end of word
(?=%(ws)s|\Z)
(?=%(ws)s|\z)
| # em-dash
(?<=%(wp)s) (?=-{2,}\w)
)
Expand All @@ -107,7 +107,7 @@ class TextWrapper:
sentence_end_re = re.compile(r'[a-z]' # lowercase letter
r'[\.\!\?]' # sentence-ending punct.
r'[\"\']?' # optional end-of-quote
r'\Z') # end of chunk
r'\z') # end of chunk

def __init__(self,
width=70,
Expand Down
2 changes: 1 addition & 1 deletion Lib/tokenize.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def _compile(expr):
group("'", r'\\\r?\n'),
StringPrefix + r'"[^\n"\\]*(?:\\.[^\n"\\]*)*' +
group('"', r'\\\r?\n'))
PseudoExtras = group(r'\\\r?\n|\Z', Comment, Triple)
PseudoExtras = group(r'\\\r?\n|\z', Comment, Triple)
PseudoToken = Whitespace + group(PseudoExtras, Number, Funny, ContStr, Name)

# For a given string prefix plus quotes, endpats maps it to a regex
Expand Down
2 changes: 1 addition & 1 deletion Lib/urllib/parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ def _check_bracketed_netloc(netloc):
# https://www.rfc-editor.org/rfc/rfc3986#page-49 and https://url.spec.whatwg.org/
def _check_bracketed_host(hostname):
if hostname.startswith('v'):
if not re.match(r"\Av[a-fA-F0-9]+\..+\Z", hostname):
if not re.match(r"\Av[a-fA-F0-9]+\..+\z", hostname):
raise ValueError(f"IPvFuture address is invalid")
else:
ip = ipaddress.ip_address(hostname) # Throws Value Error if not IPv6 or IPv4
Expand Down
4 changes: 2 additions & 2 deletions Lib/zipfile/_path/glob.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ def extend(self, pattern):
Apply '(?s:)' to create a non-matching group that
matches newlines (valid on Unix).

Append '\Z' to imply fullmatch even when match is used.
Append '\z' to imply fullmatch even when match is used.
"""
return rf'(?s:{pattern})\Z'
return rf'(?s:{pattern})\z'

def match_dirs(self, pattern):
"""
Expand Down
Loading