Skip to content

add_to_builtins

fastagency.api.openapi.openapi.add_to_builtins #

add_to_builtins(
    new_globals: dict[str, Any],
) -> Iterator[None]
Source code in fastagency/api/openapi/openapi.py
@contextmanager
def add_to_builtins(new_globals: dict[str, Any]) -> Iterator[None]:
    old_globals = {key: getattr(builtins, key, None) for key in new_globals}

    try:
        for key, value in new_globals.items():
            setattr(builtins, key, value)  # Inject new global
        yield
    finally:
        for key, value in old_globals.items():
            if value is None:
                delattr(builtins, key)  # Remove added globals
            else:
                setattr(builtins, key, value)  # Restore original value