aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/numpy/compat
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/numpy/compat')
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/compat/__init__.py19
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/compat/py3k.py145
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/compat/setup.py10
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/compat/tests/__init__.py0
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/compat/tests/test_compat.py22
5 files changed, 196 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/numpy/compat/__init__.py b/.venv/lib/python3.12/site-packages/numpy/compat/__init__.py
new file mode 100644
index 00000000..504f8b00
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/compat/__init__.py
@@ -0,0 +1,19 @@
+"""
+Compatibility module.
+
+This module contains duplicated code from Python itself or 3rd party
+extensions, which may be included for the following reasons:
+
+ * compatibility
+ * we may only need a small subset of the copied library/module
+
+"""
+
+from .._utils import _inspect
+from .._utils._inspect import getargspec, formatargspec
+from . import py3k
+from .py3k import *
+
+__all__ = []
+__all__.extend(_inspect.__all__)
+__all__.extend(py3k.__all__)
diff --git a/.venv/lib/python3.12/site-packages/numpy/compat/py3k.py b/.venv/lib/python3.12/site-packages/numpy/compat/py3k.py
new file mode 100644
index 00000000..d02c9f8f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/compat/py3k.py
@@ -0,0 +1,145 @@
+"""
+Python 3.X compatibility tools.
+
+While this file was originally intended for Python 2 -> 3 transition,
+it is now used to create a compatibility layer between different
+minor versions of Python 3.
+
+While the active version of numpy may not support a given version of python, we
+allow downstream libraries to continue to use these shims for forward
+compatibility with numpy while they transition their code to newer versions of
+Python.
+"""
+__all__ = ['bytes', 'asbytes', 'isfileobj', 'getexception', 'strchar',
+ 'unicode', 'asunicode', 'asbytes_nested', 'asunicode_nested',
+ 'asstr', 'open_latin1', 'long', 'basestring', 'sixu',
+ 'integer_types', 'is_pathlib_path', 'npy_load_module', 'Path',
+ 'pickle', 'contextlib_nullcontext', 'os_fspath', 'os_PathLike']
+
+import sys
+import os
+from pathlib import Path
+import io
+try:
+ import pickle5 as pickle
+except ImportError:
+ import pickle
+
+long = int
+integer_types = (int,)
+basestring = str
+unicode = str
+bytes = bytes
+
+def asunicode(s):
+ if isinstance(s, bytes):
+ return s.decode('latin1')
+ return str(s)
+
+def asbytes(s):
+ if isinstance(s, bytes):
+ return s
+ return str(s).encode('latin1')
+
+def asstr(s):
+ if isinstance(s, bytes):
+ return s.decode('latin1')
+ return str(s)
+
+def isfileobj(f):
+ if not isinstance(f, (io.FileIO, io.BufferedReader, io.BufferedWriter)):
+ return False
+ try:
+ # BufferedReader/Writer may raise OSError when
+ # fetching `fileno()` (e.g. when wrapping BytesIO).
+ f.fileno()
+ return True
+ except OSError:
+ return False
+
+def open_latin1(filename, mode='r'):
+ return open(filename, mode=mode, encoding='iso-8859-1')
+
+def sixu(s):
+ return s
+
+strchar = 'U'
+
+def getexception():
+ return sys.exc_info()[1]
+
+def asbytes_nested(x):
+ if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
+ return [asbytes_nested(y) for y in x]
+ else:
+ return asbytes(x)
+
+def asunicode_nested(x):
+ if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
+ return [asunicode_nested(y) for y in x]
+ else:
+ return asunicode(x)
+
+def is_pathlib_path(obj):
+ """
+ Check whether obj is a `pathlib.Path` object.
+
+ Prefer using ``isinstance(obj, os.PathLike)`` instead of this function.
+ """
+ return isinstance(obj, Path)
+
+# from Python 3.7
+class contextlib_nullcontext:
+ """Context manager that does no additional processing.
+
+ Used as a stand-in for a normal context manager, when a particular
+ block of code is only sometimes used with a normal context manager:
+
+ cm = optional_cm if condition else nullcontext()
+ with cm:
+ # Perform operation, using optional_cm if condition is True
+
+ .. note::
+ Prefer using `contextlib.nullcontext` instead of this context manager.
+ """
+
+ def __init__(self, enter_result=None):
+ self.enter_result = enter_result
+
+ def __enter__(self):
+ return self.enter_result
+
+ def __exit__(self, *excinfo):
+ pass
+
+
+def npy_load_module(name, fn, info=None):
+ """
+ Load a module. Uses ``load_module`` which will be deprecated in python
+ 3.12. An alternative that uses ``exec_module`` is in
+ numpy.distutils.misc_util.exec_mod_from_location
+
+ .. versionadded:: 1.11.2
+
+ Parameters
+ ----------
+ name : str
+ Full module name.
+ fn : str
+ Path to module file.
+ info : tuple, optional
+ Only here for backward compatibility with Python 2.*.
+
+ Returns
+ -------
+ mod : module
+
+ """
+ # Explicitly lazy import this to avoid paying the cost
+ # of importing importlib at startup
+ from importlib.machinery import SourceFileLoader
+ return SourceFileLoader(name, fn).load_module()
+
+
+os_fspath = os.fspath
+os_PathLike = os.PathLike
diff --git a/.venv/lib/python3.12/site-packages/numpy/compat/setup.py b/.venv/lib/python3.12/site-packages/numpy/compat/setup.py
new file mode 100644
index 00000000..c1b34a2c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/compat/setup.py
@@ -0,0 +1,10 @@
+def configuration(parent_package='',top_path=None):
+ from numpy.distutils.misc_util import Configuration
+
+ config = Configuration('compat', parent_package, top_path)
+ config.add_subpackage('tests')
+ return config
+
+if __name__ == '__main__':
+ from numpy.distutils.core import setup
+ setup(configuration=configuration)
diff --git a/.venv/lib/python3.12/site-packages/numpy/compat/tests/__init__.py b/.venv/lib/python3.12/site-packages/numpy/compat/tests/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/compat/tests/__init__.py
diff --git a/.venv/lib/python3.12/site-packages/numpy/compat/tests/test_compat.py b/.venv/lib/python3.12/site-packages/numpy/compat/tests/test_compat.py
new file mode 100644
index 00000000..d4391565
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/compat/tests/test_compat.py
@@ -0,0 +1,22 @@
+from os.path import join
+from io import BufferedReader, BytesIO
+
+from numpy.compat import isfileobj
+from numpy.testing import assert_
+from numpy.testing import tempdir
+
+
+def test_isfileobj():
+ with tempdir(prefix="numpy_test_compat_") as folder:
+ filename = join(folder, 'a.bin')
+
+ with open(filename, 'wb') as f:
+ assert_(isfileobj(f))
+
+ with open(filename, 'ab') as f:
+ assert_(isfileobj(f))
+
+ with open(filename, 'rb') as f:
+ assert_(isfileobj(f))
+
+ assert_(isfileobj(BufferedReader(BytesIO())) is False)