Skip to content

Commit 9ac82dc

Browse files
committed
Fix regex tests on Python 3.14
1 parent 603b94e commit 9ac82dc

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

distutils/compilers/C/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class Compiler:
7070
# dictionary (see below -- used by the 'new_compiler()' factory
7171
# function) -- authors of new compiler interface classes are
7272
# responsible for updating 'compiler_class'!
73-
compiler_type: ClassVar[str] = None # type: ignore[assignment]
73+
compiler_type: ClassVar[str] = None
7474

7575
# XXX things not handled by this compiler abstraction model:
7676
# * client can't provide additional options for a compiler,

distutils/tests/test_filelist.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import logging
44
import os
55
import re
6+
import sys
67
from distutils import debug, filelist
78
from distutils.errors import DistutilsTemplateError
89
from distutils.filelist import FileList, glob_to_re, translate_pattern
@@ -45,22 +46,22 @@ def assertWarnings(self, caplog):
4546
caplog.clear()
4647

4748
def test_glob_to_re(self):
48-
sep = os.sep
49-
if os.sep == '\\':
50-
sep = re.escape(os.sep)
49+
sep = re.escape(os.sep) if os.sep == '\\' else os.sep
50+
# https://docs.python.org/3/whatsnew/3.14.html#re
51+
end_of_str_metachar = r"\z" if sys.version_info >= (3, 14) else r"\Z"
5152

5253
for glob, regex in (
5354
# simple cases
54-
('foo*', r'(?s:foo[^%(sep)s]*)\Z'),
55-
('foo?', r'(?s:foo[^%(sep)s])\Z'),
56-
('foo??', r'(?s:foo[^%(sep)s][^%(sep)s])\Z'),
55+
('foo*', r'(?s:foo[^%(sep)s]*)%(eos)s'),
56+
('foo?', r'(?s:foo[^%(sep)s])%(eos)s'),
57+
('foo??', r'(?s:foo[^%(sep)s][^%(sep)s])%(eos)s'),
5758
# special cases
58-
(r'foo\\*', r'(?s:foo\\\\[^%(sep)s]*)\Z'),
59-
(r'foo\\\*', r'(?s:foo\\\\\\[^%(sep)s]*)\Z'),
60-
('foo????', r'(?s:foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s])\Z'),
61-
(r'foo\\??', r'(?s:foo\\\\[^%(sep)s][^%(sep)s])\Z'),
59+
(r'foo\\*', r'(?s:foo\\\\[^%(sep)s]*)%(eos)s'),
60+
(r'foo\\\*', r'(?s:foo\\\\\\[^%(sep)s]*)%(eos)s'),
61+
('foo????', r'(?s:foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s])%(eos)s'),
62+
(r'foo\\??', r'(?s:foo\\\\[^%(sep)s][^%(sep)s])%(eos)s'),
6263
):
63-
regex = regex % {'sep': sep}
64+
regex = regex % {'sep': sep, 'eos': end_of_str_metachar}
6465
assert glob_to_re(glob) == regex
6566

6667
def test_process_template_line(self):

0 commit comments

Comments
 (0)