From b34215496ecdbb10a40305fb9f7bccd8f7e81383 Mon Sep 17 00:00:00 2001 From: Michael Buehlmann <buehlmann.michi@gmail.com> Date: Mon, 15 May 2023 16:15:43 -0500 Subject: [PATCH] add hasVariable function to GenericIO --- GenericIO.cxx | 11 +++++++++++ GenericIO.h | 2 ++ python/genericio.cpp | 1 + 3 files changed, 14 insertions(+) diff --git a/GenericIO.cxx b/GenericIO.cxx index ac00f34..091a9be 100644 --- a/GenericIO.cxx +++ b/GenericIO.cxx @@ -1863,6 +1863,17 @@ void GenericIO::getVariableInfo(vector<VariableInfo> &VI) { } } +bool GenericIO::hasVariable(const std::string &Name) { + vector<VariableInfo> VI; + getVariableInfo(VI); + + for (size_t i = 0; i < VI.size(); ++i) + if (VI[i].Name == Name) + return true; + + return false; +} + void GenericIO::setNaturalDefaultPartition() { #ifdef __bgq__ DefaultPartition = MPIX_IO_link_id(); diff --git a/GenericIO.h b/GenericIO.h index 02bf685..2b3df11 100644 --- a/GenericIO.h +++ b/GenericIO.h @@ -434,6 +434,8 @@ public: void getVariableInfo(std::vector<VariableInfo> &VI); + bool hasVariable(const std::string &Name); + std::size_t readNumElems(int EffRank = -1); void readCoords(int Coords[3], int EffRank = -1); int readGlobalRankNumber(int EffRank = -1); diff --git a/python/genericio.cpp b/python/genericio.cpp index a29d478..1ee9b54 100644 --- a/python/genericio.cpp +++ b/python/genericio.cpp @@ -377,6 +377,7 @@ PYBIND11_MODULE(pygio, m) { py::arg("eff_rank")=-1) .def("read_nranks", (int (PyGenericIO::*)(void))(&PyGenericIO::readNRanks)) .def("read_variable_names", &PyGenericIO::read_variable_names) + .def("has_variable", &PyGenericIO::hasVariable) .def("read_variable_dtypes", &PyGenericIO::read_variable_dtypes) .def("get_source_ranks", &PyGenericIO::getSourceRanks) .def_static("setDefaultShouldCompress", &PyGenericIO::setDefaultShouldCompress) -- GitLab