GridFire 0.0.1a
General Purpose Nuclear Network
Loading...
Searching...
No Matches
bindings.cpp
Go to the documentation of this file.
1#include <pybind11/pybind11.h>
2#include <pybind11/stl.h> // Needed for vectors, maps, sets, strings
3#include <pybind11/stl_bind.h> // Needed for binding std::vector, std::map etc if needed directly
4
5#include <iostream>
6
7#include "bindings.h"
8
9namespace py = pybind11;
10
12
13void register_exception_bindings(py::module &m) {
14 py::register_exception<gridfire::exceptions::EngineError>(m, "GridFireEngineError");
15
16 // TODO: Make it so that we can grab the stale state in python
17 // m.attr("StaleEngineTrigger") = py::register_exception<gridfire::exceptions::StaleEngineTrigger>(m, "StaleEngineTrigger", m.attr("GridFireEngineError"));
18 m.attr("StaleEngineError") = py::register_exception<gridfire::exceptions::StaleEngineError>(m, "StaleEngineError", m.attr("GridFireEngineError"));
19 m.attr("FailedToPartitionEngineError") = py::register_exception<gridfire::exceptions::FailedToPartitionEngineError>(m, "FailedToPartitionEngineError", m.attr("GridFireEngineError"));
20 m.attr("NetworkResizedError") = py::register_exception<gridfire::exceptions::NetworkResizedError>(m, "NetworkResizedError", m.attr("GridFireEngineError"));
21 m.attr("UnableToSetNetworkReactionsError") = py::register_exception<gridfire::exceptions::UnableToSetNetworkReactionsError>(m, "UnableToSetNetworkReactionsError", m.attr("GridFireEngineError"));
22
23 py::class_<gridfire::exceptions::StaleEngineTrigger::state>(m, "StaleEngineState")
24 .def(py::init<>())
31
32 py::class_<gridfire::exceptions::StaleEngineTrigger>(m, "StaleEngineTrigger")
33 .def(py::init<const gridfire::exceptions::StaleEngineTrigger::state &>())
41 .def("__repr__", [&](const gridfire::exceptions::StaleEngineTrigger& self) {
42 return self.what();
43 });
44
45}
double getMolarAbundance(const size_t index) const
const char * what() const noexcept override
void register_exception_bindings(py::module &m)
Definition bindings.cpp:13