#include "indexing_suite_detail.hpp"
|
static object | base_get_slice (Container &container, PySliceObject *slice) |
|
static void | base_get_slice_data (Container &container, PySliceObject *slice, Index &from_, Index &to_) |
|
static void | base_set_slice (Container &container, PySliceObject *slice, PyObject *v) |
|
static void | base_delete_slice (Container &container, PySliceObject *slice) |
|
template<class Container, class DerivedPolicies, class ProxyHandler, class Data, class Index>
struct boost::python::detail::slice_helper< Container, DerivedPolicies, ProxyHandler, Data, Index >
Definition at line 577 of file indexing_suite_detail.hpp.
template<class Container , class DerivedPolicies , class ProxyHandler , class Data , class Index >
Definition at line 692 of file indexing_suite_detail.hpp.
696 ProxyHandler::base_erase_indexes(container, from, to);
697 DerivedPolicies::delete_slice(container, from, to);
static void base_get_slice_data(Container &container, PySliceObject *slice, Index &from_, Index &to_)
template<class Container , class DerivedPolicies , class ProxyHandler , class Data , class Index >
Definition at line 580 of file indexing_suite_detail.hpp.
584 return DerivedPolicies::get_slice(container, from, to);
static void base_get_slice_data(Container &container, PySliceObject *slice, Index &from_, Index &to_)
template<class Container , class DerivedPolicies , class ProxyHandler , class Data , class Index >
static void boost::python::detail::slice_helper< Container, DerivedPolicies, ProxyHandler, Data, Index >::base_get_slice_data |
( |
Container & |
container, |
|
|
PySliceObject * |
slice, |
|
|
Index & |
from_, |
|
|
Index & |
to_ |
|
) |
| |
|
inlinestatic |
Definition at line 588 of file indexing_suite_detail.hpp.
591 if (Py_None != slice->step) {
592 PyErr_SetString( PyExc_IndexError,
"slice step size not supported.");
593 throw_error_already_set();
596 Index min_index = DerivedPolicies::get_min_index(container);
597 Index max_index = DerivedPolicies::get_max_index(container);
599 if (Py_None == slice->start) {
603 long from = extract<long>( slice->start);
608 from_ = boost::numeric_cast<Index>(from);
609 if (from_ > max_index)
613 if (Py_None == slice->stop) {
617 long to = extract<long>( slice->stop);
622 to_ = boost::numeric_cast<Index>(to);
template<class Container , class DerivedPolicies , class ProxyHandler , class Data , class Index >
static void boost::python::detail::slice_helper< Container, DerivedPolicies, ProxyHandler, Data, Index >::base_set_slice |
( |
Container & |
container, |
|
|
PySliceObject * |
slice, |
|
|
PyObject * |
v |
|
) |
| |
|
inlinestatic |
Definition at line 629 of file indexing_suite_detail.hpp.
References x.
634 extract<Data&> elem(v);
638 ProxyHandler::base_replace_indexes(container, from, to, 1);
639 DerivedPolicies::set_slice(container, from, to, elem());
644 extract<Data> elem(v);
647 ProxyHandler::base_replace_indexes(container, from, to, 1);
648 DerivedPolicies::set_slice(container, from, to, elem());
653 handle<> l_(python::borrowed(v));
656 std::vector<Data> temp;
657 for (
int i = 0; i < l.attr(
"__len__")(); i++)
660 extract<Data const&>
x(elem);
669 extract<Data>
x(elem);
676 PyErr_SetString(PyExc_TypeError,
677 "Invalid sequence element");
678 throw_error_already_set();
683 ProxyHandler::base_replace_indexes(container, from, to,
684 temp.end()-temp.begin());
685 DerivedPolicies::set_slice(container, from, to,
686 temp.begin(), temp.end());
static void base_get_slice_data(Container &container, PySliceObject *slice, Index &from_, Index &to_)
The documentation for this struct was generated from the following file: