From e65987d4c0d63585dd63e742ec3c8aa07645ffc5 Mon Sep 17 00:00:00 2001 From: Jonathan Dung Date: Tue, 7 Apr 2026 21:26:53 +0800 Subject: [PATCH] gh-146547: Use lazy imports in ctypes (GH-146548) --- Lib/ctypes/__init__.py | 3 ++- Lib/ctypes/_layout.py | 3 ++- Lib/ctypes/util.py | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index 1c822759eca..6d7cb56f6c3 100644 --- a/Lib/ctypes/__init__.py +++ b/Lib/ctypes/__init__.py @@ -2,9 +2,10 @@ import os as _os import sys as _sys -import sysconfig as _sysconfig import types as _types +lazy import sysconfig as _sysconfig + from _ctypes import Union, Structure, Array from _ctypes import _Pointer from _ctypes import CFuncPtr as _CFuncPtr diff --git a/Lib/ctypes/_layout.py b/Lib/ctypes/_layout.py index 2048ccb6a1c..61b4c6c70fb 100644 --- a/Lib/ctypes/_layout.py +++ b/Lib/ctypes/_layout.py @@ -5,11 +5,12 @@ """ import sys -import warnings from _ctypes import CField, buffer_info import ctypes +lazy import warnings + def round_down(n, multiple): assert n >= 0 assert multiple > 0 diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py index 3b21658433b..35ac5b6bfd6 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -1,8 +1,9 @@ import os -import shutil -import subprocess import sys +lazy import shutil +lazy import subprocess + # find_library(name) returns the pathname of a library, or None. if os.name == "nt":