Skip to content

debug ¤

Debugging utilities.

Classes:

  • Environment

    Dataclass to store environment information.

  • Package

    Dataclass describing a Python package.

  • Variable

    Dataclass describing an environment variable.

Functions:

Environment dataclass ¤

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

Dataclass to store environment information.

Attributes:

interpreter_name instance-attribute ¤

interpreter_name: str

Python interpreter name.

interpreter_path instance-attribute ¤

interpreter_path: str

Path to Python executable.

interpreter_version instance-attribute ¤

interpreter_version: str

Python interpreter version.

packages instance-attribute ¤

packages: list[Package]

Installed packages.

platform instance-attribute ¤

platform: str

Operating System.

variables instance-attribute ¤

variables: list[Variable]

Environment variables.

Package dataclass ¤

Package(name: str, version: str)

Dataclass describing a Python package.

Attributes:

name instance-attribute ¤

name: str

Package name.

version instance-attribute ¤

version: str

Package version.

Variable dataclass ¤

Variable(name: str, value: str)

Dataclass describing an environment variable.

Attributes:

name instance-attribute ¤

name: str

Variable name.

value instance-attribute ¤

value: str

Variable value.

get_debug_info ¤

get_debug_info() -> Environment

Get debug/environment information.

Returns:

Source code in src/git_changelog/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 = ["git-changelog"]
    variables = ["PYTHONPATH", *[var for var in os.environ if var.startswith("GIT_CHANGELOG")]]
    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 ¤

get_version(dist: str = 'git-changelog') -> str

Get version of the given distribution.

Parameters:

  • dist (str, default: 'git-changelog' ) –

    A distribution name.

Returns:

  • str

    A version number.

Source code in src/git_changelog/debug.py
61
62
63
64
65
66
67
68
69
70
71
72
73
def get_version(dist: str = "git-changelog") -> 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 ¤

print_debug_info() -> None

Print debug/environment information.

Source code in src/git_changelog/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}")