mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-14 02:26:53 -07:00
Add Python 3.12 and fix Radarr handling (#1989)
* Added Python3.12 and future 3.13 * Fix Radarr result handling * remove py2.7 and py3.7 support
This commit is contained in:
parent
b802aca7e1
commit
f98d6fff65
173 changed files with 17498 additions and 21001 deletions
|
@ -2,17 +2,15 @@
|
|||
Monkey patching of distutils.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import distutils.filelist
|
||||
import platform
|
||||
import types
|
||||
import functools
|
||||
from importlib import import_module
|
||||
import inspect
|
||||
import platform
|
||||
import sys
|
||||
import types
|
||||
from importlib import import_module
|
||||
|
||||
from setuptools.extern import six
|
||||
import distutils.filelist
|
||||
|
||||
import setuptools
|
||||
|
||||
__all__ = []
|
||||
"""
|
||||
|
@ -37,9 +35,11 @@ def _get_mro(cls):
|
|||
|
||||
def get_unpatched(item):
|
||||
lookup = (
|
||||
get_unpatched_class if isinstance(item, six.class_types) else
|
||||
get_unpatched_function if isinstance(item, types.FunctionType) else
|
||||
lambda item: None
|
||||
get_unpatched_class
|
||||
if isinstance(item, type)
|
||||
else get_unpatched_function
|
||||
if isinstance(item, types.FunctionType)
|
||||
else lambda item: None
|
||||
)
|
||||
return lookup(item)
|
||||
|
||||
|
@ -51,9 +51,7 @@ def get_unpatched_class(cls):
|
|||
first.
|
||||
"""
|
||||
external_bases = (
|
||||
cls
|
||||
for cls in _get_mro(cls)
|
||||
if not cls.__module__.startswith('setuptools')
|
||||
cls for cls in _get_mro(cls) if not cls.__module__.startswith('setuptools')
|
||||
)
|
||||
base = next(external_bases)
|
||||
if not base.__module__.startswith('distutils'):
|
||||
|
@ -63,27 +61,11 @@ def get_unpatched_class(cls):
|
|||
|
||||
|
||||
def patch_all():
|
||||
import setuptools
|
||||
|
||||
# we can't patch distutils.cmd, alas
|
||||
distutils.core.Command = setuptools.Command
|
||||
|
||||
has_issue_12885 = sys.version_info <= (3, 5, 3)
|
||||
|
||||
if has_issue_12885:
|
||||
# fix findall bug in distutils (http://bugs.python.org/issue12885)
|
||||
distutils.filelist.findall = setuptools.findall
|
||||
|
||||
needs_warehouse = (
|
||||
sys.version_info < (2, 7, 13)
|
||||
or
|
||||
(3, 4) < sys.version_info < (3, 4, 6)
|
||||
or
|
||||
(3, 5) < sys.version_info <= (3, 5, 3)
|
||||
)
|
||||
|
||||
if needs_warehouse:
|
||||
warehouse = 'https://upload.pypi.org/legacy/'
|
||||
distutils.config.PyPIRCCommand.DEFAULT_REPOSITORY = warehouse
|
||||
|
||||
_patch_distribution_metadata()
|
||||
|
||||
# Install Distribution throughout the distutils
|
||||
|
@ -94,17 +76,24 @@ def patch_all():
|
|||
distutils.core.Extension = setuptools.extension.Extension
|
||||
distutils.extension.Extension = setuptools.extension.Extension
|
||||
if 'distutils.command.build_ext' in sys.modules:
|
||||
sys.modules['distutils.command.build_ext'].Extension = (
|
||||
setuptools.extension.Extension
|
||||
)
|
||||
sys.modules[
|
||||
'distutils.command.build_ext'
|
||||
].Extension = setuptools.extension.Extension
|
||||
|
||||
patch_for_msvc_specialized_compiler()
|
||||
|
||||
|
||||
def _patch_distribution_metadata():
|
||||
from . import _core_metadata
|
||||
|
||||
"""Patch write_pkg_file and read_pkg_file for higher metadata standards"""
|
||||
for attr in ('write_pkg_file', 'read_pkg_file', 'get_metadata_version'):
|
||||
new_val = getattr(setuptools.dist, attr)
|
||||
for attr in (
|
||||
'write_pkg_info',
|
||||
'write_pkg_file',
|
||||
'read_pkg_file',
|
||||
'get_metadata_version',
|
||||
):
|
||||
new_val = getattr(_core_metadata, attr)
|
||||
setattr(distutils.dist.DistributionMetadata, attr, new_val)
|
||||
|
||||
|
||||
|
@ -126,7 +115,7 @@ def patch_func(replacement, target_mod, func_name):
|
|||
|
||||
|
||||
def get_unpatched_function(candidate):
|
||||
return getattr(candidate, 'unpatched')
|
||||
return candidate.unpatched
|
||||
|
||||
|
||||
def patch_for_msvc_specialized_compiler():
|
||||
|
@ -134,18 +123,17 @@ def patch_for_msvc_specialized_compiler():
|
|||
Patch functions in distutils to use standalone Microsoft Visual C++
|
||||
compilers.
|
||||
"""
|
||||
# import late to avoid circular imports on Python < 3.5
|
||||
msvc = import_module('setuptools.msvc')
|
||||
from . import msvc
|
||||
|
||||
if platform.system() != 'Windows':
|
||||
# Compilers only availables on Microsoft Windows
|
||||
# Compilers only available on Microsoft Windows
|
||||
return
|
||||
|
||||
def patch_params(mod_name, func_name):
|
||||
"""
|
||||
Prepare the parameters for patch_func to patch indicated function.
|
||||
"""
|
||||
repl_prefix = 'msvc9_' if 'msvc9' in mod_name else 'msvc14_'
|
||||
repl_prefix = 'msvc14_'
|
||||
repl_name = repl_prefix + func_name.lstrip('_')
|
||||
repl = getattr(msvc, repl_name)
|
||||
mod = import_module(mod_name)
|
||||
|
@ -153,27 +141,11 @@ def patch_for_msvc_specialized_compiler():
|
|||
raise ImportError(func_name)
|
||||
return repl, mod, func_name
|
||||
|
||||
# Python 2.7 to 3.4
|
||||
msvc9 = functools.partial(patch_params, 'distutils.msvc9compiler')
|
||||
|
||||
# Python 3.5+
|
||||
msvc14 = functools.partial(patch_params, 'distutils._msvccompiler')
|
||||
|
||||
try:
|
||||
# Patch distutils.msvc9compiler
|
||||
patch_func(*msvc9('find_vcvarsall'))
|
||||
patch_func(*msvc9('query_vcvarsall'))
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
# Patch distutils._msvccompiler._get_vc_env
|
||||
patch_func(*msvc14('_get_vc_env'))
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
# Patch distutils._msvccompiler.gen_lib_options for Numpy
|
||||
patch_func(*msvc14('gen_lib_options'))
|
||||
except ImportError:
|
||||
pass
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue