Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
__init__.py103 linesDownload Raw Back to display
1"""Package with Display implementations for urwid."""2 3from __future__ import annotations4 5import importlib.util6import sys7import typing8 9from . import raw10from .common import (11    BLACK,12    BROWN,13    DARK_BLUE,14    DARK_CYAN,15    DARK_GRAY,16    DARK_GREEN,17    DARK_MAGENTA,18    DARK_RED,19    DEFAULT,20    LIGHT_BLUE,21    LIGHT_CYAN,22    LIGHT_GRAY,23    LIGHT_GREEN,24    LIGHT_MAGENTA,25    LIGHT_RED,26    UPDATE_PALETTE_ENTRY,27    WHITE,28    YELLOW,29    AttrSpec,30    AttrSpecError,31    BaseScreen,32    RealTerminal,33    ScreenError,34)35 36if typing.TYPE_CHECKING:37    import types38 39__all__ = (40    "BLACK",41    "BROWN",42    "DARK_BLUE",43    "DARK_CYAN",44    "DARK_GRAY",45    "DARK_GREEN",46    "DARK_MAGENTA",47    "DARK_RED",48    "DEFAULT",49    "LIGHT_BLUE",50    "LIGHT_CYAN",51    "LIGHT_GRAY",52    "LIGHT_GREEN",53    "LIGHT_MAGENTA",54    "LIGHT_RED",55    "UPDATE_PALETTE_ENTRY",56    "WHITE",57    "YELLOW",58    "AttrSpec",59    "AttrSpecError",60    "BaseScreen",61    "RealTerminal",62    "ScreenError",63    # Lazy imported64    "html_fragment",65    "lcd",66    "raw",67    "web",68)69 70try:71    from . import curses72 73    __all__ += ("curses",)74except ImportError:75    pass76 77 78def lazy_import(name: str, package: str | None = None) -> types.ModuleType:79    """Lazy import implementation from Python documentation.80 81    Useful for cases where no warnings expected for moved modules.82    """83    spec = importlib.util.find_spec(name, package)84    if not spec:85        raise ImportError(f"No module named {name!r}")86    if not spec.loader:87        raise ImportError(f"Module named {name!r} is invalid")88 89    loader = importlib.util.LazyLoader(spec.loader)90    spec.loader = loader91    module = importlib.util.module_from_spec(spec)92    if not package:93        sys.modules[name] = module94    else:95        sys.modules[f"{package.rstrip('.')}.{name.lstrip('.')}"] = module96    loader.exec_module(module)97    return module98 99 100html_fragment = lazy_import(".html_fragment", __package__)101lcd = lazy_import(".lcd", __package__)102web = lazy_import(".web", __package__)103 
codekingpro/portable-devtools · Team Ai