This commit is contained in:
algonell 2024-09-09 15:58:26 +03:00 committed by GitHub
parent df4f0cbfad
commit 9017b95ff2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
43 changed files with 59 additions and 59 deletions

View File

@ -100,7 +100,7 @@ JNIEXPORT void JNICALL Java_org_python_testbed_PythonTestRunner_redirectStdioToL
} }
// --- Python intialization ---------------------------------------------------- // --- Python initialization ---------------------------------------------------
static PyStatus set_config_string( static PyStatus set_config_string(
JNIEnv *env, PyConfig *config, wchar_t **config_str, jstring value JNIEnv *env, PyConfig *config, wchar_t **config_str, jstring value

View File

@ -442,7 +442,7 @@ class EnumDict(dict):
# accepts iterable as multiple arguments? # accepts iterable as multiple arguments?
value = t(auto_valued) value = t(auto_valued)
except TypeError: except TypeError:
# then pass them in singlely # then pass them in singly
value = t(*auto_valued) value = t(*auto_valued)
self._member_names[key] = None self._member_names[key] = None
if non_auto_store: if non_auto_store:

View File

@ -1663,7 +1663,7 @@ ddfma375087 fma 1 12345678 1E-33 -> 12345678.00000001 Inexac
ddfma375088 fma 1 12345678 1E-34 -> 12345678.00000001 Inexact Rounded ddfma375088 fma 1 12345678 1E-34 -> 12345678.00000001 Inexact Rounded
ddfma375089 fma 1 12345678 1E-35 -> 12345678.00000001 Inexact Rounded ddfma375089 fma 1 12345678 1E-35 -> 12345678.00000001 Inexact Rounded
-- desctructive subtraction (from remainder tests) -- destructive subtraction (from remainder tests)
-- +++ some of these will be off-by-one remainder vs remainderNear -- +++ some of these will be off-by-one remainder vs remainderNear

View File

@ -462,7 +462,7 @@ ddqua520 quantize 1.234 1e359 -> 0E+359 Inexact Rounded
ddqua521 quantize 123.456 1e359 -> 0E+359 Inexact Rounded ddqua521 quantize 123.456 1e359 -> 0E+359 Inexact Rounded
ddqua522 quantize 1.234 1e359 -> 0E+359 Inexact Rounded ddqua522 quantize 1.234 1e359 -> 0E+359 Inexact Rounded
ddqua523 quantize 123.456 1e359 -> 0E+359 Inexact Rounded ddqua523 quantize 123.456 1e359 -> 0E+359 Inexact Rounded
-- next four are "won't fit" overfl -- next four are "won't fit" overflow
ddqua526 quantize 1.234 1e-299 -> NaN Invalid_operation ddqua526 quantize 1.234 1e-299 -> NaN Invalid_operation
ddqua527 quantize 123.456 1e-299 -> NaN Invalid_operation ddqua527 quantize 123.456 1e-299 -> NaN Invalid_operation
ddqua528 quantize 1.234 1e-299 -> NaN Invalid_operation ddqua528 quantize 1.234 1e-299 -> NaN Invalid_operation

View File

@ -422,7 +422,7 @@ ddrem757 remainder 1 sNaN -> NaN Invalid_operation
ddrem758 remainder 1000 sNaN -> NaN Invalid_operation ddrem758 remainder 1000 sNaN -> NaN Invalid_operation
ddrem759 remainder Inf -sNaN -> -NaN Invalid_operation ddrem759 remainder Inf -sNaN -> -NaN Invalid_operation
-- propaging NaNs -- propagating NaNs
ddrem760 remainder NaN1 NaN7 -> NaN1 ddrem760 remainder NaN1 NaN7 -> NaN1
ddrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation ddrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation
ddrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation ddrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation

View File

@ -450,7 +450,7 @@ ddrmn757 remaindernear 1 sNaN -> NaN Invalid_operation
ddrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation ddrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation
ddrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation ddrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation
-- propaging NaNs -- propagating NaNs
ddrmn760 remaindernear NaN1 NaN7 -> NaN1 ddrmn760 remaindernear NaN1 NaN7 -> NaN1
ddrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation ddrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation
ddrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation ddrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation

View File

@ -418,7 +418,7 @@ dqrem757 remainder 1 sNaN -> NaN Invalid_operation
dqrem758 remainder 1000 sNaN -> NaN Invalid_operation dqrem758 remainder 1000 sNaN -> NaN Invalid_operation
dqrem759 remainder Inf -sNaN -> -NaN Invalid_operation dqrem759 remainder Inf -sNaN -> -NaN Invalid_operation
-- propaging NaNs -- propagating NaNs
dqrem760 remainder NaN1 NaN7 -> NaN1 dqrem760 remainder NaN1 NaN7 -> NaN1
dqrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation dqrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation
dqrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation dqrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation

View File

@ -450,7 +450,7 @@ dqrmn757 remaindernear 1 sNaN -> NaN Invalid_operation
dqrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation dqrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation
dqrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation dqrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation
-- propaging NaNs -- propagating NaNs
dqrmn760 remaindernear NaN1 NaN7 -> NaN1 dqrmn760 remaindernear NaN1 NaN7 -> NaN1
dqrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation dqrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation
dqrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation dqrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation

View File

@ -28,7 +28,7 @@ rounding: half_even
maxExponent: 384 maxExponent: 384
minexponent: -383 minexponent: -383
-- basics (examples in specificiation, etc.) -- basics (examples in specification, etc.)
expx001 exp -Infinity -> 0 expx001 exp -Infinity -> 0
expx002 exp -10 -> 0.0000453999298 Inexact Rounded expx002 exp -10 -> 0.0000453999298 Inexact Rounded
expx003 exp -1 -> 0.367879441 Inexact Rounded expx003 exp -1 -> 0.367879441 Inexact Rounded

View File

@ -435,7 +435,7 @@ remx757 remainder 1 sNaN -> NaN Invalid_operation
remx758 remainder 1000 sNaN -> NaN Invalid_operation remx758 remainder 1000 sNaN -> NaN Invalid_operation
remx759 remainder Inf -sNaN -> -NaN Invalid_operation remx759 remainder Inf -sNaN -> -NaN Invalid_operation
-- propaging NaNs -- propagating NaNs
remx760 remainder NaN1 NaN7 -> NaN1 remx760 remainder NaN1 NaN7 -> NaN1
remx761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation remx761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation
remx762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation remx762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation

View File

@ -498,7 +498,7 @@ rmnx758 remaindernear 1000 sNaN -> NaN Invalid_operation
rmnx759 remaindernear Inf sNaN -> NaN Invalid_operation rmnx759 remaindernear Inf sNaN -> NaN Invalid_operation
rmnx760 remaindernear NaN sNaN -> NaN Invalid_operation rmnx760 remaindernear NaN sNaN -> NaN Invalid_operation
-- propaging NaNs -- propagating NaNs
rmnx761 remaindernear NaN1 NaN7 -> NaN1 rmnx761 remaindernear NaN1 NaN7 -> NaN1
rmnx762 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation rmnx762 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation
rmnx763 remaindernear NaN3 -sNaN9 -> -NaN9 Invalid_operation rmnx763 remaindernear NaN3 -sNaN9 -> -NaN9 Invalid_operation

View File

@ -523,7 +523,7 @@ class Regrtest:
setup_process() setup_process()
if (runtests.hunt_refleak is not None) and (not self.num_workers): if (runtests.hunt_refleak is not None) and (not self.num_workers):
# gh-109739: WindowsLoadTracker thread interfers with refleak check # gh-109739: WindowsLoadTracker thread interferes with refleak check
use_load_tracker = False use_load_tracker = False
else: else:
# WindowsLoadTracker is only needed on Windows # WindowsLoadTracker is only needed on Windows

View File

@ -706,7 +706,7 @@ ILLEGAL_XML_CHARS_RE = re.compile(
# Special Unicode characters # Special Unicode characters
'\uFFFE' '\uFFFE'
'\uFFFF' '\uFFFF'
# Match multiple sequential invalid characters for better effiency # Match multiple sequential invalid characters for better efficiency
']+') ']+')
def _sanitize_xml_replace(regs): def _sanitize_xml_replace(regs):

View File

@ -51,7 +51,7 @@ nan
>>> INF / INF >>> INF / INF
nan nan
However unambigous operations with inf return inf: However unambiguous operations with inf return inf:
>>> INF * INF >>> INF * INF
inf inf
>>> 1.5 * INF >>> 1.5 * INF

View File

@ -2192,7 +2192,7 @@ class AbstractPicklingErrorTests:
@support.cpython_only @support.cpython_only
def test_bad_ext_code(self): def test_bad_ext_code(self):
# This should never happen in normal circumstances, because the type # This should never happen in normal circumstances, because the type
# and the value of the extesion code is checked in copyreg.add_extension(). # and the value of the extension code is checked in copyreg.add_extension().
key = (__name__, 'MyList') key = (__name__, 'MyList')
def check(code, exc): def check(code, exc):
assert key not in copyreg._extension_registry assert key not in copyreg._extension_registry

View File

@ -928,7 +928,7 @@ class TestInlineValues(unittest.TestCase):
C.a C.a
C.a C.a
# destructor shouldn't be able to see inconsisent state # destructor shouldn't be able to see inconsistent state
C.a = X() C.a = X()
C.a = X() C.a = X()

View File

@ -145,7 +145,7 @@ class ExecutorDeadlockTest:
self._check_crash(BrokenProcessPool, id, ExitAtUnpickle()) self._check_crash(BrokenProcessPool, id, ExitAtUnpickle())
def test_error_at_task_unpickle(self): def test_error_at_task_unpickle(self):
# gh-109832: Restore stderr overriden by _raise_error_ignore_stderr() # gh-109832: Restore stderr overridden by _raise_error_ignore_stderr()
self.addCleanup(setattr, sys, 'stderr', sys.stderr) self.addCleanup(setattr, sys, 'stderr', sys.stderr)
# Check problem occurring while unpickling a task on workers # Check problem occurring while unpickling a task on workers
@ -183,7 +183,7 @@ class ExecutorDeadlockTest:
self._check_crash(PicklingError, _return_instance, ErrorAtPickle) self._check_crash(PicklingError, _return_instance, ErrorAtPickle)
def test_error_during_result_unpickle_in_result_handler(self): def test_error_during_result_unpickle_in_result_handler(self):
# gh-109832: Restore stderr overriden by _raise_error_ignore_stderr() # gh-109832: Restore stderr overridden by _raise_error_ignore_stderr()
self.addCleanup(setattr, sys, 'stderr', sys.stderr) self.addCleanup(setattr, sys, 'stderr', sys.stderr)
# Check problem occurring while unpickling a task in # Check problem occurring while unpickling a task in

View File

@ -5328,7 +5328,7 @@ class TestConvert(unittest.TestCase):
filter=lambda x: x.startswith('CONVERT_TEST_')) filter=lambda x: x.startswith('CONVERT_TEST_'))
# We don't want the reverse lookup value to vary when there are # We don't want the reverse lookup value to vary when there are
# multiple possible names for a given value. It should always # multiple possible names for a given value. It should always
# report the first lexigraphical name in that case. # report the first lexicographical name in that case.
self.assertEqual(test_type(5).name, 'CONVERT_TEST_NAME_A') self.assertEqual(test_type(5).name, 'CONVERT_TEST_NAME_A')
def test_convert_int(self): def test_convert_int(self):

View File

@ -96,7 +96,7 @@ def typed_approx_eq(a, b):
class Symbolic: class Symbolic:
"""Simple non-numeric class for testing mixed arithmetic. """Simple non-numeric class for testing mixed arithmetic.
It is not Integral, Rational, Real or Complex, and cannot be conveted It is not Integral, Rational, Real or Complex, and cannot be converted
to int, float or complex. but it supports some arithmetic operations. to int, float or complex. but it supports some arithmetic operations.
""" """
def __init__(self, value): def __init__(self, value):

View File

@ -1,5 +1,5 @@
"""Tests monitoring, sys.settrace, and sys.setprofile in a multi-threaded """Tests monitoring, sys.settrace, and sys.setprofile in a multi-threaded
environmenet to verify things are thread-safe in a free-threaded build""" environment to verify things are thread-safe in a free-threaded build"""
import sys import sys
import time import time

View File

@ -744,13 +744,13 @@ x = (
}''', 'A complex trick: 2') }''', 'A complex trick: 2')
self.assertEqual(f''' self.assertEqual(f'''
{ {
40 # fourty 40 # forty
+ # plus + # plus
2 # two 2 # two
}''', '\n42') }''', '\n42')
self.assertEqual(f''' self.assertEqual(f'''
{ {
40 # fourty 40 # forty
+ # plus + # plus
2 # two 2 # two
}''', '\n42') }''', '\n42')

View File

@ -557,7 +557,7 @@ class MockGetPathTests(unittest.TestCase):
ns.add_known_dir("/Library/Frameworks/Python.framework/Versions/9.8/lib/python9.8/lib-dynload") ns.add_known_dir("/Library/Frameworks/Python.framework/Versions/9.8/lib/python9.8/lib-dynload")
ns.add_known_file("/Library/Frameworks/Python.framework/Versions/9.8/lib/python9.8/os.py") ns.add_known_file("/Library/Frameworks/Python.framework/Versions/9.8/lib/python9.8/os.py")
# This is definitely not the stdlib (see discusion in bpo-46890) # This is definitely not the stdlib (see discussion in bpo-46890)
#ns.add_known_file("/Library/Frameworks/lib/python98.zip") #ns.add_known_file("/Library/Frameworks/lib/python98.zip")
expected = dict( expected = dict(
@ -605,7 +605,7 @@ class MockGetPathTests(unittest.TestCase):
ns.add_known_dir("/Library/Frameworks/DebugPython.framework/Versions/9.8/lib/python9.8/lib-dynload") ns.add_known_dir("/Library/Frameworks/DebugPython.framework/Versions/9.8/lib/python9.8/lib-dynload")
ns.add_known_xfile("/Library/Frameworks/DebugPython.framework/Versions/9.8/lib/python9.8/os.py") ns.add_known_xfile("/Library/Frameworks/DebugPython.framework/Versions/9.8/lib/python9.8/os.py")
# This is definitely not the stdlib (see discusion in bpo-46890) # This is definitely not the stdlib (see discussion in bpo-46890)
#ns.add_known_xfile("/Library/lib/python98.zip") #ns.add_known_xfile("/Library/lib/python98.zip")
expected = dict( expected = dict(
executable="/Library/Frameworks/DebugPython.framework/Versions/9.8/bin/python9.8", executable="/Library/Frameworks/DebugPython.framework/Versions/9.8/bin/python9.8",

View File

@ -3749,16 +3749,16 @@ class ConfigDictTest(BaseTest):
'adict': { 'adict': {
'd': 'e', 'f': 3 , 'd': 'e', 'f': 3 ,
'alpha numeric 1 with spaces' : 5, 'alpha numeric 1 with spaces' : 5,
'aplha numeric 1 %( - © ©ß¯' : 9, 'alpha numeric 1 %( - © ©ß¯' : 9,
'alpha numeric ] 1 with spaces' : 15, 'alpha numeric ] 1 with spaces' : 15,
'aplha ]] numeric 1 %( - © ©ß¯]' : 19, 'alpha ]] numeric 1 %( - © ©ß¯]' : 19,
' aplha [ numeric 1 %( - © ©ß¯] ' : 11, ' alpha [ numeric 1 %( - © ©ß¯] ' : 11,
' aplha ' : 32, ' alpha ' : 32,
'' : 10, '' : 10,
'nest4' : { 'nest4' : {
'd': 'e', 'f': 3 , 'd': 'e', 'f': 3 ,
'alpha numeric 1 with spaces' : 5, 'alpha numeric 1 with spaces' : 5,
'aplha numeric 1 %( - © ©ß¯' : 9, 'alpha numeric 1 %( - © ©ß¯' : 9,
'' : 10, '' : 10,
'somelist' : ('g', ('h', 'i'), 'j'), 'somelist' : ('g', ('h', 'i'), 'j'),
'somedict' : { 'somedict' : {
@ -3780,14 +3780,14 @@ class ConfigDictTest(BaseTest):
self.assertEqual(bc.convert('cfg://adict.d'), 'e') self.assertEqual(bc.convert('cfg://adict.d'), 'e')
self.assertEqual(bc.convert('cfg://adict[f]'), 3) self.assertEqual(bc.convert('cfg://adict[f]'), 3)
self.assertEqual(bc.convert('cfg://adict[alpha numeric 1 with spaces]'), 5) self.assertEqual(bc.convert('cfg://adict[alpha numeric 1 with spaces]'), 5)
self.assertEqual(bc.convert('cfg://adict[aplha numeric 1 %( - © ©ß¯]'), 9) self.assertEqual(bc.convert('cfg://adict[alpha numeric 1 %( - © ©ß¯]'), 9)
self.assertEqual(bc.convert('cfg://adict[]'), 10) self.assertEqual(bc.convert('cfg://adict[]'), 10)
self.assertEqual(bc.convert('cfg://adict.nest4.d'), 'e') self.assertEqual(bc.convert('cfg://adict.nest4.d'), 'e')
self.assertEqual(bc.convert('cfg://adict.nest4[d]'), 'e') self.assertEqual(bc.convert('cfg://adict.nest4[d]'), 'e')
self.assertEqual(bc.convert('cfg://adict[nest4].d'), 'e') self.assertEqual(bc.convert('cfg://adict[nest4].d'), 'e')
self.assertEqual(bc.convert('cfg://adict[nest4][f]'), 3) self.assertEqual(bc.convert('cfg://adict[nest4][f]'), 3)
self.assertEqual(bc.convert('cfg://adict[nest4][alpha numeric 1 with spaces]'), 5) self.assertEqual(bc.convert('cfg://adict[nest4][alpha numeric 1 with spaces]'), 5)
self.assertEqual(bc.convert('cfg://adict[nest4][aplha numeric 1 %( - © ©ß¯]'), 9) self.assertEqual(bc.convert('cfg://adict[nest4][alpha numeric 1 %( - © ©ß¯]'), 9)
self.assertEqual(bc.convert('cfg://adict[nest4][]'), 10) self.assertEqual(bc.convert('cfg://adict[nest4][]'), 10)
self.assertEqual(bc.convert('cfg://adict[nest4][somelist][0]'), 'g') self.assertEqual(bc.convert('cfg://adict[nest4][somelist][0]'), 'g')
self.assertEqual(bc.convert('cfg://adict[nest4][somelist][1][0]'), 'h') self.assertEqual(bc.convert('cfg://adict[nest4][somelist][1][0]'), 'h')
@ -3807,8 +3807,8 @@ class ConfigDictTest(BaseTest):
self.assertRaises(ValueError, bc.convert, 'cfg://!') self.assertRaises(ValueError, bc.convert, 'cfg://!')
self.assertRaises(KeyError, bc.convert, 'cfg://adict[2]') self.assertRaises(KeyError, bc.convert, 'cfg://adict[2]')
self.assertRaises(KeyError, bc.convert, 'cfg://adict[alpha numeric ] 1 with spaces]') self.assertRaises(KeyError, bc.convert, 'cfg://adict[alpha numeric ] 1 with spaces]')
self.assertRaises(ValueError, bc.convert, 'cfg://adict[ aplha ]] numeric 1 %( - © ©ß¯] ]') self.assertRaises(ValueError, bc.convert, 'cfg://adict[ alpha ]] numeric 1 %( - © ©ß¯] ]')
self.assertRaises(ValueError, bc.convert, 'cfg://adict[ aplha [ numeric 1 %( - © ©ß¯] ]') self.assertRaises(ValueError, bc.convert, 'cfg://adict[ alpha [ numeric 1 %( - © ©ß¯] ]')
def test_namedtuple(self): def test_namedtuple(self):
# see bpo-39142 # see bpo-39142

View File

@ -1413,7 +1413,7 @@ class MathTests(unittest.TestCase):
return f'Flt({int(self)})' return f'Flt({int(self)})'
def baseline_sumprod(p, q): def baseline_sumprod(p, q):
"""This defines the target behavior including expections and special values. """This defines the target behavior including exceptions and special values.
However, it is subject to rounding errors, so float inputs should be exactly However, it is subject to rounding errors, so float inputs should be exactly
representable with only a few bits. representable with only a few bits.
""" """

View File

@ -64,7 +64,7 @@ class TestConsoleIO(unittest.TestCase):
# CREATE_NEW_CONSOLE creates a "popup" window. # CREATE_NEW_CONSOLE creates a "popup" window.
@requires_resource('gui') @requires_resource('gui')
def run_in_separated_process(self, code): def run_in_separated_process(self, code):
# Run test in a seprated process to avoid stdin conflicts. # Run test in a separated process to avoid stdin conflicts.
# See: gh-110147 # See: gh-110147
cmd = [sys.executable, '-c', code] cmd = [sys.executable, '-c', code]
subprocess.run(cmd, check=True, capture_output=True, subprocess.run(cmd, check=True, capture_output=True,

View File

@ -1271,7 +1271,7 @@ class PosixTester(unittest.TestCase):
self.assertIsInstance(lo, int) self.assertIsInstance(lo, int)
self.assertIsInstance(hi, int) self.assertIsInstance(hi, int)
self.assertGreaterEqual(hi, lo) self.assertGreaterEqual(hi, lo)
# Apple plaforms return 15 without checking the argument. # Apple platforms return 15 without checking the argument.
if not is_apple: if not is_apple:
self.assertRaises(OSError, posix.sched_get_priority_min, -23) self.assertRaises(OSError, posix.sched_get_priority_min, -23)
self.assertRaises(OSError, posix.sched_get_priority_max, -23) self.assertRaises(OSError, posix.sched_get_priority_max, -23)

View File

@ -438,7 +438,7 @@ class PropertySubclassTests(unittest.TestCase):
self.assertEqual(p2.__doc__, "doc-A") self.assertEqual(p2.__doc__, "doc-A")
# Case-3: with no user-provided doc new getter doc # Case-3: with no user-provided doc new getter doc
# takes precendence # takes precedence
p = property(getter2, None, None, None) p = property(getter2, None, None, None)
p2 = p.getter(getter3) p2 = p.getter(getter3)

View File

@ -485,7 +485,7 @@ class BaseQueueTestMixin(BlockingTestMixin):
else: else:
thrds = ( thrds = (
# on shutdown(immediate=False) # on shutdown(immediate=False)
# one of these threads shoud raise Shutdown # one of these threads should raise Shutdown
(self._get, (q, go, results)), (self._get, (q, go, results)),
(self._get, (q, go, results)), (self._get, (q, go, results)),
(self._get, (q, go, results)), (self._get, (q, go, results)),

View File

@ -2503,7 +2503,7 @@ class ReTests(unittest.TestCase):
self.assertEqual(re.search(r'12(?!)|3', '123')[0], '3') self.assertEqual(re.search(r'12(?!)|3', '123')[0], '3')
def test_character_set_any(self): def test_character_set_any(self):
# The union of complementary character sets mathes any character # The union of complementary character sets matches any character
# and is equivalent to "(?s:.)". # and is equivalent to "(?s:.)".
s = '1x\n' s = '1x\n'
for p in r'[\s\S]', r'[\d\D]', r'[\w\W]', r'[\S\s]', r'\s|\S': for p in r'[\s\S]', r'[\d\D]', r'[\w\W]', r'[\S\s]', r'\s|\S':

View File

@ -1669,7 +1669,7 @@ class GeneralModuleTests(unittest.TestCase):
try: try:
socket.getaddrinfo(None, ULONG_MAX + 1, type=socket.SOCK_STREAM) socket.getaddrinfo(None, ULONG_MAX + 1, type=socket.SOCK_STREAM)
except OverflowError: except OverflowError:
# Platforms differ as to what values consitute a getaddrinfo() error # Platforms differ as to what values constitute a getaddrinfo() error
# return. Some fail for LONG_MAX+1, others ULONG_MAX+1, and Windows # return. Some fail for LONG_MAX+1, others ULONG_MAX+1, and Windows
# silently accepts such huge "port" aka "service" numeric values. # silently accepts such huge "port" aka "service" numeric values.
self.fail("Either no error or socket.gaierror expected.") self.fail("Either no error or socket.gaierror expected.")

View File

@ -131,7 +131,7 @@ class TestLiterals(unittest.TestCase):
self.assertEqual(exc.lineno, 1) self.assertEqual(exc.lineno, 1)
self.assertEqual(exc.offset, 1) self.assertEqual(exc.offset, 1)
# Check that the warning is raised ony once if there are syntax errors # Check that the warning is raised only once if there are syntax errors
with warnings.catch_warnings(record=True) as w: with warnings.catch_warnings(record=True) as w:
warnings.simplefilter('always', category=SyntaxWarning) warnings.simplefilter('always', category=SyntaxWarning)

View File

@ -1116,7 +1116,7 @@ class StoredTestZip64InSmallFiles(AbstractTestZip64InSmallFiles,
# Because this is hard to verify by parsing the data as a zip, the raw # Because this is hard to verify by parsing the data as a zip, the raw
# bytes are checked to ensure that they line up with the zip spec. # bytes are checked to ensure that they line up with the zip spec.
# The spec for this can be found at: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT # The spec for this can be found at: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
# The relevent sections for this test are: # The relevant sections for this test are:
# - 4.3.7 for local file header # - 4.3.7 for local file header
# - 4.5.3 for zip64 extra field # - 4.5.3 for zip64 extra field
@ -1187,7 +1187,7 @@ class StoredTestZip64InSmallFiles(AbstractTestZip64InSmallFiles,
# in as a zip, this test looks at the raw bytes created to ensure that # in as a zip, this test looks at the raw bytes created to ensure that
# the correct data has been generated. # the correct data has been generated.
# The spec for this can be found at: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT # The spec for this can be found at: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
# The relevent sections for this test are: # The relevant sections for this test are:
# - 4.3.7 for local file header # - 4.3.7 for local file header
# - 4.3.9 for the data descriptor # - 4.3.9 for the data descriptor
# - 4.5.3 for zip64 extra field # - 4.5.3 for zip64 extra field

View File

@ -6,7 +6,7 @@ A minimal sorting algorithm animation:
Sorts a shelf of 10 blocks using insertion Sorts a shelf of 10 blocks using insertion
sort, selection sort and quicksort. sort, selection sort and quicksort.
Shelfs are implemented using builtin lists. Shelves are implemented using builtin lists.
Blocks are turtles with shape "square", but Blocks are turtles with shape "square", but
stretched to rectangles by shapesize() stretched to rectangles by shapesize()

View File

@ -983,7 +983,7 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
$(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK) $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)
$(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
# This rule is for iOS, which requires an annoyingly just slighly different # This rule is for iOS, which requires an annoyingly just slightly different
# format for frameworks to macOS. It *doesn't* use a versioned framework, and # format for frameworks to macOS. It *doesn't* use a versioned framework, and
# the Info.plist must be in the root of the framework. # the Info.plist must be in the root of the framework.
$(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK): \ $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK): \

View File

@ -74,7 +74,7 @@ PyObject *PyLong_FromSsize_t(Py_ssize_t ival)
/* tainted sinks /* tainted sinks
* *
* Coverity considers argv, environ, read() data etc as tained. * Coverity considers argv, environ, read() data etc as tainted.
*/ */
PyObject *PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename) PyObject *PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)

View File

@ -314,8 +314,8 @@ thread_run(void *boot_raw)
// gh-108987: If _thread.start_new_thread() is called before or while // gh-108987: If _thread.start_new_thread() is called before or while
// Python is being finalized, thread_run() can called *after*. // Python is being finalized, thread_run() can called *after*.
// _PyRuntimeState_SetFinalizing() is called. At this point, all Python // _PyRuntimeState_SetFinalizing() is called. At this point, all Python
// threads must exit, except of the thread calling Py_Finalize() whch holds // threads must exit, except of the thread calling Py_Finalize() which
// the GIL and must not exit. // holds the GIL and must not exit.
// //
// At this stage, tstate can be a dangling pointer (point to freed memory), // At this stage, tstate can be a dangling pointer (point to freed memory),
// it's ok to call _PyThreadState_MustExit() with a dangling pointer. // it's ok to call _PyThreadState_MustExit() with a dangling pointer.

View File

@ -72,7 +72,7 @@ bool _mi_bitmap_try_find_claim_field(mi_bitmap_t bitmap, size_t idx, const size_
// For now, `count` can be at most MI_BITMAP_FIELD_BITS and will never cross fields. // For now, `count` can be at most MI_BITMAP_FIELD_BITS and will never cross fields.
bool _mi_bitmap_try_find_from_claim(mi_bitmap_t bitmap, const size_t bitmap_fields, const size_t start_field_idx, const size_t count, mi_bitmap_index_t* bitmap_idx); bool _mi_bitmap_try_find_from_claim(mi_bitmap_t bitmap, const size_t bitmap_fields, const size_t start_field_idx, const size_t count, mi_bitmap_index_t* bitmap_idx);
// Like _mi_bitmap_try_find_from_claim but with an extra predicate that must be fullfilled // Like _mi_bitmap_try_find_from_claim but with an extra predicate that must be fulfilled
typedef bool (mi_cdecl *mi_bitmap_pred_fun_t)(mi_bitmap_index_t bitmap_idx, void* pred_arg); typedef bool (mi_cdecl *mi_bitmap_pred_fun_t)(mi_bitmap_index_t bitmap_idx, void* pred_arg);
bool _mi_bitmap_try_find_from_claim_pred(mi_bitmap_t bitmap, const size_t bitmap_fields, const size_t start_field_idx, const size_t count, mi_bitmap_pred_fun_t pred_fun, void* pred_arg, mi_bitmap_index_t* bitmap_idx); bool _mi_bitmap_try_find_from_claim_pred(mi_bitmap_t bitmap, const size_t bitmap_fields, const size_t start_field_idx, const size_t count, mi_bitmap_pred_fun_t pred_fun, void* pred_arg, mi_bitmap_index_t* bitmap_idx);

View File

@ -560,7 +560,7 @@ void mi_process_init(void) mi_attr_noexcept {
_mi_verbose_message("secure level: %d\n", MI_SECURE); _mi_verbose_message("secure level: %d\n", MI_SECURE);
_mi_verbose_message("mem tracking: %s\n", MI_TRACK_TOOL); _mi_verbose_message("mem tracking: %s\n", MI_TRACK_TOOL);
#if MI_TSAN #if MI_TSAN
_mi_verbose_message("thread santizer enabled\n"); _mi_verbose_message("thread sanitizer enabled\n");
#endif #endif
mi_thread_init(); mi_thread_init();

View File

@ -84,7 +84,7 @@ static mi_segment_t* _mi_segment_of(const void* p) {
// TODO: maintain max/min allocated range for efficiency for more efficient rejection of invalid pointers? // TODO: maintain max/min allocated range for efficiency for more efficient rejection of invalid pointers?
// search downwards for the first segment in case it is an interior pointer // search downwards for the first segment in case it is an interior pointer
// could be slow but searches in MI_INTPTR_SIZE * MI_SEGMENT_SIZE (512MiB) steps trough // could be slow but searches in MI_INTPTR_SIZE * MI_SEGMENT_SIZE (512MiB) steps through
// valid huge objects // valid huge objects
// note: we could maintain a lowest index to speed up the path for invalid pointers? // note: we could maintain a lowest index to speed up the path for invalid pointers?
size_t lobitidx; size_t lobitidx;

View File

@ -149,7 +149,7 @@ def _iter_top_include_lines(lines, topfile, cwd,
raw): raw):
partial = 0 # depth partial = 0 # depth
files = [topfile] files = [topfile]
# We start at 1 in case there are source lines (including blank onces) # We start at 1 in case there are source lines (including blank ones)
# before the first marker line. Also, we already verified in # before the first marker line. Also, we already verified in
# _parse_marker_line() that the preprocessor reported lno as 1. # _parse_marker_line() that the preprocessor reported lno as 1.
lno = 1 lno = 1

2
configure generated vendored
View File

@ -23970,7 +23970,7 @@ else
# While Python doesn't currently have full support for these platforms # While Python doesn't currently have full support for these platforms
# (see e.g., issue 1762561), we can at least make sure that float <-> string # (see e.g., issue 1762561), we can at least make sure that float <-> string
# conversions work. # conversions work.
# FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big # FLOAT_WORDS_BIGENDIAN doesn't actually detect this case, but if it's not big
# or little, then it must be this? # or little, then it must be this?
printf "%s\n" "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h printf "%s\n" "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h

View File

@ -1650,7 +1650,7 @@ then
AS_VAR_IF([host_cpu], [wasm64], [AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-memory64"])]) AS_VAR_IF([host_cpu], [wasm64], [AS_VAR_APPEND([HOSTRUNNER], [" --experimental-wasm-memory64"])])
], ],
dnl TODO: support other WASI runtimes dnl TODO: support other WASI runtimes
dnl wasmtime starts the proces with "/" as CWD. For OOT builds add the dnl wasmtime starts the process with "/" as CWD. For OOT builds add the
dnl directory containing _sysconfigdata to PYTHONPATH. dnl directory containing _sysconfigdata to PYTHONPATH.
[WASI/*], [HOSTRUNNER='wasmtime run --wasm max-wasm-stack=16777216 --wasi preview2 --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --dir $(srcdir)::/'], [WASI/*], [HOSTRUNNER='wasmtime run --wasm max-wasm-stack=16777216 --wasi preview2 --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --dir $(srcdir)::/'],
[HOSTRUNNER=''] [HOSTRUNNER='']
@ -3540,7 +3540,7 @@ then
LDCXXSHARED='$(CXX) -Wl,-G,-Bexport';; LDCXXSHARED='$(CXX) -Wl,-G,-Bexport';;
WASI*) WASI*)
AS_VAR_IF([enable_wasm_dynamic_linking], [yes], [ AS_VAR_IF([enable_wasm_dynamic_linking], [yes], [
dnl not iplemented yet dnl not implemented yet
]);; ]);;
CYGWIN*) CYGWIN*)
LDSHARED="gcc -shared -Wl,--enable-auto-image-base" LDSHARED="gcc -shared -Wl,--enable-auto-image-base"
@ -3713,7 +3713,7 @@ esac
AC_MSG_RESULT([$SHLIBS]) AC_MSG_RESULT([$SHLIBS])
dnl perf trampoline is Linux specific and requires an arch-specific dnl perf trampoline is Linux specific and requires an arch-specific
dnl trampoline in asssembly. dnl trampoline in assembly.
AC_MSG_CHECKING([perf trampoline]) AC_MSG_CHECKING([perf trampoline])
AS_CASE([$PLATFORM_TRIPLET], AS_CASE([$PLATFORM_TRIPLET],
[x86_64-linux-gnu], [perf_trampoline=yes], [x86_64-linux-gnu], [perf_trampoline=yes],
@ -5925,7 +5925,7 @@ else
# While Python doesn't currently have full support for these platforms # While Python doesn't currently have full support for these platforms
# (see e.g., issue 1762561), we can at least make sure that float <-> string # (see e.g., issue 1762561), we can at least make sure that float <-> string
# conversions work. # conversions work.
# FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big # FLOAT_WORDS_BIGENDIAN doesn't actually detect this case, but if it's not big
# or little, then it must be this? # or little, then it must be this?
AC_DEFINE([DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754], [1], AC_DEFINE([DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754], [1],
[Define if C doubles are 64-bit IEEE 754 binary format, stored [Define if C doubles are 64-bit IEEE 754 binary format, stored