HALDLS
pyhaldls.h
Go to the documentation of this file.
1 /* This header file contains additional code related to python bindings */
2 #include <vector>
3 #include <pybind11/pybind11.h>
4 
5 #include "haldls/cerealization.tcc"
6 #include "haldls/vx/genpybind.h"
7 
8 
9 namespace py = pybind11;
10 
12 GENPYBIND_MANUAL({
13  parent.attr("__variant__") = "pybind11";
14  parent->py::module::import("pyhalco_hicann_dls_vx_v2");
15  parent->py::module::import("pyfisch_vx_v2");
16 })
17 
18 #include "haldls/cerealization.h"
19 #include "haldls/vx/pickle.h"
20 #include "haldls/vx/v2/barrier.h"
21 #include "haldls/vx/v2/haldls.h"
22 #include "hate/type_list.h"
23 
25 
26 #define PLAYBACK_CONTAINER(Name, Type) #Name,
27 static std::vector<std::string> const pickle_type_names = {
28 #include "haldls/vx/v2/container.def"
29  "Barrier"};
30 
31 #define PLAYBACK_CONTAINER(Name, Type) Type,
32 typedef hate::type_list<
33 #include "haldls/vx/v2/container.def"
36 
37 py::list get_containers_list(py::module& m);
38 
39 } // haldls::vx::v2::detail
40 
41 GENPYBIND_MANUAL({
44 
45  parent.attr("containers") = [&parent]() {
47  }();
48 
49  ::haldls::vx::WrapToFromFunctions<::haldls::vx::v2::detail::pickle_types>::apply(parent);
50 
51  auto typing = parent->py::module::import("typing");
52  parent.attr("Container") = typing.attr("Union")[parent->py::tuple(parent.attr("containers"))];
53 })
#define GENPYBIND_TAG_HALDLS_VX_V2
Definition: genpybind.h:5
static std::vector< std::string > const pickle_type_names
Definition: pyhaldls.h:27
py::list get_containers_list(py::module &m)
py::list get_containers_list(py::module &m)
static std::vector< std::string > const pickle_type_names
Definition: pyhaldls.h:27
hate::type_list<# 33 "/jenkins/jenlib_workspaces_f9/bld_nightly-haldls.YmxkX25pZ2h0bHktaGFsZGxzIzEzNzk.x/haldls/include/haldls/vx/v3/pyhaldls.h" 2 haldls::vx::Barrier > pickle_types
Definition: pyhaldls.h:35
Add pickle support to list of classes.
Definition: pickle.h:16
auto typing
Definition: pyhaldls.h:53