aboutsummaryrefslogtreecommitdiff
path: root/python/kicad_utils_py.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'python/kicad_utils_py.cpp')
-rw-r--r--python/kicad_utils_py.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/python/kicad_utils_py.cpp b/python/kicad_utils_py.cpp
new file mode 100644
index 0000000..6cd3948
--- /dev/null
+++ b/python/kicad_utils_py.cpp
@@ -0,0 +1,38 @@
+#include "trygvis/kicad/GenerateHeaderPy.h"
+
+#include "pybind11/stl.h"
+
+using namespace std;
+using namespace trygvis::kicad::netlist;
+using namespace trygvis::kicad::python;
+
+void init_module(py::module &m) {
+ py::class_<node>(m, "node").
+ def_readonly("ref", &node::ref).
+ def_readonly("pin", &node::pin);
+
+ py::class_<net>(m, "net").
+ def_readonly("code", &net::code).
+ def_readonly("name", &net::name).
+ def_readonly("nodes", &net::nodes).
+ def("node_for_ref", &net::node_for_ref, py::return_value_policy::reference);
+
+ py::class_<nl>(m, "netlist").
+ def("find_usages_of", &nl::find_usage_of, py::return_value_policy::reference);
+
+ py::class_<GenerateHeaderPy>(m, "GenerateHeader").
+ def(py::init<const string &, nl *>()).
+ 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();
+}