codekingpro/portable-devtools
114k
1import os2import sys3from typing import TYPE_CHECKING4 5__all__ = ("cached_property", "under_cached_property")6 7 8NO_EXTENSIONS = bool(os.environ.get("PROPCACHE_NO_EXTENSIONS")) # type: bool9if sys.implementation.name != "cpython":10 NO_EXTENSIONS = True11 12 13# isort: off14if TYPE_CHECKING:15 from ._helpers_py import cached_property as cached_property_py16 from ._helpers_py import under_cached_property as under_cached_property_py17 18 cached_property = cached_property_py19 under_cached_property = under_cached_property_py20elif not NO_EXTENSIONS: # pragma: no branch21 try:22 from ._helpers_c import cached_property as cached_property_c # type: ignore[attr-defined, unused-ignore]23 from ._helpers_c import under_cached_property as under_cached_property_c # type: ignore[attr-defined, unused-ignore]24 25 cached_property = cached_property_c26 under_cached_property = under_cached_property_c27 except ImportError: # pragma: no cover28 from ._helpers_py import cached_property as cached_property_py29 from ._helpers_py import under_cached_property as under_cached_property_py30 31 cached_property = cached_property_py # type: ignore[assignment, misc]32 under_cached_property = under_cached_property_py33else:34 from ._helpers_py import cached_property as cached_property_py35 from ._helpers_py import under_cached_property as under_cached_property_py36 37 cached_property = cached_property_py # type: ignore[assignment, misc]38 under_cached_property = under_cached_property_py39# isort: on40 