Исходный код EJIO.utils.config.inject

## /utils/config/inject.py

import builtins
from typing import Any, overload

__all__ = [
    'inject_to_builtins',
]


@overload
def inject_to_builtins(mapping: dict[str, Any], /) -> None:
    ...


@overload
def inject_to_builtins(name: str, attribute: Any, /) -> None:
    ...


[документация] def inject_to_builtins(first: str | dict[str, Any], second: Any = None, /) -> None: """ Универсальная функция для инъекции атрибутов во встроенное пространство имен builtins. :param first: Словарь с объектами или ключ для регистрации. :param second: Объект для регистрации в случае, если первый аргумент - ключ. :raises TypeError: Если первый аргумент не словарь и не строка. """ if isinstance(first, dict): for name, attr in first.items(): setattr(builtins, name, attr) elif isinstance(first, str): setattr(builtins, first, second) else: raise TypeError("First argument must be a string or a dictionary.")