File: debugging.py

package info (click to toggle)
python-tatsu 5.17.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 1,516 kB
  • sloc: python: 13,185; makefile: 127
file content (32 lines) | stat: -rw-r--r-- 769 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Copyright (c) 2017-2026 Juancarlo Añez (apalala@gmail.com)
# SPDX-License-Identifier: BSD-4-Clause
from __future__ import annotations

import sys
import warnings
from typing import Any

from .string import prints


def stderr_print(*args: Any, **kwargs: Any) -> None:
    file = kwargs.pop('file', sys.stderr)
    print(*args, file=file, **kwargs)


def info(*args: Any, **kwargs: Any) -> None:
    stderr_print('ⓘ', *args, **kwargs)


def debug(*args: Any, **kwargs: Any) -> None:
    if not __debug__:
        return
    stderr_print('🐞', *args, **kwargs)


def warning(*args: Any, **kwargs: Any) -> None:
    warnings.warn(prints(*args, **kwargs), stacklevel=2)


def error(*args: Any, **kwargs: Any) -> None:
    raise RuntimeError(prints(*args, **kwargs))