/usr/lib64/python2.6/site-packages/numpy/core
NameSizeModeActions
include/-0755rm
lib/-0755rm
tests/-0755rm
arrayprint.py168120644editdlrm
arrayprint.pyc156010644editdlrm
arrayprint.pyo156010644editdlrm
defchararray.py699520644editdlrm
defchararray.pyc783260644editdlrm
defchararray.pyo783260644editdlrm
defmatrix.py280940644editdlrm
defmatrix.pyc309700644editdlrm
defmatrix.pyo309700644editdlrm
fromnumeric.py711350644editdlrm
fromnumeric.pyc750790644editdlrm
fromnumeric.pyo750790644editdlrm
function_base.py52010644editdlrm
function_base.pyc55690644editdlrm
function_base.pyo55690644editdlrm
generate_numpy_api.py64440644editdlrm
generate_numpy_api.pyc62020644editdlrm
generate_numpy_api.pyo61410644editdlrm
getlimits.py87900644editdlrm
getlimits.pyc100680644editdlrm
getlimits.pyo100680644editdlrm
info.py46350644editdlrm
info.pyc48060644editdlrm
info.pyo48060644editdlrm
machar.py106580644editdlrm
machar.pyc86940644editdlrm
machar.pyo86940644editdlrm
memmap.py93010644editdlrm
memmap.pyc95340644editdlrm
memmap.pyo95340644editdlrm
multiarray.so5848240755editdlrm
multiarray_tests.so130080755editdlrm
numeric.py682800644editdlrm
numeric.pyc720330644editdlrm
numeric.pyo720330644editdlrm
numerictypes.py250880644editdlrm
numerictypes.pyc241890644editdlrm
numerictypes.pyo241440644editdlrm
records.py268380644editdlrm
records.pyc244370644editdlrm
records.pyo244370644editdlrm
scalarmath.so1649280755editdlrm
scons_support.py83520644editdlrm
scons_support.pyc93420644editdlrm
scons_support.pyo93420644editdlrm
setup.py324500644editdlrm
setup.pyc232920644editdlrm
setup.pyo232920644editdlrm
setupscons.py45160644editdlrm
setupscons.pyc40870644editdlrm
setupscons.pyo40870644editdlrm
setup_common.py100690644editdlrm
setup_common.pyc83530644editdlrm
setup_common.pyo83530644editdlrm
shape_base.py62940644editdlrm
shape_base.pyc71230644editdlrm
shape_base.pyo71230644editdlrm
umath.so3259040755editdlrm
umath_tests.so121920755editdlrm
_dotblas.so207120755editdlrm
_internal.py103680644editdlrm
_internal.pyc108700644editdlrm
_internal.pyo108700644editdlrm
_mx_datetime_parser.py332520644editdlrm
_mx_datetime_parser.pyc290290644editdlrm
_mx_datetime_parser.pyo290290644editdlrm
_sort.so907360755editdlrm
__init__.py9830644editdlrm
__init__.pyc12610644editdlrm
__init__.pyo12610644editdlrm
Edit: /usr/lib64/python2.6/site-packages/numpy/core/generate_numpy_api.py (6444B)
import os import genapi from genapi import \ TypeApi, GlobalVarApi, FunctionApi, BoolValuesApi import numpy_api h_template = r""" #ifdef _MULTIARRAYMODULE typedef struct { PyObject_HEAD npy_bool obval; } PyBoolScalarObject; #ifdef NPY_ENABLE_SEPARATE_COMPILATION extern NPY_NO_EXPORT PyTypeObject PyArrayMapIter_Type; extern NPY_NO_EXPORT PyTypeObject PyArrayNeighborhoodIter_Type; extern NPY_NO_EXPORT PyBoolScalarObject _PyArrayScalar_BoolValues[2]; #else NPY_NO_EXPORT PyTypeObject PyArrayMapIter_Type; NPY_NO_EXPORT PyTypeObject PyArrayNeighborhoodIter_Type; NPY_NO_EXPORT PyBoolScalarObject _PyArrayScalar_BoolValues[2]; #endif %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"); PyObject *c_api = NULL; if (numpy == NULL) return -1; c_api = PyObject_GetAttrString(numpy, "_ARRAY_API"); if (c_api == NULL) {Py_DECREF(numpy); return -1;} if (PyCObject_Check(c_api)) { PyArray_API = (void **)PyCObject_AsVoidPtr(c_api); } Py_DECREF(c_api); Py_DECREF(numpy); if (PyArray_API == NULL) return -1; /* Perform runtime check of C API version */ if (NPY_VERSION != PyArray_GetNDArrayCVersion()) { PyErr_Format(PyExc_RuntimeError, "module compiled against "\ "ABI version %%x but this version of numpy is %%x", \ (int) NPY_VERSION, (int) PyArray_GetNDArrayCVersion()); return -1; } if (NPY_FEATURE_VERSION > PyArray_GetNDArrayCFeatureVersion()) { PyErr_Format(PyExc_RuntimeError, "module compiled against "\ "API version %%x but this version of numpy is %%x", \ (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_Format(PyExc_RuntimeError, "FATAL: module compiled as unknown endian"); return -1; } #if NPY_BYTE_ORDER ==NPY_BIG_ENDIAN if (st != NPY_CPU_BIG) { PyErr_Format(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_Format(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; } } #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 }; """ c_api_header = """ =========== Numpy C-API =========== """ 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) d_file = os.path.join(output_dir, '%s.txt' % basename) targets = (h_file, c_file, d_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] doc_file = targets[2] global_vars = sources[0] global_vars_types = sources[1] scalar_bool_values = sources[2] types_api = sources[3] multiarray_funcs = sources[4] # Remove global_vars_type: not a api dict multiarray_api = sources[:1] + sources[2:] 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) ordered_funcs_api = genapi.order_dict(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] multiarray_api_dict[f.name] = FunctionApi(f.name, index, f.return_type, f.args, api_name) for name, index in global_vars.items(): type = global_vars_types[name] multiarray_api_dict[name] = GlobalVarApi(name, index, type, api_name) for name, index in scalar_bool_values.items(): multiarray_api_dict[name] = BoolValuesApi(name, index, api_name) for name, index in types_api.items(): multiarray_api_dict[name] = TypeApi(name, index, 'PyTypeObject', api_name) assert len(multiarray_api_dict) == len(multiarray_api_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 fid = open(header_file, 'w') s = h_template % ('\n'.join(module_list), '\n'.join(extension_list)) fid.write(s) fid.close() # Write to c-code fid = open(c_file, 'w') s = c_template % ',\n'.join(init_list) fid.write(s) fid.close() # write to documentation fid = open(doc_file, 'w') fid.write(c_api_header) for func in numpyapi_list: fid.write(func.to_ReST()) fid.write('\n\n') fid.close() return targets