forked from pool/python314
Python 3.14 is the latest stable release of the Python
programming language, with a mix of changes to the language,
the implementation, and the standard library. The biggest
changes include template string literals, deferred evaluation
of annotations, and support for subinterpreters in the standard
library.
The library changes include significantly improved capabilities
for introspection in asyncio, support for Zstandard via a new
compression.zstd module, syntax highlighting in the REPL, as
well as the usual deprecations and removals, and improvements
in user-friendliness and correctness.
- Interpreter improvements:
- PEP 649 and PEP 749: Deferred evaluation of annotations
- PEP 734: Multiple interpreters in the standard library
- PEP 750: Template strings
- PEP 758: Allow except and except* expressions without
brackets
- PEP 765: Control flow in finally blocks
- PEP 768: Safe external debugger interface for CPython
- A new type of interpreter
- Free-threaded mode improvements
- Improved error messages
- Incremental garbage collection
- Significant improvements in the standard library:
- PEP 784: Zstandard support in the standard library
- Asyncio introspection capabilities
- Concurrent safe warnings control
- Syntax highlighting in the default interactive shell, and
color output in several standard library CLIs
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=104
70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
#!/usr/bin/python3
|
|
"""
|
|
Simple regexp-based skipped test checker.
|
|
It lists tests that are mentioned (presumably for exclusion)
|
|
in BASE, and in MAIN (presumably for inclusion)
|
|
and reports discrepancies.
|
|
|
|
This will have a number of
|
|
"""
|
|
|
|
MAIN = "python39.spec"
|
|
|
|
import glob
|
|
import re
|
|
from os.path import basename
|
|
|
|
alltests = set()
|
|
qemu_exclusions = set()
|
|
|
|
for item in glob.glob("Python-*/Lib/test/test_*"):
|
|
testname = basename(item)
|
|
if testname.endswith(".py"):
|
|
testname = testname[:-3]
|
|
alltests.add(testname)
|
|
|
|
testre = re.compile(r'[\s"](test_\w+)\b')
|
|
|
|
def find_tests_in_spec(specname):
|
|
global qemu_exclusions
|
|
|
|
found_tests = set()
|
|
with open(specname) as spec:
|
|
in_qemu = False
|
|
for line in spec:
|
|
line = line.strip()
|
|
if "#" in line:
|
|
line = line[:line.index("#")]
|
|
tests = set(testre.findall(line))
|
|
found_tests |= tests
|
|
if line == "%if 0%{?qemu_user_space_build} > 0":
|
|
in_qemu = True
|
|
if in_qemu:
|
|
if line == "%endif":
|
|
in_qemu = False
|
|
qemu_exclusions |= tests
|
|
return found_tests
|
|
|
|
excluded = find_tests_in_spec(MAIN)
|
|
|
|
#print("--- excluded tests:", " ".join(sorted(excluded)))
|
|
#print("--- included tests:", " ".join(sorted(included)))
|
|
|
|
mentioned = excluded
|
|
nonexistent = mentioned - alltests
|
|
missing = excluded - qemu_exclusions
|
|
|
|
print("--- the following tests are excluded for QEMU and not tested in python")
|
|
print("--- (that probably means we don't need to worry about them)")
|
|
for test in sorted(qemu_exclusions - excluded):
|
|
print(test)
|
|
|
|
print("--- the following tests might be excluded in python:")
|
|
for test in sorted(missing):
|
|
print(test)
|
|
|
|
if nonexistent:
|
|
print("--- the following tests don't exist:")
|
|
for test in sorted(nonexistent):
|
|
print(test)
|