|
Michele De Stefano's C++ Utilities
|
Base class for all generic sequence types. More...
#include <mds_utils/python/sequence.hpp>
Public Member Functions | |
| Sequence_Base () | |
| Default constructor. More... | |
| Sequence_Base (size_t len) | |
| Creates a sequence of the desired length. More... | |
| Sequence_Base (PyObject *po) | |
| Constructs a new Sequence_Base from a Python sequence. More... | |
| Sequence_Base (Sequence_Base &&rhs) | |
| Move constructor. | |
| Sequence_Base (const Sequence_Base &rhs) | |
| The copy-constructor. | |
| Sequence_Base (ProxyAttr &&rhs) | |
| Move constructor from ProxyAttr object. More... | |
| Sequence_Base< Derived > & | operator= (Sequence_Base< Derived > &&rhs) |
| Move assignment. | |
| Sequence_Base< Derived > & | operator= (const Sequence_Base< Derived > &rhs) |
| The standard assignment. | |
| template<class seq_T > | |
| void | set (const seq_T &seq) |
| Sets a Python sequence from a Boost Fusion sequence. More... | |
| template<class FwIt > | |
| void | set (FwIt b, FwIt e) |
| Sets a Python sequence from a range of values. More... | |
| void | set (const Obj &o) |
| Sets a Python sequence from another Python sequence. More... | |
| void | del (long i) |
Deletes the item in position i. | |
| size_t | len () const |
| Returns the length of the sequence. | |
| ProxyElem | operator[] (long i) |
| Element access. More... | |
Public Member Functions inherited from mds_utils::python::Obj | |
| Obj () | |
| Default constructor. | |
| Obj (const Obj &rhs) | |
| The copy-constructor. More... | |
| Obj (Obj &&rhs) | |
| Move constructor. More... | |
| Obj (ProxyAttr &&rhs) | |
| Move constructor from ProxyAttr objects. More... | |
| Obj (PyObject *po) | |
| Construct from a Python object. More... | |
| Obj & | operator= (const Obj &rhs) |
| Standard assignment. | |
| Obj & | operator= (Obj &&rhs) |
| Move assignment. | |
| virtual Obj & | operator= (PyObject *po) |
| Assignment from a Python object. More... | |
| template<class T > | |
| Obj & | operator= (const T &val) |
| Assignment from a value. More... | |
| virtual | ~Obj () |
| Destructor. | |
| PyObject * | getPyObject () const |
| Returns the underlying PyObject. More... | |
| operator PyObject * () const | |
| Automatic type conversion towards a Python object. More... | |
| virtual PyObject * | transfer () |
| Returns the Python object with transferred ownership. More... | |
| virtual void | incref () |
| Increments the reference count using Py_XINCREF. More... | |
| virtual void | decref () |
| Decrements the reference count using Py_XDECREF. | |
| void | reset () |
| Resets the object to the state given by the default constructor. | |
| void | get_ownership () |
| Used in place of incref, when the wrapped PyObject* was increfed already. | |
| bool | has_attr (const std::string &name) const |
| Tests if the object has a particular attribute. | |
| ProxyAttr | attr (const std::string &name) |
| Retrieves an attribute. More... | |
| bool | is_callable () const |
| Checks if the object is callable. More... | |
| Obj | operator() () |
| Calling operator. More... | |
| Obj | operator() (const Obj &args) |
| Calling operator, with positional arguments. More... | |
| Obj | operator() (const Obj &args, const Obj &kw) |
| Calling operator, with positional and keyword arguments. More... | |
Protected Member Functions | |
| size_t | idx (long i) const |
| Converts a Python index (that can also be negative) into a C index. More... | |
Protected Member Functions inherited from mds_utils::python::Obj | |
| void | check_callable () |
| Checks if the object is callable. More... | |
| void | check_call_result (PyObject *result) |
| Checks if the result of the object call was successful. More... | |
Protected Attributes | |
| size_t | m_len |
| The length of the sequence. | |
Protected Attributes inherited from mds_utils::python::Obj | |
| size_t | decref_on_destroy |
| PyObject * | m_po |
| Underlying pointer to the wrapped Python object. | |
Friends | |
| class | from_fusion_seq |
Base class for all generic sequence types.
| Derived | The type of the derived class. It must provide the following member functions: - <tt>static bool self_type_check(PyObject *o)</tt>: returns \b true if the Python object o has the same Python type as that of the Python object contained by the derived class. Returns \b false otherwise. - <tt>static PyObject* new_seq(size_t len)</tt>: provides a new sequence, given its length <tt>len</tt>. It must return a new reference or NULL on error. - <tt>template<class T> bool set_item(size_t pos,T const& x)</tt>: Inserts the object \p x into the position <tt>pos</tt>. Returns \b true on success and \b false on error. The proper "to_python" converter must be defined. |
Definition at line 94 of file sequence.hpp.
|
inline |
|
inline |
Creates a sequence of the desired length.
| len | The length of the sequence. |
Definition at line 212 of file sequence.hpp.
|
inline |
Constructs a new Sequence_Base from a Python sequence.
It throws an exception if the parameter is not a sequence of the same type as the derived class.
| po | Pointer to a Pyton sequence object. |
Definition at line 230 of file sequence.hpp.
|
inline |
Move constructor from ProxyAttr object.
It increfs the current object.
Definition at line 258 of file sequence.hpp.
|
inlineprotected |
Converts a Python index (that can also be negative) into a C index.
| i | Index in Python style (i.e. it can be negative). |
Definition at line 180 of file sequence.hpp.
Referenced by mds_utils::python::Sequence_Base< List >::del(), and mds_utils::python::Sequence_Base< List >::operator[]().
|
inline |
Element access.
| i | The index of the element. It can be negative, with the same meaning it has in Python code. |
Definition at line 446 of file sequence.hpp.
|
inline |
Sets a Python sequence from a Boost Fusion sequence.
| seq_T | Any Boost Fusion sequence type. |
| seq | A Boost Fusion sequence. |
Derived class must provide the static member function\ \ static PyObject* new_seq(size_t len)\ \ where len is the length of the new sequence, which will be returned.Definition at line 296 of file sequence.hpp.
Referenced by mds_utils::python::ublas::to_python().
|
inline |
Sets a Python sequence from a range of values.
| FwIt | Models the Forward Iterator Concept. |
| b | Start iterator of the sequence. |
| e | Past-the-end iterator of the sequence. |
Derived class must provide the static member function\ \ static PyObject* new_seq(size_t len)\ \ where len is the length of the new sequence, which will be returned.Definition at line 330 of file sequence.hpp.
|
inline |
Sets a Python sequence from another Python sequence.
| o | Another Python sequence. |
Derived class must provide the static member function\ \ static PyObject* new_seq(size_t len)\ \ where len is the length of the new sequence, which will be returned.Definition at line 375 of file sequence.hpp.