Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/propcache/_helpers.py: 57%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

23 statements  

1import os 

2import sys 

3from typing import TYPE_CHECKING 

4 

5__all__ = ("cached_property", "under_cached_property") 

6 

7 

8NO_EXTENSIONS = bool(os.environ.get("PROPCACHE_NO_EXTENSIONS")) # type: bool 

9if sys.implementation.name != "cpython": 

10 NO_EXTENSIONS = True 

11 

12 

13# isort: off 

14if TYPE_CHECKING: 

15 from ._helpers_py import cached_property as cached_property_py 

16 from ._helpers_py import under_cached_property as under_cached_property_py 

17 

18 cached_property = cached_property_py 

19 under_cached_property = under_cached_property_py 

20elif not NO_EXTENSIONS: # pragma: no branch 

21 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_c 

26 under_cached_property = under_cached_property_c 

27 except ImportError: # pragma: no cover 

28 from ._helpers_py import cached_property as cached_property_py 

29 from ._helpers_py import under_cached_property as under_cached_property_py 

30 

31 cached_property = cached_property_py # type: ignore[assignment, misc] 

32 under_cached_property = under_cached_property_py 

33else: 

34 from ._helpers_py import cached_property as cached_property_py 

35 from ._helpers_py import under_cached_property as under_cached_property_py 

36 

37 cached_property = cached_property_py # type: ignore[assignment, misc] 

38 under_cached_property = under_cached_property_py 

39# isort: on