LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Static Public Member Functions | List of all members
ndarray::detail::PyConverterBase< T > Struct Template Reference

#include <PyConverter.h>

Inheritance diagram for ndarray::detail::PyConverterBase< T >:
ndarray::PyConverter< T >

Static Public Member Functions

static bool matches (PyObject *arg)
 Check if a Python object might be convertible to T. More...
 
static int fromPython (PyObject *arg, T *output)
 Convert a Python object to a C++ object. More...
 

Detailed Description

template<typename T>
struct ndarray::detail::PyConverterBase< T >

Definition at line 59 of file PyConverter.h.

Member Function Documentation

template<typename T>
static int ndarray::detail::PyConverterBase< T >::fromPython ( PyObject *  arg,
T *  output 
)
inlinestatic

Convert a Python object to a C++ object.

fromPython() is appropriate for use with the PyArg_ParseX Python C-API functions as a "O&" converter function.

Returns
true if the conversion was successful, and false otherwise (with a Python exception set).
See Also
PyConverter<T>::fromPythonStage1()
PyConverter<T>::fromPythonStage2()

Definition at line 98 of file PyConverter.h.

101  {
102  PyPtr p(arg,true);
103  if (!PyConverter<T>::fromPythonStage1(p)) return false;
104  return PyConverter<T>::fromPythonStage2(arg,*output);
105  }
static bool fromPythonStage2(PyPtr const &p, T &output)
Complete a Python to C++ conversion begun with fromPythonStage1().
boost::intrusive_ptr< PyObject > PyPtr
A reference-counting smart pointer for PyObject.
Definition: PyConverter.h:48
template<typename T>
static bool ndarray::detail::PyConverterBase< T >::matches ( PyObject *  arg)
inlinestatic

Check if a Python object might be convertible to T.

Returns
true if the conversion may be successful, and false if it definitely is not. Will not raise a Python exception.

This is mostly useful for wrapper generators like SWIG or Boost.Python, which could use matches() to check if an Python arguments match a particular signature for an overloaded C++ function.

See Also
PyConverter<T>::fromPythonStage1()

Definition at line 75 of file PyConverter.h.

77  {
78  PyPtr p(arg,true);
79  if (!PyConverter<T>::fromPythonStage1(p)) {
80  PyErr_Clear();
81  return false;
82  }
83  return true;
84  }
boost::intrusive_ptr< PyObject > PyPtr
A reference-counting smart pointer for PyObject.
Definition: PyConverter.h:48

The documentation for this struct was generated from the following file: