diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py index 26fcda612567ea4..542da206e2c6920 100644 --- a/Lib/rlcompleter.py +++ b/Lib/rlcompleter.py @@ -31,12 +31,12 @@ import atexit import builtins -import inspect import keyword -import re import __main__ import warnings import types +lazy import inspect +lazy import re __all__ = ["Completer"] diff --git a/Lib/test/test_rlcompleter.py b/Lib/test/test_rlcompleter.py index c0b5a4da8cb2569..07a1e53212c3110 100644 --- a/Lib/test/test_rlcompleter.py +++ b/Lib/test/test_rlcompleter.py @@ -4,6 +4,7 @@ import types import rlcompleter from test.support import MISSING_C_DOCSTRINGS +from test.support.import_helper import ensure_lazy_imports class CompleteMe: """ Trivial class used in testing rlcompleter.Completer. """ @@ -252,5 +253,9 @@ def test_duplicate_globals(self): self.assertEqual(completer.complete('Ellipsis', 0), 'Ellipsis()') self.assertIsNone(completer.complete('Ellipsis', 1)) + def test_lazy_imports(self): + ensure_lazy_imports("rlcompleter", {"inspect", "re"}) + + if __name__ == '__main__': unittest.main() diff --git a/Misc/NEWS.d/next/Library/2026-08-25-12-43-10.gh-issue-156363.RlzImp.rst b/Misc/NEWS.d/next/Library/2026-08-25-12-43-10.gh-issue-156363.RlzImp.rst new file mode 100644 index 000000000000000..993ea7d839ed502 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-08-25-12-43-10.gh-issue-156363.RlzImp.rst @@ -0,0 +1 @@ +Speed up the :mod:`rlcompleter` module's import time.