diff --git a/src/packaging/_elffile.py b/src/packaging/_elffile.py index 497b06452..15312765a 100644 --- a/src/packaging/_elffile.py +++ b/src/packaging/_elffile.py @@ -9,6 +9,8 @@ from __future__ import annotations +__lazy_modules__ = ["os", "struct", "typing"] + import enum import os import struct diff --git a/src/packaging/_manylinux.py b/src/packaging/_manylinux.py index 0e79e8a88..08583356a 100644 --- a/src/packaging/_manylinux.py +++ b/src/packaging/_manylinux.py @@ -1,5 +1,7 @@ from __future__ import annotations +__lazy_modules__ = [f"{__spec__.parent}._elffile", "os", "re", "sys", "warnings"] + import collections import contextlib import functools diff --git a/src/packaging/_musllinux.py b/src/packaging/_musllinux.py index 4e8116a79..6c85d1cf8 100644 --- a/src/packaging/_musllinux.py +++ b/src/packaging/_musllinux.py @@ -6,6 +6,8 @@ from __future__ import annotations +__lazy_modules__ = [f"{__spec__.parent}._elffile", "subprocess"] + import functools import re import subprocess diff --git a/src/packaging/_parser.py b/src/packaging/_parser.py index f6c1f5cd2..02b96b868 100644 --- a/src/packaging/_parser.py +++ b/src/packaging/_parser.py @@ -6,6 +6,8 @@ from __future__ import annotations +__lazy_modules__ = ["ast", f"{__spec__.parent}._tokenizer"] + import ast from typing import List, Literal, NamedTuple, Sequence, Tuple, Union diff --git a/src/packaging/_tokenizer.py b/src/packaging/_tokenizer.py index 5ab891ccb..15e906cff 100644 --- a/src/packaging/_tokenizer.py +++ b/src/packaging/_tokenizer.py @@ -1,5 +1,7 @@ from __future__ import annotations +__lazy_modules__ = ["contextlib", "typing"] + import contextlib import re from dataclasses import dataclass diff --git a/src/packaging/dependency_groups.py b/src/packaging/dependency_groups.py index 413e5cb4b..e5e3a94ec 100644 --- a/src/packaging/dependency_groups.py +++ b/src/packaging/dependency_groups.py @@ -1,5 +1,12 @@ from __future__ import annotations +__lazy_modules__ = [ + "collections", + "collections.abc", + f"{__spec__.parent}.errors", + f"{__spec__.parent}.requirements", +] + import re from collections.abc import Mapping, Sequence diff --git a/src/packaging/direct_url.py b/src/packaging/direct_url.py index 5d1c56ca9..980058425 100644 --- a/src/packaging/direct_url.py +++ b/src/packaging/direct_url.py @@ -1,5 +1,7 @@ from __future__ import annotations +__lazy_modules__ = ["collections", "collections.abc", "urllib", "urllib.parse"] + import dataclasses import re import urllib.parse diff --git a/src/packaging/errors.py b/src/packaging/errors.py index d1d47cf6c..1f60876b6 100644 --- a/src/packaging/errors.py +++ b/src/packaging/errors.py @@ -1,5 +1,7 @@ from __future__ import annotations +__lazy_modules__ = ["builtins", "contextlib", "typing"] + import contextlib import dataclasses import sys diff --git a/src/packaging/licenses/__init__.py b/src/packaging/licenses/__init__.py index cf90173a7..a213d1b35 100644 --- a/src/packaging/licenses/__init__.py +++ b/src/packaging/licenses/__init__.py @@ -31,6 +31,8 @@ ####################################################################################### from __future__ import annotations +__lazy_modules__ = [f"{__spec__.parent}._spdx"] + import re from typing import NewType, cast diff --git a/src/packaging/markers.py b/src/packaging/markers.py index 7e178858a..6c27f8992 100644 --- a/src/packaging/markers.py +++ b/src/packaging/markers.py @@ -4,6 +4,16 @@ from __future__ import annotations +__lazy_modules__ = [ + f"{__spec__.parent}._parser", + f"{__spec__.parent}._tokenizer", + f"{__spec__.parent}.specifiers", + f"{__spec__.parent}.utils", + "os", + "platform", + "sys", +] + import operator import os import platform diff --git a/src/packaging/metadata.py b/src/packaging/metadata.py index 967a932f9..af69cf6d0 100644 --- a/src/packaging/metadata.py +++ b/src/packaging/metadata.py @@ -1,5 +1,7 @@ from __future__ import annotations +__lazy_modules__ = [f"{__spec__.parent}.errors", "keyword", "pathlib"] + import email.header import email.message import email.parser diff --git a/src/packaging/pylock.py b/src/packaging/pylock.py index 96aa35c6d..65d6163f2 100644 --- a/src/packaging/pylock.py +++ b/src/packaging/pylock.py @@ -1,5 +1,17 @@ from __future__ import annotations +__lazy_modules__ = [ + "collections", + "collections.abc", + "datetime", + f"{__spec__.parent}.markers", + f"{__spec__.parent}.specifiers", + f"{__spec__.parent}.utils", + f"{__spec__.parent}.version", + "urllib", + "urllib.parse", +] + import dataclasses import logging import re diff --git a/src/packaging/requirements.py b/src/packaging/requirements.py index 18640d438..3421ce002 100644 --- a/src/packaging/requirements.py +++ b/src/packaging/requirements.py @@ -3,6 +3,15 @@ # for complete details. from __future__ import annotations +__lazy_modules__ = [ + f"{__spec__.parent}._parser", + f"{__spec__.parent}._tokenizer", + f"{__spec__.parent}.markers", + f"{__spec__.parent}.specifiers", + f"{__spec__.parent}.utils", + "typing", +] + from typing import Iterator from ._parser import parse_requirement as _parse_requirement diff --git a/src/packaging/specifiers.py b/src/packaging/specifiers.py index 0d55cad5f..70b212b79 100644 --- a/src/packaging/specifiers.py +++ b/src/packaging/specifiers.py @@ -10,6 +10,8 @@ from __future__ import annotations +__lazy_modules__ = [f"{__spec__.parent}.utils", "itertools"] + import abc import itertools import re diff --git a/src/packaging/tags.py b/src/packaging/tags.py index e3cc602ec..3b6dbfb67 100644 --- a/src/packaging/tags.py +++ b/src/packaging/tags.py @@ -4,6 +4,16 @@ from __future__ import annotations +__lazy_modules__ = [ + "importlib", + "importlib.machinery", + "platform", + "re", + "subprocess", + "sys", + "sysconfig", +] + import logging import platform import re diff --git a/src/packaging/utils.py b/src/packaging/utils.py index 9d66be888..a36d659bb 100644 --- a/src/packaging/utils.py +++ b/src/packaging/utils.py @@ -4,6 +4,8 @@ from __future__ import annotations +__lazy_modules__ = [f"{__spec__.parent}.tags", f"{__spec__.parent}.version"] + import re from typing import NewType, Tuple, Union, cast diff --git a/src/packaging/version.py b/src/packaging/version.py index af000eea6..d5390ade4 100644 --- a/src/packaging/version.py +++ b/src/packaging/version.py @@ -9,6 +9,8 @@ from __future__ import annotations +__lazy_modules__ = ["functools", "warnings"] + import re import sys import typing