mirror of
https://github.com/actions/python-versions.git
synced 2025-12-13 22:17:32 +00:00
Remove EOL Python code, set 3.9 as base, add 3.14 stdlib module (#317)
* Remove redundant Python 2 code * Use Python 3.2 as base version * Use Python 3.3 as base version * Use Python 3.4 as base version * Use Python 3.5 as base version * Use Python 3.6 as base version * Use Python 3.7 as base version * Use Python 3.8 as base version * Use Python 3.9 as base version * Add annotationlib for Python 3.14 * Fix syntax error
This commit is contained in:
committed by
GitHub
parent
5c01d17435
commit
d5e8ad6406
@@ -60,7 +60,7 @@ Describe "Tests" {
|
||||
# }
|
||||
# }
|
||||
|
||||
if (($Version -ge "3.2.0") -and ($Version -lt "3.11.0") -and (($Platform -ne "darwin") -or ($HardwareArchitecture -ne "arm64"))) {
|
||||
if (($Version -lt "3.11.0") -and (($Platform -ne "darwin") -or ($HardwareArchitecture -ne "arm64"))) {
|
||||
It "Check if sqlite3 module is installed" {
|
||||
"python ./sources/python-sqlite3.py" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -92,16 +92,6 @@ Describe "Tests" {
|
||||
}
|
||||
}
|
||||
|
||||
# Pyinstaller 3.5 does not support Python 3.8.0. Check issue https://github.com/pyinstaller/pyinstaller/issues/4311
|
||||
if ($Version -lt "3.8.0" -and $Version.Major -ne "2") {
|
||||
It "Validate Pyinstaller" {
|
||||
"pip install pyinstaller" | Should -ReturnZeroExitCode
|
||||
"pyinstaller --onefile ./sources/simple-test.py" | Should -ReturnZeroExitCode
|
||||
$distPath = [IO.Path]::Combine($pwd, "dist", "simple-test")
|
||||
"$distPath" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
It "Check urlopen with HTTPS works" {
|
||||
"python ./sources/python-urlopen-https.py" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
@@ -3,12 +3,10 @@ Make sure all the optional modules are installed.
|
||||
This is needed for Linux since we build from source.
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import importlib
|
||||
import sys
|
||||
|
||||
# The Python standard library as of Python 3.0
|
||||
# The Python standard library as of Python 3.9
|
||||
standard_library = [
|
||||
'abc',
|
||||
'aifc',
|
||||
@@ -17,6 +15,7 @@ standard_library = [
|
||||
'ast',
|
||||
'asynchat',
|
||||
'asyncore',
|
||||
'asyncio',
|
||||
'base64',
|
||||
'bdb',
|
||||
'binhex',
|
||||
@@ -34,14 +33,17 @@ standard_library = [
|
||||
'collections',
|
||||
'colorsys',
|
||||
'compileall',
|
||||
'concurrent',
|
||||
'configparser',
|
||||
'contextlib',
|
||||
'contextvars',
|
||||
'copy',
|
||||
'copyreg',
|
||||
'crypt',
|
||||
'csv',
|
||||
'ctypes',
|
||||
'curses',
|
||||
'dataclasses',
|
||||
'datetime',
|
||||
'dbm',
|
||||
'decimal',
|
||||
@@ -49,9 +51,11 @@ standard_library = [
|
||||
'dis',
|
||||
'distutils',
|
||||
'doctest',
|
||||
'dummy_threading',
|
||||
'email',
|
||||
'encodings',
|
||||
'ensurepip',
|
||||
'enum',
|
||||
'faulthandler',
|
||||
'filecmp',
|
||||
'fileinput',
|
||||
'fnmatch',
|
||||
@@ -77,13 +81,14 @@ standard_library = [
|
||||
'importlib',
|
||||
'inspect',
|
||||
'io',
|
||||
'ipaddress',
|
||||
'json',
|
||||
'keyword',
|
||||
'lib2to3',
|
||||
'linecache',
|
||||
'locale',
|
||||
'logging',
|
||||
'macpath',
|
||||
'lzma',
|
||||
'mailbox',
|
||||
'mailcap',
|
||||
'mimetypes',
|
||||
@@ -98,6 +103,7 @@ standard_library = [
|
||||
'operator',
|
||||
'optparse',
|
||||
'os',
|
||||
'pathlib',
|
||||
'pdb',
|
||||
'pickle',
|
||||
'pickletools',
|
||||
@@ -124,6 +130,8 @@ standard_library = [
|
||||
'rlcompleter',
|
||||
'runpy',
|
||||
'sched',
|
||||
'secrets',
|
||||
'selectors',
|
||||
'shelve',
|
||||
'shlex',
|
||||
'shutil',
|
||||
@@ -141,6 +149,7 @@ standard_library = [
|
||||
'ssl',
|
||||
'_ssl',
|
||||
'stat',
|
||||
'statistics',
|
||||
'string',
|
||||
'stringprep',
|
||||
'struct',
|
||||
@@ -163,14 +172,17 @@ standard_library = [
|
||||
'tokenize',
|
||||
'trace',
|
||||
'traceback',
|
||||
'tracemalloc',
|
||||
'tty',
|
||||
'turtle',
|
||||
'turtledemo',
|
||||
'types',
|
||||
'typing',
|
||||
'unittest',
|
||||
'urllib',
|
||||
'uu',
|
||||
'uuid',
|
||||
'venv',
|
||||
'warnings',
|
||||
'wave',
|
||||
'weakref',
|
||||
@@ -179,83 +191,12 @@ standard_library = [
|
||||
'xdrlib',
|
||||
'xml',
|
||||
'xmlrpc',
|
||||
'zipapp',
|
||||
'zipfile'
|
||||
]
|
||||
|
||||
# Modules that had different names in Python 2
|
||||
if sys.version_info.major == 2:
|
||||
def replace(lst, old, new):
|
||||
lst[lst.index(old)] = new
|
||||
|
||||
# Keys are the Python 2 names
|
||||
# Values are the Python 3 names
|
||||
renames = {
|
||||
'ConfigParser': 'configparser',
|
||||
'copy_reg': 'copyreg',
|
||||
'HTMLParser': 'html',
|
||||
'httplib': 'http',
|
||||
'Queue': 'queue',
|
||||
'repr': 'reprlib',
|
||||
'SocketServer': 'socketserver',
|
||||
'xmlrpclib': 'xmlrpc',
|
||||
'Tkinter': 'tkinter'
|
||||
}
|
||||
|
||||
# All of the Python 3 names should be in the list
|
||||
for python2name, python3name in renames.items():
|
||||
replace(standard_library, python3name, python2name)
|
||||
|
||||
# Add new modules
|
||||
# See https://docs.python.org/3/whatsnew/index.html
|
||||
if sys.version_info >= (3, 2):
|
||||
standard_library.extend([
|
||||
'concurrent',
|
||||
])
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
standard_library.extend([
|
||||
'ipaddress',
|
||||
'faulthandler',
|
||||
'lzma',
|
||||
'venv',
|
||||
])
|
||||
|
||||
if sys.version_info >= (3, 4):
|
||||
standard_library.extend([
|
||||
'asyncio',
|
||||
'ensurepip',
|
||||
'enum',
|
||||
'pathlib',
|
||||
'selectors',
|
||||
'statistics',
|
||||
'tracemalloc',
|
||||
])
|
||||
|
||||
if sys.version_info >= (3, 5):
|
||||
standard_library.extend([
|
||||
'typing',
|
||||
'zipapp',
|
||||
])
|
||||
|
||||
if sys.version_info >= (3, 6):
|
||||
standard_library.extend([
|
||||
'secrets',
|
||||
])
|
||||
|
||||
if sys.version_info >= (3, 7):
|
||||
standard_library.extend([
|
||||
'contextvars',
|
||||
'dataclasses',
|
||||
])
|
||||
|
||||
# 'macpath' module has been removed from Python 3.8
|
||||
if sys.version_info > (3, 7):
|
||||
standard_library.remove('macpath')
|
||||
|
||||
# 'dummy_threading' module has been removed from Python 3.9
|
||||
if sys.version_info > (3, 8):
|
||||
standard_library.remove('dummy_threading')
|
||||
|
||||
# 'symbol' and 'formatter' modules have been removed from Python 3.10
|
||||
if sys.version_info >= (3, 10):
|
||||
standard_library.remove('symbol')
|
||||
@@ -295,6 +236,11 @@ if sys.version_info >= (3, 13):
|
||||
standard_library.remove('uu')
|
||||
standard_library.remove('xdrlib')
|
||||
|
||||
if sys.version_info >= (3, 14):
|
||||
standard_library.extend([
|
||||
'annotationlib',
|
||||
])
|
||||
|
||||
# Remove tkinter and Easter eggs
|
||||
excluded_modules = [
|
||||
'antigravity',
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import sys
|
||||
|
||||
if sys.version_info[0] == 2:
|
||||
from urllib2 import urlopen
|
||||
else:
|
||||
from urllib.request import urlopen
|
||||
from urllib.request import urlopen
|
||||
|
||||
response = urlopen("https://raw.githubusercontent.com/actions/python-versions/c641695f6a07526c18f10e374e503e649fef9427/.gitignore")
|
||||
data = response.read()
|
||||
|
||||
Reference in New Issue
Block a user