38 #include <type_traits> 
   43 #if PY_MAJOR_VERSION == 2 
   67 #if PY_MAJOR_VERSION == 2 
   69             py::handle<>(PyCObject_FromVoidPtr(
 
   73             py::handle<>(PyCapsule_New(
 
   75                              (PyCapsule_Destructor)&CapsuleDestructor<T>)));
 
   77         PyObject *tmp = py::incref(
 
   79                 arr.data(), np::dtype::get_builtin<T>(),
 
   80                 py::make_tuple(arr.num_elements()), py::make_tuple(
sizeof(T)),
 
   92         py::converter::registry::push_back(
 
   99             py::object obj((py::handle<>(py::borrowed(objPtr))));
 
  100             np::ndarray array = py::extract<np::ndarray>(obj);
 
  103             np::dtype dtype = np::dtype::get_builtin<
 
  104                 typename boost::remove_const<T>::type>();
 
  105             if (dtype != array.get_dtype())
 
  111             if (array.get_nd() != 1)
 
  116         catch (boost::python::error_already_set&)
 
  118             py::handle_exception();
 
  128         if (!Py_IsInitialized())
 
  137         py::decref((PyObject *)objPtr);
 
  142         py::converter::rvalue_from_python_stage1_data* data)
 
  146         py::object obj((py::handle<>(py::borrowed(objPtr))));
 
  147         np::ndarray array = py::extract<np::ndarray>(obj);
 
  152         py::object base = array.get_base();
 
  155 #if PY_MAJOR_VERSION == 2 
  156         if (PyCObject_Check(base.ptr()))
 
  159                 PyCObject_AsVoidPtr(base.ptr()));
 
  162         if (PyCapsule_CheckExact(base.ptr()))
 
  165                 PyCapsule_GetPointer(base.ptr(), 0));
 
  170             (py::converter::rvalue_from_python_storage<Array<OneD, T> >*)
 
  171             data)->storage.bytes;
 
  172         data->convertible = storage;
 
  191             ptr->ToPythonArray((
void *)objPtr, &decrement);
 
  193             array.set_base(py::object());
 
  198             using nonconst_t = 
typename std::remove_const<T>::type;
 
  200                 array.shape(0), (nonconst_t *)array.get_data(),
 
  201                 (
void *)objPtr, &decrement);
 
template void export_SharedArray< double >()
 
void CapsuleDestructor(PyObject *ptr)
 
void export_SharedArray()
 
static PyObject * convert(Array< OneD, T > const &arr)
 
static void * convertible(PyObject *objPtr)
 
static void construct(PyObject *objPtr, py::converter::rvalue_from_python_stage1_data *data)
 
static void decrement(void *objPtr)