404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.16.135.146: ~ $
"""
Module defining global singleton classes.

This module raises a RuntimeError if an attempt to reload it is made. In that
way the identities of the classes defined here are fixed and will remain so
even if numpy itself is reloaded. In particular, a function like the following
will still work correctly after numpy is reloaded::

    def foo(arg=np._NoValue):
        if arg is np._NoValue:
            ...

That was not the case when the singleton classes were defined in the numpy
``__init__.py`` file. See gh-7844 for a discussion of the reload problem that
motivated this module.

"""
import enum

from ._utils import set_module as _set_module

__all__ = ['_NoValue', '_CopyMode']


# Disallow reloading this module so as to preserve the identities of the
# classes defined here.
if '_is_loaded' in globals():
    raise RuntimeError('Reloading numpy._globals is not allowed')
_is_loaded = True


class _NoValueType:
    """Special keyword value.

    The instance of this class may be used as the default value assigned to a
    keyword if no other obvious default (e.g., `None`) is suitable,

    Common reasons for using this keyword are:

    - A new keyword is added to a function, and that function forwards its
      inputs to another function or method which can be defined outside of
      NumPy. For example, ``np.std(x)`` calls ``x.std``, so when a ``keepdims``
      keyword was added that could only be forwarded if the user explicitly
      specified ``keepdims``; downstream array libraries may not have added
      the same keyword, so adding ``x.std(..., keepdims=keepdims)``
      unconditionally could have broken previously working code.
    - A keyword is being deprecated, and a deprecation warning must only be
      emitted when the keyword is used.

    """
    __instance = None
    def __new__(cls):
        # ensure that only one instance exists
        if not cls.__instance:
            cls.__instance = super().__new__(cls)
        return cls.__instance

    def __repr__(self):
        return "<no value>"


_NoValue = _NoValueType()


@_set_module("numpy")
class _CopyMode(enum.Enum):
    """
    An enumeration for the copy modes supported
    by numpy.copy() and numpy.array(). The following three modes are supported,

    - ALWAYS: This means that a deep copy of the input
              array will always be taken.
    - IF_NEEDED: This means that a deep copy of the input
                 array will be taken only if necessary.
    - NEVER: This means that the deep copy will never be taken.
             If a copy cannot be avoided then a `ValueError` will be
             raised.

    Note that the buffer-protocol could in theory do copies.  NumPy currently
    assumes an object exporting the buffer protocol will never do this.
    """

    ALWAYS = True
    IF_NEEDED = False
    NEVER = 2

    def __bool__(self):
        # For backwards compatibility
        if self == _CopyMode.ALWAYS:
            return True

        if self == _CopyMode.IF_NEEDED:
            return False

        raise ValueError(f"{self} is neither True nor False.")

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
_pyinstaller Folder 0755
_typing Folder 0755
_utils Folder 0755
array_api Folder 0755
compat Folder 0755
core Folder 0755
distutils Folder 0755
doc Folder 0755
f2py Folder 0755
fft Folder 0755
lib Folder 0755
linalg Folder 0755
ma Folder 0755
matrixlib Folder 0755
polynomial Folder 0755
random Folder 0755
testing Folder 0755
tests Folder 0755
typing Folder 0755
LICENSE.txt File 44.62 KB 0644
__config__.py File 5.02 KB 0644
__init__.cython-30.pxd File 35.81 KB 0644
__init__.pxd File 34.22 KB 0644
__init__.py File 16.1 KB 0644
__init__.pyi File 150.11 KB 0644
_distributor_init.py File 331 B 0644
_globals.py File 3.02 KB 0644
_pytesttester.py File 6.51 KB 0644
_pytesttester.pyi File 489 B 0644
_version.py File 498 B 0644
conftest.py File 4.51 KB 0644
ctypeslib.py File 16.84 KB 0644
ctypeslib.pyi File 7.79 KB 0644
dtypes.py File 2.18 KB 0644
dtypes.pyi File 1.28 KB 0644
exceptions.py File 7.17 KB 0644
exceptions.pyi File 600 B 0644
matlib.py File 10.22 KB 0644
py.typed File 0 B 0644
setup.py File 1.11 KB 0644
version.py File 623 B 0644