about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/propcache/_helpers.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/propcache/_helpers.py')
-rw-r--r--.venv/lib/python3.12/site-packages/propcache/_helpers.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/propcache/_helpers.py b/.venv/lib/python3.12/site-packages/propcache/_helpers.py
new file mode 100644
index 00000000..99cadfd6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/propcache/_helpers.py
@@ -0,0 +1,39 @@
+import os
+import sys
+from typing import TYPE_CHECKING
+
+__all__ = ("cached_property", "under_cached_property")
+
+
+NO_EXTENSIONS = bool(os.environ.get("PROPCACHE_NO_EXTENSIONS"))  # type: bool
+if sys.implementation.name != "cpython":
+    NO_EXTENSIONS = True
+
+
+# isort: off
+if TYPE_CHECKING:
+    from ._helpers_py import cached_property as cached_property_py
+    from ._helpers_py import under_cached_property as under_cached_property_py
+
+    cached_property = cached_property_py
+    under_cached_property = under_cached_property_py
+elif not NO_EXTENSIONS:  # pragma: no branch
+    try:
+        from ._helpers_c import cached_property as cached_property_c  # type: ignore[attr-defined, unused-ignore] # noqa: E501
+        from ._helpers_c import under_cached_property as under_cached_property_c  # type: ignore[attr-defined, unused-ignore] # noqa: E501
+
+        cached_property = cached_property_c
+        under_cached_property = under_cached_property_c
+    except ImportError:  # pragma: no cover
+        from ._helpers_py import cached_property as cached_property_py
+        from ._helpers_py import under_cached_property as under_cached_property_py
+
+        cached_property = cached_property_py  # type: ignore[assignment, misc]
+        under_cached_property = under_cached_property_py
+else:
+    from ._helpers_py import cached_property as cached_property_py
+    from ._helpers_py import under_cached_property as under_cached_property_py
+
+    cached_property = cached_property_py  # type: ignore[assignment, misc]
+    under_cached_property = under_cached_property_py
+# isort: on