demandimport: don't delay _distutils_hack import stable
authorMads Kiilerich <mads@kiilerich.com>
Wed, 28 Jun 2023 01:31:10 +0200
branchstable
changeset 50728 80c8dcfb73c6
parent 50727 8037ddacad47
child 50729 5644f6286618
demandimport: don't delay _distutils_hack import test-demandimport.py would fail on 'import distutils.msvc9compiler' because warnings: /usr/lib/python3.11/site-packages/_distutils_hack/__init__.py:18: UserWarning: Distutils was imported before Setuptools, but importing Setuptools also replaces the `distutils` module in `sys.modules`. This may lead to undesirable behaviors or errors. To avoid these issues, avoid using distutils directly, ensure that setuptools is installed in the traditional way (e.g. not an editable install), and/or make sure that setuptools is always imported before distutils. warnings.warn( /usr/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. warnings.warn("Setuptools is replacing distutils.") Telling demandimport to ignore this module will allow the hack to work as intended. Note: The test for distutils.msvc9compiler comes from 2205d00b6d2b. But since then, distutils is going away, and setuptools has moved forward and is replacing it. It is unclear exactly what is being tested here and how setuptools should depended on msvc9compiler. The test might no longer be relevant.
hgdemandimport/__init__.py
--- a/hgdemandimport/__init__.py	Wed Mar 22 16:05:59 2023 +0100
+++ b/hgdemandimport/__init__.py	Wed Jun 28 01:31:10 2023 +0200
@@ -55,6 +55,9 @@
     'builtins',
     'urwid.command_map',  # for pudb
     'lzma',
+    # setuptools uses this hack to inject it's own distutils at import time
+    'setuptools',
+    '_distutils_hack.override',
 }
 
 _pypy = '__pypy__' in sys.builtin_module_names