#include #include #include #include #include #include #include #include #include #include #include "export.hpp" namespace { Deck create_deck( const std::string& deckStr, const ParseContext& pc, const Parser& parser) { Opm::ErrorGuard guard; auto p = parser.parseFile( deckStr, pc, guard ); guard.clear(); return p; } Deck create_deck_string( const std::string& deckStr, const ParseContext& pc, const Parser& parser) { Opm::ErrorGuard guard; auto p = parser.parseString( deckStr, pc, guard ); guard.clear(); return p; } void add_keyword(Parser* parser, const std::string& json_string) { const Json::JsonObject keyword(json_string); parser->addParserKeyword(keyword); } } void python::common::export_Parser(py::module& module) { module.def( "create_deck", &create_deck ); module.def( "create_deck_string", &create_deck_string); py::class_(module, "ParserKeyword") .def_property_readonly("name", &ParserKeyword::getName); py::enum_(module, "eclSectionType", py::arithmetic()) .value("GRID", Opm::Ecl::GRID) .value("PROPS", Opm::Ecl::PROPS) .value("REGIONS", Opm::Ecl::REGIONS) .value("SOLUTION", Opm::Ecl::SOLUTION) .value("SUMMARY", Opm::Ecl::SUMMARY) .value("SCHEDULE", Opm::Ecl::SCHEDULE) .export_values(); py::class_(module, "Parser") .def(py::init(), py::arg("add_default") = true) .def("parse", py::overload_cast(&Parser::parseFile, py::const_)) .def("parse" , py::overload_cast(&Parser::parseFile, py::const_)) .def("parse" , py::overload_cast&>(&Parser::parseFile, py::const_)) .def("parse_string", py::overload_cast(&Parser::parseString, py::const_)) .def("parse_string", py::overload_cast(&Parser::parseString, py::const_)) .def("add_keyword", py::overload_cast(&Parser::addParserKeyword)) .def("add_keyword", add_keyword) .def("__getitem__", &Parser::getKeyword, ref_internal); }