#include "trygvis/kicad/GenerateHeaderPy.h" #include "pybind11/stl.h" using namespace std; using namespace trygvis::kicad::netlist; using namespace trygvis::kicad::python; static py::object net_name(const net &n) { return n.name ? static_cast(py::str(n.name.value())) : py::none(); } void init_module(py::module &m) { py::class_(m, "node"). def_readonly("ref", &node::ref). def_readonly("pin", &node::pin); py::class_(m, "net"). def_readonly("code", &net::code). def_property_readonly("name", &net_name). def_readonly("nodes", &net::nodes). def("node_for_ref", &net::node_for_ref, py::return_value_policy::reference); py::class_(m, "netlist"). def("find_nets_using_ref", &nl::find_nets_using_ref, py::return_value_policy::reference); py::class_(m, "GenerateHeader"). def(py::init()). def_property_readonly("netlist", &GenerateHeaderPy::netlist). def_property_readonly("ref", &GenerateHeaderPy::ref). def_property_readonly("str", &GenerateHeaderPy::str). def("print", &GenerateHeaderPy::print). def("println", &GenerateHeaderPy::println); } PYBIND11_PLUGIN(kicad_utils_py) { py::module kicad_utils("kicad_utils_py"); init_module(kicad_utils); return kicad_utils.ptr(); }