24 #ifndef PXR_USD_SDF_PY_CHILDREN_VIEW_H
25 #define PXR_USD_SDF_PY_CHILDREN_VIEW_H
34 #include <hboost/python.hpp>
38 template <
class _View>
51 TfPyWrapOnce<View>(&This::_Wrap);
58 return hboost::python::make_tuple(x.key(i), *i);
69 struct _ExtractValue {
88 _Iterator<E> GetCopy()
const
112 using namespace hboost::python;
121 class_<View>(
name.c_str(), no_init)
122 .def(
"__repr__", &This::_GetRepr)
124 .def(
"__getitem__", &This::_GetItemByKey)
125 .def(
"__getitem__", &This::_GetItemByIndex)
126 .def(
"get", &This::_PyGet)
127 .def(
"__contains__", &This::_HasKey)
128 .def(
"__contains__", &This::_HasValue)
129 .def(
"__iter__", &This::_GetValueIterator)
130 #if PY_MAJOR_VERSION < 3
131 .def(
"has_key", &This::_HasKey)
132 .def(
"itervalues", &This::_GetValueIterator)
133 .def(
"iterkeys", &This::_GetKeyIterator)
134 .def(
"iteritems", &This::_GetItemIterator)
135 .def(
"items", &This::_GetItems)
136 .def(
"keys", &This::_GetKeys)
137 .def(
"values", &This::_GetValues)
139 .def(
"items", &This::_GetItemIterator)
140 .def(
"keys", &This::_GetKeyIterator)
141 .def(
"values", &This::_GetValueIterator)
143 .def(
"index", &This::_FindIndexByKey)
144 .def(
"index", &This::_FindIndexByValue)
149 class_<_Iterator<_ExtractItem> >
150 ((
name +
"_Iterator").c_str(), no_init)
151 .def(
"__iter__", &This::template _Iterator<_ExtractItem>::GetCopy)
155 class_<_Iterator<_ExtractKey> >
156 ((
name +
"_KeyIterator").c_str(), no_init)
157 .def(
"__iter__", &This::template _Iterator<_ExtractKey>::GetCopy)
161 class_<_Iterator<_ExtractValue> >
162 ((
name +
"_ValueIterator").c_str(), no_init)
163 .def(
"__iter__", &This::template _Iterator<_ExtractValue>::GetCopy)
171 ArchGetDemangled<ChildPolicy>() +
"_" +
172 ArchGetDemangled<Predicate>();
209 if (index >= x.size()) {
219 hboost::python::
object(*i);
224 return x.find(key) != x.end();
229 return x.find(value) != x.end();
235 return _Iterator<_ExtractItem>(
x);
241 return _Iterator<_ExtractKey>(
x);
247 return _Iterator<_ExtractValue>(
x);
251 static hboost::python::list _Get(
const View& x)
253 hboost::python::list
result;
255 result.append(E::Get(x, i));
260 #if PY_MAJOR_VERSION < 3
261 static hboost::python::list _GetItems(
const View& x)
263 return _Get<_ExtractItem>(
x);
266 static hboost::python::list _GetKeys(
const View& x)
268 return _Get<_ExtractKey>(
x);
271 static hboost::python::list _GetValues(
const View& x)
273 return _Get<_ExtractValue>(
x);
277 static int _FindIndexByKey(
const View& x,
const key_type& key)
280 return i == x.size() ? -1 : i;
283 static int _FindIndexByValue(
const View& x,
const value_type& value)
286 return i == x.size() ? -1 : i;
292 #endif // PXR_USD_SDF_PY_CHILDREN_VIEW_H
View::ChildPolicy ChildPolicy
View::const_iterator const_iterator
GLuint const GLchar * name
TF_API void TfPyThrowIndexError(std::string const &msg)
View::value_type value_type
std::string TfPyRepr(T const &t)
View::Predicate Predicate
#define TfPyIteratorNextMethodName
GLsizei GLsizei GLfloat distance
SdfPyWrapChildrenView< View > This
bool extract(const vbool4 &a)
GLsizei const GLchar *const * string
TF_API void TfPyThrowStopIteration(std::string const &msg)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
GLsizei const GLfloat * value
TF_API std::string TfStringReplace(const std::string &source, const std::string &from, const std::string &to)