mirror of
https://github.com/mborgerson/xemu.git
synced 2026-03-09 16:24:56 +00:00
python/mkvenv: ensure HAVE_LIB variables are actually constants
Pylint 4.x has refined checking for variable names that behave as constants vs ones that do not; unfortunately our tricky import machinery is perceived as these variables being re-assigned. Add a temporary variable with an underscore and assign to the global constants precisely once to alleviate this new nag message. Add an ignore for this name for older versions of pylint that developers may have installed locally. (In other words: there is no solution that will cater to both pre- and post- 4.x versions, so we target 4.x here and silence older versions.) Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20251118200657.1043688-2-jsnow@redhat.com>
This commit is contained in:
committed by
Richard Henderson
parent
5e0242e9a8
commit
9ccd0c8a88
@ -92,7 +92,7 @@ import venv
|
||||
# Try to load distlib, with a fallback to pip's vendored version.
|
||||
# HAVE_DISTLIB is checked below, just-in-time, so that mkvenv does not fail
|
||||
# outside the venv or before a potential call to ensurepip in checkpip().
|
||||
HAVE_DISTLIB = True
|
||||
_import_ok = True
|
||||
try:
|
||||
import distlib.scripts
|
||||
except ImportError:
|
||||
@ -102,11 +102,13 @@ except ImportError:
|
||||
from pip._vendor import distlib
|
||||
import pip._vendor.distlib.scripts # noqa, pylint: disable=unused-import
|
||||
except ImportError:
|
||||
HAVE_DISTLIB = False
|
||||
_import_ok = False
|
||||
|
||||
HAVE_DISTLIB = _import_ok
|
||||
|
||||
# pip 25.2 does not vendor distlib.version, but it uses vendored
|
||||
# packaging.version
|
||||
HAVE_DISTLIB_VERSION = True
|
||||
_import_ok = True
|
||||
try:
|
||||
import distlib.version # pylint: disable=ungrouped-imports
|
||||
except ImportError:
|
||||
@ -114,9 +116,11 @@ except ImportError:
|
||||
# pylint: disable=unused-import,ungrouped-imports
|
||||
import pip._vendor.distlib.version # noqa
|
||||
except ImportError:
|
||||
HAVE_DISTLIB_VERSION = False
|
||||
_import_ok = False
|
||||
|
||||
HAVE_PACKAGING_VERSION = True
|
||||
HAVE_DISTLIB_VERSION = _import_ok
|
||||
|
||||
_import_ok = True
|
||||
try:
|
||||
# Do not bother importing non-vendored packaging, because it is not
|
||||
# in stdlib.
|
||||
@ -125,20 +129,24 @@ try:
|
||||
import pip._vendor.packaging.requirements # noqa
|
||||
import pip._vendor.packaging.version # noqa
|
||||
except ImportError:
|
||||
HAVE_PACKAGING_VERSION = False
|
||||
_import_ok = False
|
||||
|
||||
HAVE_PACKAGING_VERSION = _import_ok
|
||||
|
||||
|
||||
# Try to load tomllib, with a fallback to tomli.
|
||||
# HAVE_TOMLLIB is checked below, just-in-time, so that mkvenv does not fail
|
||||
# outside the venv or before a potential call to ensurepip in checkpip().
|
||||
HAVE_TOMLLIB = True
|
||||
_import_ok = True
|
||||
try:
|
||||
import tomllib
|
||||
except ImportError:
|
||||
try:
|
||||
import tomli as tomllib
|
||||
except ImportError:
|
||||
HAVE_TOMLLIB = False
|
||||
_import_ok = False
|
||||
|
||||
HAVE_TOMLLIB = _import_ok
|
||||
|
||||
# Do not add any mandatory dependencies from outside the stdlib:
|
||||
# This script *must* be usable standalone!
|
||||
|
||||
@ -159,6 +159,7 @@ good-names=i,
|
||||
c, # for c in string: ...
|
||||
T, # for TypeVars. See pylint#3401
|
||||
SocketAddrT, # Not sure why this is invalid.
|
||||
_import_ok, # For mkvenv import trickery and compatibility pre-4.x
|
||||
|
||||
[pylint.similarities]
|
||||
# Ignore imports when computing similarities.
|
||||
|
||||
Reference in New Issue
Block a user