Skip to content

Support explicit lazy imports in Python 3.15 (PEP 810) #2462

@hugovk

Description

@hugovk

PEP 810 "Explicit lazy imports" has been accepted and is coming to Python 3.15 (2026-03-10's 3.15.0a7 will be the first release).

This adds a new lazy keyword for imports:

lazy import json
lazy from json import dumps

And also a __lazy_modules__ for backwards compatibility with pre-3.15:

__lazy_modules__ = ["json"]
import json

It would be useful to also sort __lazy_modules__. Two options:

  • Alphabetical
  • Follow the isort settings, for example: stdlib, third-party, local

The Steering Council's acceptance said:

We agree that the PEP should take no position on any style recommendations for sorting lazy imports. While we generally like the idea of grouping lazy imports together, let’s leave that up to the linters and auto-formatters to decide the details.

See also astral-sh/ruff#21305.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions