This is an automated email from the ASF dual-hosted git repository. alsay pushed a commit to branch python_wrapper_improvement in repository https://gitbox.apache.org/repos/asf/datasketches-cpp.git
commit d1081cf45d99175901f2a69ffc17bc950c41830b Author: AlexanderSaydakov <[email protected]> AuthorDate: Fri Dec 23 12:11:40 2022 -0800 added iterator --- python/src/vo_wrapper.cpp | 2 +- python/tests/vo_test.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/python/src/vo_wrapper.cpp b/python/src/vo_wrapper.cpp index 32dfb6c..732810b 100644 --- a/python/src/vo_wrapper.cpp +++ b/python/src/vo_wrapper.cpp @@ -140,7 +140,7 @@ void bind_vo_sketch(py::module &m, const char* name) { .def("serialize", &dspy::vo_sketch_serialize<T>, py::arg("serde"), "Serialize the var opt sketch using the provided serde") .def_static("deserialize", &dspy::vo_sketch_deserialize<T>, py::arg("bytes"), py::arg("serde"), "Constructs a var opt sketch from the given bytes using the provided serde") - ; + .def("__iter__", [](const var_opt_sketch<T>& sk) { return py::make_iterator(sk.begin(), sk.end()); }); } template<typename T> diff --git a/python/tests/vo_test.py b/python/tests/vo_test.py index 7e71d35..4fbca41 100644 --- a/python/tests/vo_test.py +++ b/python/tests/vo_test.py @@ -45,6 +45,13 @@ class VoTest(unittest.TestCase): items = vo.get_samples() self.assertEqual(len(items), k) + count = 0 + for tuple in vo: + sample = tuple[0] + weight = tuple[1] + count = count + 1 + self.assertEqual(count, vo.num_samples) + # we can also apply a predicate to the sketch to get an estimate # (with optimally minimal variance) of the subset sum of items # matching that predicate among the entire population --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
