Current File : //proc/self/root/proc/self/root/lib64/python2.7/site-packages/numpy/core/generate_numpy_api.pyc
�
E�`Qc@sqddlZddlZddlmZmZmZmZddlZdZdZdZ	e
d�Zd�ZdS(i����N(tTypeApitGlobalVarApitFunctionApit
BoolValuesApis�
#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) {
      PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import");
      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 PY_VERSION_HEX >= 0x03000000
  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);
#else
  if (!PyCObject_Check(c_api)) {
      PyErr_SetString(PyExc_RuntimeError, "_ARRAY_API is not PyCObject object");
      Py_DECREF(c_api);
      return -1;
  }
  PyArray_API = (void **)PyCObject_AsVoidPtr(c_api);
#endif
  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 %%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;
}

#if PY_VERSION_HEX >= 0x03000000
#define NUMPY_IMPORT_ARRAY_RETVAL NULL
#else
#define NUMPY_IMPORT_ARRAY_RETVAL
#endif

#define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NUMPY_IMPORT_ARRAY_RETVAL; } }

#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
s{
/* These pointers will be stored in the C-object for use in other
    extension modules
*/

void *PyArray_API[] = {
%s
};
s%
===========
Numpy C-API
===========
cCs�d}tjj|d|�}tjj|d|�}tjj|d|�}|||f}tj}|r�tj|tjtg�r�|St||�|S(Ntmultiarray_apis__%s.hs__%s.cs%s.txt(	tostpathtjoint	numpy_apiRtgenapitshould_rebuildt__file__tdo_generate_api(t
output_dirtforcetbasenameth_filetc_filetd_filettargetstsources((sC/usr/lib64/python2.7/site-packages/numpy/core/generate_numpy_api.pytgenerate_api�s	#
cCs1|d}|d}|d}|d}|d}|d}|d}|d}	|d |d}
g}g}g}
tj|
�}tj|�tjd|	�}tj|	�}d}i}xI|D]A}|j}|	|}t|j||j|j|�||j<q�Wx=|j	�D]/\}}||}t
||||�||<qWx0|j	�D]"\}}t|||�||<qVWx3|j	�D]%\}}t||d|�||<q�Wt
|�t
|�kr�td	t
|�t
|�f�ng}x`tj|�D]O\}}||}|j|j��|
j|j��|j|j��qWt|d
�}tdj|�dj|�f}|j|�|j�t|d
�}tdj|
�}|j|�|j�t|d
�}|jt�x.|D]&}|j|j��|jd
�q�W|j�|S(Niiiiit	NUMPY_APItPyArray_APItPyTypeObjects"Multiarray API size mismatch %d %dtws
s,
s

(R	tmerge_api_dictstcheck_api_dicttget_api_functionst
order_dicttnameRtreturn_typetargstitemsRRRtlentAssertionErrortappendtdefine_from_array_api_stringtarray_api_definetinternal_definetopent
h_templateRtwritetcloset
c_templatetc_api_headertto_ReST(RRtheader_fileRtdoc_filetglobal_varstglobal_vars_typestscalar_bool_valuest	types_apitmultiarray_funcsRtmodule_listtextension_listt	init_listtmultiarray_api_indext
numpyapi_listtordered_funcs_apitapi_nametmultiarray_api_dicttfRtindexttypetapi_itemtfidtstfunc((sC/usr/lib64/python2.7/site-packages/numpy/core/generate_numpy_api.pyR�sn








		
	


"






(
RR	RRRRRR)R,R-tFalseRR(((sC/usr/lib64/python2.7/site-packages/numpy/core/generate_numpy_api.pyt<module>s"�