aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/zipp/compat
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/zipp/compat')
-rw-r--r--.venv/lib/python3.12/site-packages/zipp/compat/__init__.py0
-rw-r--r--.venv/lib/python3.12/site-packages/zipp/compat/overlay.py37
-rw-r--r--.venv/lib/python3.12/site-packages/zipp/compat/py310.py13
3 files changed, 50 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/zipp/compat/__init__.py b/.venv/lib/python3.12/site-packages/zipp/compat/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/zipp/compat/__init__.py
diff --git a/.venv/lib/python3.12/site-packages/zipp/compat/overlay.py b/.venv/lib/python3.12/site-packages/zipp/compat/overlay.py
new file mode 100644
index 00000000..5a97ee7c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/zipp/compat/overlay.py
@@ -0,0 +1,37 @@
+"""
+Expose zipp.Path as .zipfile.Path.
+
+Includes everything else in ``zipfile`` to match future usage. Just
+use:
+
+>>> from zipp.compat.overlay import zipfile
+
+in place of ``import zipfile``.
+
+Relative imports are supported too.
+
+>>> from zipp.compat.overlay.zipfile import ZipInfo
+
+The ``zipfile`` object added to ``sys.modules`` needs to be
+hashable (#126).
+
+>>> _ = hash(sys.modules['zipp.compat.overlay.zipfile'])
+"""
+
+import importlib
+import sys
+import types
+
+import zipp
+
+
+class HashableNamespace(types.SimpleNamespace):
+ def __hash__(self):
+ return hash(tuple(vars(self)))
+
+
+zipfile = HashableNamespace(**vars(importlib.import_module('zipfile')))
+zipfile.Path = zipp.Path
+zipfile._path = zipp
+
+sys.modules[__name__ + '.zipfile'] = zipfile # type: ignore[assignment]
diff --git a/.venv/lib/python3.12/site-packages/zipp/compat/py310.py b/.venv/lib/python3.12/site-packages/zipp/compat/py310.py
new file mode 100644
index 00000000..e1e7ec22
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/zipp/compat/py310.py
@@ -0,0 +1,13 @@
+import io
+import sys
+
+
+def _text_encoding(encoding, stacklevel=2, /): # pragma: no cover
+ return encoding
+
+
+text_encoding = (
+ io.text_encoding # type: ignore[unused-ignore, attr-defined]
+ if sys.version_info > (3, 10)
+ else _text_encoding
+)