X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/core
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
numpy
/
core
/
??
..
??
__init__.py
(5.64 KB)
??
__init__.pyi
(126 B)
??
__pycache__
??
_add_newdocs.py
(204.07 KB)
??
_add_newdocs_scalars.py
(11.82 KB)
??
_asarray.py
(3.79 KB)
??
_asarray.pyi
(1.06 KB)
??
_dtype.py
(10.36 KB)
??
_dtype_ctypes.py
(3.59 KB)
??
_exceptions.py
(5.25 KB)
??
_internal.py
(27.68 KB)
??
_internal.pyi
(1.01 KB)
??
_machar.py
(11.29 KB)
??
_methods.py
(8.41 KB)
??
_multiarray_tests.cpython-311-x86_64-linux-gnu.so
(171.4 KB)
??
_multiarray_umath.cpython-311-x86_64-linux-gnu.so
(6.64 MB)
??
_operand_flag_tests.cpython-311-x86_64-linux-gnu.so
(16.55 KB)
??
_rational_tests.cpython-311-x86_64-linux-gnu.so
(58.29 KB)
??
_simd.cpython-311-x86_64-linux-gnu.so
(2.47 MB)
??
_string_helpers.py
(2.79 KB)
??
_struct_ufunc_tests.cpython-311-x86_64-linux-gnu.so
(16.65 KB)
??
_type_aliases.py
(7.36 KB)
??
_type_aliases.pyi
(404 B)
??
_ufunc_config.py
(13.62 KB)
??
_ufunc_config.pyi
(1.04 KB)
??
_umath_tests.cpython-311-x86_64-linux-gnu.so
(41.01 KB)
??
arrayprint.py
(62.12 KB)
??
arrayprint.pyi
(4.32 KB)
??
cversions.py
(347 B)
??
defchararray.py
(71.89 KB)
??
defchararray.pyi
(9 KB)
??
einsumfunc.py
(50.65 KB)
??
einsumfunc.pyi
(4.75 KB)
??
fromnumeric.py
(125.8 KB)
??
fromnumeric.pyi
(22.96 KB)
??
function_base.py
(19.37 KB)
??
function_base.pyi
(4.61 KB)
??
generate_numpy_api.py
(7.47 KB)
??
getlimits.py
(25.26 KB)
??
getlimits.pyi
(82 B)
??
include
??
lib
??
memmap.py
(11.5 KB)
??
memmap.pyi
(55 B)
??
multiarray.py
(54.78 KB)
??
multiarray.pyi
(24.19 KB)
??
numeric.py
(75.21 KB)
??
numeric.pyi
(13.9 KB)
??
numerictypes.py
(17.67 KB)
??
numerictypes.pyi
(3.19 KB)
??
overrides.py
(6.93 KB)
??
records.py
(36.65 KB)
??
records.pyi
(5.56 KB)
??
setup.py
(47.05 KB)
??
setup_common.py
(16.68 KB)
??
shape_base.py
(29.05 KB)
??
shape_base.pyi
(2.71 KB)
??
tests
??
umath.py
(1.99 KB)
??
umath_tests.py
(389 B)
Editing: generate_numpy_api.py
#!/usr/bin/env python3 import os import argparse import genapi from genapi import \ TypeApi, GlobalVarApi, FunctionApi, BoolValuesApi import numpy_api # use annotated api when running under cpychecker h_template = r""" #if defined(_MULTIARRAYMODULE) || defined(WITH_CPYCHECKER_STEALS_REFERENCE_TO_ARG_ATTRIBUTE) typedef struct { PyObject_HEAD npy_bool obval; } PyBoolScalarObject; extern NPY_NO_EXPORT PyTypeObject PyArrayMapIter_Type; extern NPY_NO_EXPORT PyTypeObject PyArrayNeighborhoodIter_Type; extern NPY_NO_EXPORT PyBoolScalarObject _PyArrayScalar_BoolValues[2]; %s #else #if defined(PY_ARRAY_UNIQUE_SYMBOL) #define PyArray_API PY_ARRAY_UNIQUE_SYMBOL #endif #if defined(NO_IMPORT) || defined(NO_IMPORT_ARRAY) extern void **PyArray_API; #else #if defined(PY_ARRAY_UNIQUE_SYMBOL) void **PyArray_API; #else static void **PyArray_API=NULL; #endif #endif %s #if !defined(NO_IMPORT_ARRAY) && !defined(NO_IMPORT) static int _import_array(void) { int st; PyObject *numpy = PyImport_ImportModule("numpy.core._multiarray_umath"); PyObject *c_api = NULL; if (numpy == NULL) { return -1; } c_api = PyObject_GetAttrString(numpy, "_ARRAY_API"); Py_DECREF(numpy); if (c_api == NULL) { PyErr_SetString(PyExc_AttributeError, "_ARRAY_API not found"); return -1; } if (!PyCapsule_CheckExact(c_api)) { PyErr_SetString(PyExc_RuntimeError, "_ARRAY_API is not PyCapsule object"); Py_DECREF(c_api); return -1; } PyArray_API = (void **)PyCapsule_GetPointer(c_api, NULL); Py_DECREF(c_api); if (PyArray_API == NULL) { PyErr_SetString(PyExc_RuntimeError, "_ARRAY_API is NULL pointer"); return -1; } /* Perform runtime check of C API version */ if (NPY_VERSION != PyArray_GetNDArrayCVersion()) { PyErr_Format(PyExc_RuntimeError, "module compiled against "\ "ABI version 0x%%x but this version of numpy is 0x%%x", \ (int) NPY_VERSION, (int) PyArray_GetNDArrayCVersion()); return -1; } if (NPY_FEATURE_VERSION > PyArray_GetNDArrayCFeatureVersion()) { PyErr_Format(PyExc_RuntimeError, "module compiled against "\ "API version 0x%%x but this version of numpy is 0x%%x . "\ "Check the section C-API incompatibility at the "\ "Troubleshooting ImportError section at "\ "https://numpy.org/devdocs/user/troubleshooting-importerror.html"\ "#c-api-incompatibility "\ "for indications on how to solve this problem .", \ (int) NPY_FEATURE_VERSION, (int) PyArray_GetNDArrayCFeatureVersion()); return -1; } /* * Perform runtime check of endianness and check it matches the one set by * the headers (npy_endian.h) as a safeguard */ st = PyArray_GetEndianness(); if (st == NPY_CPU_UNKNOWN_ENDIAN) { PyErr_SetString(PyExc_RuntimeError, "FATAL: module compiled as unknown endian"); return -1; } #if NPY_BYTE_ORDER == NPY_BIG_ENDIAN if (st != NPY_CPU_BIG) { PyErr_SetString(PyExc_RuntimeError, "FATAL: module compiled as big endian, but " "detected different endianness at runtime"); return -1; } #elif NPY_BYTE_ORDER == NPY_LITTLE_ENDIAN if (st != NPY_CPU_LITTLE) { PyErr_SetString(PyExc_RuntimeError, "FATAL: module compiled as little endian, but " "detected different endianness at runtime"); return -1; } #endif return 0; } #define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NULL; } } #define import_array1(ret) {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return ret; } } #define import_array2(msg, ret) {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, msg); return ret; } } #endif #endif """ c_template = r""" /* These pointers will be stored in the C-object for use in other extension modules */ void *PyArray_API[] = { %s }; """ def generate_api(output_dir, force=False): basename = 'multiarray_api' h_file = os.path.join(output_dir, '__%s.h' % basename) c_file = os.path.join(output_dir, '__%s.c' % basename) targets = (h_file, c_file) sources = numpy_api.multiarray_api if (not force and not genapi.should_rebuild(targets, [numpy_api.__file__, __file__])): return targets else: do_generate_api(targets, sources) return targets def do_generate_api(targets, sources): header_file = targets[0] c_file = targets[1] global_vars = sources[0] scalar_bool_values = sources[1] types_api = sources[2] multiarray_funcs = sources[3] multiarray_api = sources[:] module_list = [] extension_list = [] init_list = [] # Check multiarray api indexes multiarray_api_index = genapi.merge_api_dicts(multiarray_api) genapi.check_api_dict(multiarray_api_index) numpyapi_list = genapi.get_api_functions('NUMPY_API', multiarray_funcs) # Create dict name -> *Api instance api_name = 'PyArray_API' multiarray_api_dict = {} for f in numpyapi_list: name = f.name index = multiarray_funcs[name][0] annotations = multiarray_funcs[name][1:] multiarray_api_dict[f.name] = FunctionApi(f.name, index, annotations, f.return_type, f.args, api_name) for name, val in global_vars.items(): index, type = val multiarray_api_dict[name] = GlobalVarApi(name, index, type, api_name) for name, val in scalar_bool_values.items(): index = val[0] multiarray_api_dict[name] = BoolValuesApi(name, index, api_name) for name, val in types_api.items(): index = val[0] internal_type = None if len(val) == 1 else val[1] multiarray_api_dict[name] = TypeApi( name, index, 'PyTypeObject', api_name, internal_type) if len(multiarray_api_dict) != len(multiarray_api_index): keys_dict = set(multiarray_api_dict.keys()) keys_index = set(multiarray_api_index.keys()) raise AssertionError( "Multiarray API size mismatch - " "index has extra keys {}, dict has extra keys {}" .format(keys_index - keys_dict, keys_dict - keys_index) ) extension_list = [] for name, index in genapi.order_dict(multiarray_api_index): api_item = multiarray_api_dict[name] extension_list.append(api_item.define_from_array_api_string()) init_list.append(api_item.array_api_define()) module_list.append(api_item.internal_define()) # Write to header s = h_template % ('\n'.join(module_list), '\n'.join(extension_list)) genapi.write_file(header_file, s) # Write to c-code s = c_template % ',\n'.join(init_list) genapi.write_file(c_file, s) return targets def main(): parser = argparse.ArgumentParser() parser.add_argument( "-o", "--outdir", type=str, help="Path to the output directory" ) parser.add_argument( "-i", "--ignore", type=str, help="An ignored input - may be useful to add a " "dependency between custom targets" ) args = parser.parse_args() outdir_abs = os.path.join(os.getcwd(), args.outdir) generate_api(outdir_abs) if __name__ == "__main__": main()
Upload File
Create Folder