/opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/core
""" Functions in the ``as*array`` family that promote array-likes into arrays. `require` fits this category despite its name not matching this pattern. """ from .overrides import ( array_function_dispatch, set_array_function_like_doc, set_module, ) from .multiarray import array, asanyarray __all__ = ["require"] POSSIBLE_FLAGS = { 'C': 'C', 'C_CONTIGUOUS': 'C', 'CONTIGUOUS': 'C', 'F': 'F', 'F_CONTIGUOUS': 'F', 'FORTRAN': 'F', 'A': 'A', 'ALIGNED': 'A', 'W': 'W', 'WRITEABLE': 'W', 'O': 'O', 'OWNDATA': 'O', 'E': 'E', 'ENSUREARRAY': 'E' } @set_array_function_like_doc @set_module('numpy') def require(a, dtype=None, requirements=None, *, like=None): """ Return an ndarray of the provided type that satisfies requirements. This function is useful to be sure that an array with the correct flags is returned for passing to compiled code (perhaps through ctypes). Parameters ---------- a : array_like The object to be converted to a type-and-requirement-satisfying array. dtype : data-type The required data-type. If None preserve the current dtype. If your application requires the data to be in native byteorder, include a byteorder specification as a part of the dtype specification. requirements : str or sequence of str The requirements list can be any of the following * 'F_CONTIGUOUS' ('F') - ensure a Fortran-contiguous array * 'C_CONTIGUOUS' ('C') - ensure a C-contiguous array * 'ALIGNED' ('A') - ensure a data-type aligned array * 'WRITEABLE' ('W') - ensure a writable array * 'OWNDATA' ('O') - ensure an array that owns its own data * 'ENSUREARRAY', ('E') - ensure a base array, instead of a subclass ${ARRAY_FUNCTION_LIKE} .. versionadded:: 1.20.0 Returns ------- out : ndarray Array with specified requirements and type if given. See Also -------- asarray : Convert input to an ndarray. asanyarray : Convert to an ndarray, but pass through ndarray subclasses. ascontiguousarray : Convert input to a contiguous array. asfortranarray : Convert input to an ndarray with column-major memory order. ndarray.flags : Information about the memory layout of the array. Notes ----- The returned array will be guaranteed to have the listed requirements by making a copy if needed. Examples -------- >>> x = np.arange(6).reshape(2,3) >>> x.flags C_CONTIGUOUS : True F_CONTIGUOUS : False OWNDATA : False WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False >>> y = np.require(x, dtype=np.float32, requirements=['A', 'O', 'W', 'F']) >>> y.flags C_CONTIGUOUS : False F_CONTIGUOUS : True OWNDATA : True WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False """ if like is not None: return _require_with_like( like, a, dtype=dtype, requirements=requirements, ) if not requirements: return asanyarray(a, dtype=dtype) requirements = {POSSIBLE_FLAGS[x.upper()] for x in requirements} if 'E' in requirements: requirements.remove('E') subok = False else: subok = True order = 'A' if requirements >= {'C', 'F'}: raise ValueError('Cannot specify both "C" and "F" order') elif 'F' in requirements: order = 'F' requirements.remove('F') elif 'C' in requirements: order = 'C' requirements.remove('C') arr = array(a, dtype=dtype, order=order, copy=False, subok=subok) for prop in requirements: if not arr.flags[prop]: return arr.copy(order) return arr _require_with_like = array_function_dispatch()(require)
.
Edit
..
Edit
__init__.py
Edit
__init__.pyi
Edit
__pycache__
Edit
_add_newdocs.py
Edit
_add_newdocs_scalars.py
Edit
_asarray.py
Edit
_asarray.pyi
Edit
_dtype.py
Edit
_dtype_ctypes.py
Edit
_exceptions.py
Edit
_internal.py
Edit
_internal.pyi
Edit
_machar.py
Edit
_methods.py
Edit
_multiarray_tests.cpython-311-x86_64-linux-gnu.so
Edit
_multiarray_umath.cpython-311-x86_64-linux-gnu.so
Edit
_operand_flag_tests.cpython-311-x86_64-linux-gnu.so
Edit
_rational_tests.cpython-311-x86_64-linux-gnu.so
Edit
_simd.cpython-311-x86_64-linux-gnu.so
Edit
_string_helpers.py
Edit
_struct_ufunc_tests.cpython-311-x86_64-linux-gnu.so
Edit
_type_aliases.py
Edit
_type_aliases.pyi
Edit
_ufunc_config.py
Edit
_ufunc_config.pyi
Edit
_umath_tests.cpython-311-x86_64-linux-gnu.so
Edit
arrayprint.py
Edit
arrayprint.pyi
Edit
cversions.py
Edit
defchararray.py
Edit
defchararray.pyi
Edit
einsumfunc.py
Edit
einsumfunc.pyi
Edit
fromnumeric.py
Edit
fromnumeric.pyi
Edit
function_base.py
Edit
function_base.pyi
Edit
generate_numpy_api.py
Edit
getlimits.py
Edit
getlimits.pyi
Edit
include
Edit
lib
Edit
memmap.py
Edit
memmap.pyi
Edit
multiarray.py
Edit
multiarray.pyi
Edit
numeric.py
Edit
numeric.pyi
Edit
numerictypes.py
Edit
numerictypes.pyi
Edit
overrides.py
Edit
records.py
Edit
records.pyi
Edit
setup.py
Edit
setup_common.py
Edit
shape_base.py
Edit
shape_base.pyi
Edit
tests
Edit
umath.py
Edit
umath_tests.py
Edit