#include "pywrappers_common.h" #include #include #include #include #include #include #include #include #include #include #include #include #include namespace py = pybind11; // std::ostream& operator<<(std::ostream& os, const DBEvent& e) //{ // os << std::endl; // return os; //} PYBIND11_MODULE(pysciqlopcatalogs, m) { py::class_(m, "Product") .def_readwrite("name", &CatalogueController::Product_t::name) .def_readwrite("start_time", &CatalogueController::Product_t::startTime) .def_readwrite("stop_time", &CatalogueController::Product_t::stopTime); py::class_( m, "Event") .def_readwrite("name", &CatalogueController::Event_t::name) .def_readwrite("tags", &CatalogueController::Event_t::tags) .def_readwrite("products", &CatalogueController::Event_t::products) .def_readonly("uuid", &CatalogueController::Event_t::uuid) .def_property_readonly("start_time", &CatalogueController::Event_t::startTime) .def_property_readonly("stop_time", &CatalogueController::Event_t::stopTime) .def(py::self == py::self) .def(py::self != py::self); py::class_(m, "Catalogue") .def_readwrite("name", &CatalogueController::Catalogue_t::name) .def_readonly("uuid", &CatalogueController::Catalogue_t::uuid) .def_property_readonly("start_time", &CatalogueController::Catalogue_t::startTime) .def_property_readonly("stop_time", &CatalogueController::Catalogue_t::stopTime) .def("add", &CatalogueController::Catalogue_t::add) .def("remove", py::overload_cast( &CatalogueController::Catalogue_t::remove)) .def("remove", py::overload_cast( &CatalogueController::Catalogue_t::remove)) .def("event", [](const CatalogueController::Catalogue_t& catalogue, const CatalogueController::uuid_t& uuid) { return catalogue.event(uuid); }) .def("__contains__", &CatalogueController::Catalogue_t::contains); py::class_(m, "CatalogueController") .def("load_repository", &CatalogueController::loadRepository) .def("save_repository", &CatalogueController::saveRepository) .def("events", py::overload_cast<>(&CatalogueController::events)) .def("events", py::overload_cast(&CatalogueController::events)) .def("events", py::overload_cast( &CatalogueController::events)) .def("catalogues", py::overload_cast<>(&CatalogueController::catalogues)) .def("catalogues", py::overload_cast(&CatalogueController::catalogues)) .def("has_unsaved_changes", &CatalogueController::hasUnsavedChanges) .def("repository", py::overload_cast( &CatalogueController::repository)) .def("repository", py::overload_cast( &CatalogueController::repository)) .def("save", py::overload_cast( &CatalogueController::save)) .def("save", py::overload_cast( &CatalogueController::save)) .def("save", py::overload_cast(&CatalogueController::save)) .def("add", py::overload_cast(&CatalogueController::add)) .def("add", py::overload_cast( &CatalogueController::add)) .def("add", py::overload_cast( &CatalogueController::add)) .def("add", py::overload_cast( &CatalogueController::add)) .def("add", [](CatalogueController& ctrlr, CatalogueController::Event_ptr event) { return ctrlr.add(event); }); }