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. Signed-off-by: John Snow <[email protected]> --- python/scripts/mkvenv.py | 24 ++++++++++++++++-------- python/setup.cfg | 1 + 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/python/scripts/mkvenv.py b/python/scripts/mkvenv.py index 9aed266df1b..a064709e6ce 100644 --- a/python/scripts/mkvenv.py +++ b/python/scripts/mkvenv.py @@ -92,7 +92,7 @@ # 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 @@ 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 @@ # 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 @@ 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! diff --git a/python/setup.cfg b/python/setup.cfg index d7f5dc7bafe..f40f11396c9 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -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. -- 2.51.0
