type_checking_imports.main API documentation

# type_checking_imports.main

View Source

     1from __future__ import annotations
     2
     3import typing
     4from typing import TYPE_CHECKING
     5
     6from . import cached_submodule
     7
     8if typing.TYPE_CHECKING:
     9    from typing import Sequence
    10
    11if TYPE_CHECKING:
    12    from typing import Dict
    13
    14    from .cached_submodule import StrOrInt
    15    from .uncached_submodule import StrOrBool
    16
    17assert cached_submodule
    18
    19
    20def foo(a: Sequence[str], b: Dict[str, str]):
    21    """A method with TYPE_CHECKING type annotations."""
    22
    23
    24var: Sequence[int] = (1, 2, 3)
    25"""A variable with TYPE_CHECKING type annotations."""
    26
    27
    28imported_from_cached_module: StrOrInt = 42
    29"""
    30A variable with a type annotation that's imported from another file's TYPE_CHECKING block.
    31
    32https://github.com/mitmproxy/pdoc/issues/648
    33"""
    34
    35imported_from_uncached_module: StrOrBool = True
    36"""
    37A variable with a type annotation that's imported from another file's TYPE_CHECKING block.
    38
    39In this case, the module is not in sys.modules outside of TYPE_CHECKING.
    40"""

def foo(a: Sequence[str], b: Dict[str, str]): View Source

    21def foo(a: Sequence[str], b: Dict[str, str]):
    22    """A method with TYPE_CHECKING type annotations."""

A method with TYPE_CHECKING type annotations.

var: Sequence[int] = (1, 2, 3)

A variable with TYPE_CHECKING type annotations.

imported_from_cached_module: str | int = 42

A variable with a type annotation that's imported from another file's TYPE_CHECKING block.

https://github.com/mitmproxy/pdoc/issues/648

imported_from_uncached_module: str | bool = True

A variable with a type annotation that's imported from another file's TYPE_CHECKING block.

In this case, the module is not in sys.modules outside of TYPE_CHECKING.