From ac106e2320768be1edcf3e2b95ec13d22315dc7f Mon Sep 17 00:00:00 2001 From: mgam <312065559@qq.com> Date: Sun, 26 Oct 2025 15:08:31 +0800 Subject: [PATCH 1/2] numpy.compat is removed in `numpy>=2.0.0`, replacing it using numpy.fft as an example module for test_lazy. --- mmengine/config/utils.py | 3 +++ pyproject.toml | 4 ++-- tests/test_config/test_lazy.py | 14 +++++++------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/mmengine/config/utils.py b/mmengine/config/utils.py index 001a2267ac..81e53aa637 100644 --- a/mmengine/config/utils.py +++ b/mmengine/config/utils.py @@ -177,6 +177,9 @@ def _is_builtin_module(module_name: str) -> bool: origin_path = getattr(spec, 'origin', None) if origin_path is None: return False + # Handle frozen modules (e.g., os module in some Python distributions) + if origin_path == 'frozen': + return True origin_path = osp.abspath(origin_path) if ('site-package' in origin_path or 'dist-package' in origin_path or not origin_path.startswith( diff --git a/pyproject.toml b/pyproject.toml index 43f92a1ad2..f2acc08efd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ dependencies = [ [dependency-groups] test = [ - "aim<=3.17.5; sys_platform != 'win32'", + "aim<=3.17.5; sys_platform != 'win32' and python_version < '3.13'", "bitsandbytes", "clearml", "coverage", @@ -77,7 +77,7 @@ all = [ "termcolor", "yapf", "regex; sys_platform == 'win32'", - "aim<=3.17.5; sys_platform != 'win32'", + "aim<=3.17.5; sys_platform != 'win32' and python_version < '3.13'", "bitsandbytes", "clearml", "coverage", diff --git a/tests/test_config/test_lazy.py b/tests/test_config/test_lazy.py index d69822814b..64f68eb377 100644 --- a/tests/test_config/test_lazy.py +++ b/tests/test_config/test_lazy.py @@ -8,7 +8,7 @@ from unittest import TestCase import numpy -import numpy.compat +import numpy.fft import numpy.linalg as linalg from rich.progress import Progress @@ -56,17 +56,17 @@ def test_lazy_module(self): # 1.2 getattr as LazyAttr self.assertIsInstance(lazy_numpy.linalg, LazyAttr) - self.assertIsInstance(lazy_numpy.compat, LazyAttr) + self.assertIsInstance(lazy_numpy.fft, LazyAttr) - # 1.3 Build module from LazyObject. amp and functional can be accessed + # 1.3 Build module from LazyObject. linalg and fft can be accessed imported_numpy = lazy_numpy.build() self.assertIs(imported_numpy.linalg, linalg) - self.assertIs(imported_numpy.compat, numpy.compat) + self.assertIs(imported_numpy.fft, numpy.fft) # 1.4.1 Build module from LazyAttr imported_linalg = lazy_numpy.linalg.build() - imported_compat = lazy_numpy.compat.build() - self.assertIs(imported_compat, numpy.compat) + imported_fft = lazy_numpy.fft.build() + self.assertIs(imported_fft, numpy.fft) self.assertIs(imported_linalg, linalg) # 1.4.2 build class method from LazyAttr @@ -186,4 +186,4 @@ def test_build(self): with self.assertRaisesRegex( ImportError, 'Failed to import mmengine.fileio.LocalBackend.unknown'): - local_backend.unknown.build() + local_backend.unknown.build() \ No newline at end of file From 5a994d5a8f3db10cb30b5628ce94424721aa5176 Mon Sep 17 00:00:00 2001 From: mgam <312065559@qq.com> Date: Mon, 27 Oct 2025 18:24:30 +0800 Subject: [PATCH 2/2] Restore the last empty line. --- tests/test_config/test_lazy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_config/test_lazy.py b/tests/test_config/test_lazy.py index 64f68eb377..1dda04fdaa 100644 --- a/tests/test_config/test_lazy.py +++ b/tests/test_config/test_lazy.py @@ -186,4 +186,4 @@ def test_build(self): with self.assertRaisesRegex( ImportError, 'Failed to import mmengine.fileio.LocalBackend.unknown'): - local_backend.unknown.build() \ No newline at end of file + local_backend.unknown.build()