Skip to content

debug ¤

Debugging utilities.

Classes:

Name Description
Environment

Dataclass to store environment information.

Package

Dataclass describing a Python package.

Variable

Dataclass describing an environment variable.

Functions:

Name Description
get_debug_info

Get debug/environment information.

get_version

Get version of the given distribution.

print_debug_info

Print debug/environment information.

Environment(interpreter_name: str, interpreter_version: str, interpreter_path: str, platform: str, packages: list[Package], variables: list[Variable]) dataclass ¤

Dataclass to store environment information.

Attributes:

Name Type Description
interpreter_name str

Python interpreter name.

interpreter_path str

Path to Python executable.

interpreter_version str

Python interpreter version.

packages list[Package]

Installed packages.

platform str

Operating System.

variables list[Variable]

Environment variables.

interpreter_name: str instance-attribute ¤

Python interpreter name.

interpreter_path: str instance-attribute ¤

Path to Python executable.

interpreter_version: str instance-attribute ¤

Python interpreter version.

packages: list[Package] instance-attribute ¤

Installed packages.

platform: str instance-attribute ¤

Operating System.

variables: list[Variable] instance-attribute ¤

Environment variables.

Package(name: str, version: str) dataclass ¤

Dataclass describing a Python package.

Attributes:

Name Type Description
name str

Package name.

version str

Package version.

name: str instance-attribute ¤

Package name.

version: str instance-attribute ¤

Package version.

Variable(name: str, value: str) dataclass ¤

Dataclass describing an environment variable.

Attributes:

Name Type Description
name str

Variable name.

value str

Variable value.

name: str instance-attribute ¤

Variable name.

value: str instance-attribute ¤

Variable value.

get_debug_info() -> Environment ¤

Get debug/environment information.

Returns:

Type Description
Environment

Environment information.

Source code in src/mkdocs_spellcheck/debug.py
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
def get_debug_info() -> Environment:
    """Get debug/environment information.

    Returns:
        Environment information.
    """
    py_name, py_version = _interpreter_name_version()
    packages = ["mkdocs-spellcheck"]
    variables = ["PYTHONPATH", *[var for var in os.environ if var.startswith("MKDOCS_SPELLCHECK")]]
    return Environment(
        interpreter_name=py_name,
        interpreter_version=py_version,
        interpreter_path=sys.executable,
        platform=platform.platform(),
        variables=[Variable(var, val) for var in variables if (val := os.getenv(var))],
        packages=[Package(pkg, get_version(pkg)) for pkg in packages],
    )

get_version(dist: str = 'mkdocs-spellcheck') -> str ¤

Get version of the given distribution.

Parameters:

Name Type Description Default
dist str

A distribution name.

'mkdocs-spellcheck'

Returns:

Type Description
str

A version number.

Source code in src/mkdocs_spellcheck/debug.py
61
62
63
64
65
66
67
68
69
70
71
72
73
def get_version(dist: str = "mkdocs-spellcheck") -> str:
    """Get version of the given distribution.

    Parameters:
        dist: A distribution name.

    Returns:
        A version number.
    """
    try:
        return metadata.version(dist)
    except metadata.PackageNotFoundError:
        return "0.0.0"

print_debug_info() -> None ¤

Print debug/environment information.

Source code in src/mkdocs_spellcheck/debug.py
 95
 96
 97
 98
 99
100
101
102
103
104
105
def print_debug_info() -> None:
    """Print debug/environment information."""
    info = get_debug_info()
    print(f"- __System__: {info.platform}")
    print(f"- __Python__: {info.interpreter_name} {info.interpreter_version} ({info.interpreter_path})")
    print("- __Environment variables__:")
    for var in info.variables:
        print(f"  - `{var.name}`: `{var.value}`")
    print("- __Installed packages__:")
    for pkg in info.packages:
        print(f"  - `{pkg.name}` v{pkg.version}")