@@ -36,39 +36,54 @@ PYBIND11_MODULE(backend, m){
3636 .def_static (" getRegex" , &FilePattern::getRegex)
3737 .def_static (" inferPattern" , py::overload_cast<const std::string&, std::string&, const std::string&>(&FilePattern::inferPattern))
3838 .def_static (" inferPattern" , py::overload_cast<std::vector<std::string>&, std::string&>(&FilePattern::inferPattern))
39+ .def (" isGrouped" , [](FilePattern &v){
40+ auto & pattern_obj = v.getPatternObject ();
41+ return !(pattern_obj->group_ .size () == 0 || (pattern_obj->group_ .size () != 0 && pattern_obj->group_ [0 ] == " " ));
42+ })
3943 .def (" iterator" , [](FilePattern &v){
4044
4145 auto & pattern_obj = v.getPatternObject ();
4246
4347 if (pattern_obj != nullptr ) {
4448
45- if (pattern_obj->group_ .size () == 0 || (pattern_obj->group_ .size () != 0 && pattern_obj->group_ [0 ] == " " )){
49+ return py::make_iterator (pattern_obj->valid_files_ .begin (), pattern_obj->valid_files_ .end ());
50+
51+ }
52+
53+ }, py::keep_alive<0 , 1 >())
54+ .def (" iteratorExternal" , [](FilePattern &v){
4655
47- return py::make_iterator (pattern_obj->valid_files_ .begin (), pattern_obj->valid_files_ .end ());
48-
49- } else {
56+ auto & pattern_obj = v.getPatternObject ();
5057
51- return py::make_iterator (pattern_obj-> valid_grouped_files_ . begin (), pattern_obj-> valid_grouped_files_ . end ());
58+ if (pattern_obj != nullptr ) {
5259
53- }
60+ v.next ();
61+ return py::make_iterator (pattern_obj->current_block_ .begin (), pattern_obj->current_block_ .end ());
62+
5463 }
64+
5565 }, py::keep_alive<0 , 1 >())
56- .def (" iteratorExternal " , [](FilePattern &v){
66+ .def (" iteratorGrouped " , [](FilePattern &v){
5767
5868 auto & pattern_obj = v.getPatternObject ();
5969
6070 if (pattern_obj != nullptr ) {
71+
72+ return py::make_iterator (pattern_obj->valid_grouped_files_ .begin (), pattern_obj->valid_grouped_files_ .end ());
6173
62- if (pattern_obj-> group_ . size () == 0 || (pattern_obj-> group_ . size () != 0 && pattern_obj-> group_ [ 0 ] == " " )) {
74+ }
6375
64- v. next ();
65- return py::make_iterator (pattern_obj-> current_block_ . begin (), pattern_obj-> current_block_ . end ());
76+ }, py::keep_alive< 0 , 1 >())
77+ . def ( " iteratorGroupedExternal " , [](FilePattern &v){
6678
67- } else {
79+ auto & pattern_obj = v.getPatternObject ();
80+
81+ if (pattern_obj != nullptr ) {
6882
6983 v.nextGroup ();
7084 return py::make_iterator (pattern_obj->current_group_ .begin (), pattern_obj->current_group_ .end ());
71- }
85+
7286 }
87+
7388 }, py::keep_alive<0 , 1 >());
7489}
0 commit comments