36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
"""Playwright support module under the plugin namespace.
|
|
|
|
This package provides shared browser automation defaults/helpers for cmdlets and
|
|
plugins. It is intentionally lightweight at import time so plugin discovery can
|
|
import `plugins.playwright` even when Playwright itself is not installed.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
__all__ = [
|
|
"PlaywrightTimeoutError",
|
|
"PlaywrightTool",
|
|
"PlaywrightDefaults",
|
|
"PlaywrightDownloadResult",
|
|
"config_schema",
|
|
]
|
|
|
|
_MODULE_ATTRS = {
|
|
"PlaywrightTimeoutError": ".runtime",
|
|
"PlaywrightTool": ".runtime",
|
|
"PlaywrightDefaults": ".runtime",
|
|
"PlaywrightDownloadResult": ".runtime",
|
|
"config_schema": ".runtime",
|
|
}
|
|
|
|
|
|
def __getattr__(name: str) -> object:
|
|
submod = _MODULE_ATTRS.get(name)
|
|
if submod is None:
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
from importlib import import_module
|
|
|
|
mod = import_module(submod, package=__name__)
|
|
obj = getattr(mod, name)
|
|
globals()[name] = obj
|
|
return obj |