diff --git a/Lib/sqlite3/__main__.py b/Lib/sqlite3/__main__.py index c2fa23c46cf990..471273b32131f8 100644 --- a/Lib/sqlite3/__main__.py +++ b/Lib/sqlite3/__main__.py @@ -7,9 +7,7 @@ import sqlite3 import sys -from argparse import ArgumentParser from code import InteractiveConsole -from textwrap import dedent from _colorize import get_theme, theme_no_color @@ -80,6 +78,9 @@ def runsource(self, source, filename="", symbol="single"): def main(*args): + from argparse import ArgumentParser + from textwrap import dedent + parser = ArgumentParser( description="Python sqlite3 CLI", color=True, diff --git a/Lib/sqlite3/dbapi2.py b/Lib/sqlite3/dbapi2.py index 0315760516edf8..53cafad41a2fe3 100644 --- a/Lib/sqlite3/dbapi2.py +++ b/Lib/sqlite3/dbapi2.py @@ -21,7 +21,6 @@ # 3. This notice may not be removed or altered from any source distribution. import datetime -import time import collections.abc from _sqlite3 import * @@ -37,12 +36,15 @@ Timestamp = datetime.datetime def DateFromTicks(ticks): + import time # Lazy, to improve import time return Date(*time.localtime(ticks)[:3]) def TimeFromTicks(ticks): + import time # Lazy, to improve import time return Time(*time.localtime(ticks)[3:6]) def TimestampFromTicks(ticks): + import time # Lazy, to improve import time return Timestamp(*time.localtime(ticks)[:6]) @@ -52,6 +54,8 @@ def TimestampFromTicks(ticks): collections.abc.Sequence.register(Row) def register_adapters_and_converters(): + global _lazy_register + _lazy_register = lambda: None # Prevent multiple registration # noqa: E731 from warnings import warn msg = ("The default {what} is deprecated as of Python 3.12; " diff --git a/Misc/NEWS.d/next/Library/2025-01-21-14-51-44.gh-issue-118761.Z0F-d5.rst b/Misc/NEWS.d/next/Library/2025-01-21-14-51-44.gh-issue-118761.Z0F-d5.rst new file mode 100644 index 00000000000000..eab19174b21825 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-01-21-14-51-44.gh-issue-118761.Z0F-d5.rst @@ -0,0 +1 @@ +Improve the import time of :mod:`sqlite3` by 1.5x faster.