sync/env.py (38 lines of code) (raw):
from __future__ import annotations
from typing import Any, TYPE_CHECKING
if TYPE_CHECKING:
from sync.bug import Bugzilla
from sync.gh import GitHub
_config: dict | None = None
_bz: Bugzilla | None = None
_gh_wpt: GitHub | None = None
class Environment:
@property
def config(self) -> dict[str, Any]:
assert _config is not None
return _config
@property
def bz(self) -> Bugzilla:
assert _bz is not None
return _bz
@property
def gh_wpt(self) -> GitHub:
assert _gh_wpt is not None
return _gh_wpt
def set_env(config: dict,
bz: Bugzilla,
gh_wpt: GitHub
):
global _config
global _bz
global _gh_wpt
_config = config
_bz = bz
_gh_wpt = gh_wpt
def clear_env():
# Only tests should really do this
global _config
global _bz
global _gh_wpt
_config = None
_bz = None
_gh_wpt = None