1
1
#include " NodeBindings.hpp"
2
2
#include " Common.hpp"
3
3
4
- // #include "depthai/pipeline/Pipeline.hpp"
5
- // #include "depthai/pipeline/Node.hpp"
6
- // #include "depthai/pipeline/node/Script.hpp"
7
4
#include " depthai/pipeline/HostNode.hpp"
8
5
9
6
using namespace dai ;
10
7
11
- // TODO(Zimamazim) Should be replaced with CRTP
12
- // class PyHostNode : public NodeCRTP<HostNode, PyHostNode> {
13
- class PyHostNode : public HostNode {
8
+ class PyHostNode : public NodeCRTP <HostNode, PyHostNode> {
14
9
public:
15
- using HostNode::HostNode;
16
-
17
10
void run () override {
18
11
PYBIND11_OVERRIDE_PURE (
19
12
void ,
20
13
HostNode,
21
14
run);
22
15
}
23
-
24
- // TODO(Zimamazim) Should be replaced with CRTP
25
- const char * getName () const override {
26
- return " PLACEHOLDER" ;
27
- }
28
-
29
- // TODO(Zimamazim) Should be replaced with CRTP
30
- std::unique_ptr<Node> clone () const override {
31
- return std::make_unique<PyHostNode>(*this );
32
- }
33
- };
34
-
35
- class Pokus {
36
- public:
37
- virtual void run () = 0;
38
- };
39
-
40
- class PyPokus : public Pokus {
41
- public:
42
- // using Pokus::Pokus;
43
- void run () override {
44
- PYBIND11_OVERRIDE_PURE (
45
- void ,
46
- Pokus,
47
- run
48
- );}
49
-
50
16
};
51
17
52
18
void bind_hostnode (pybind11::module& m, void * pCallstack){
53
-
54
- // using namespace dai::node;
55
-
56
- // Node and Properties declare upfront
57
- // py::class_<ScriptProperties> scriptProperties(m, "ScriptProperties", DOC(dai, ScriptProperties));
58
- auto hostNode = py::class_<HostNode, PyHostNode, /* ThreadedNode,*/ std::shared_ptr<HostNode>>(m, " HostNode" , DOC (dai, node, HostNode));
59
- auto pokusNode = py::class_<Pokus, PyPokus, std::shared_ptr<Pokus>>(m, " Pokus" );
60
-
61
- // TODO(Zimamazim): Understand why shared_ptr<HostNode> is used
62
- // TODO(Zimamazim): Understand why callstack is used
19
+ // declare upfront
20
+ auto hostNode = py::class_<HostNode, PyHostNode, ThreadedNode, std::shared_ptr<HostNode>>(m, " HostNode" , DOC (dai, node, HostNode));
63
21
64
22
// /////////////////////////////////////////////////////////////////////
65
23
// /////////////////////////////////////////////////////////////////////
@@ -74,45 +32,8 @@ void bind_hostnode(pybind11::module& m, void* pCallstack){
74
32
// /////////////////////////////////////////////////////////////////////
75
33
// /////////////////////////////////////////////////////////////////////
76
34
77
- pokusNode
78
- .def (py::init<>())
79
- .def (" run" , &Pokus::run)
80
- ;
81
- // m.def("pokus", [](Pokus *pokus){ pokus->run(); });
82
- m.def (" pokus" , [](py::object o){
83
- py::cast<std::shared_ptr<Pokus>>(o ())->run ();
84
- });
85
35
hostNode
86
36
.def (py::init<>())
87
37
.def (" run" , &HostNode::run)
88
38
;
89
-
90
- m.def (" testHost" , [](py::object o){
91
-
92
- py::cast<std::shared_ptr<HostNode>>(o ())->run ();
93
- // return py::module_::import("builtins").attr("issubclass")(o, hostNode);
94
- // return py::cast<std::string>(o.attr("__base__").attr("__name__")) == "HostNode";
95
- });
96
- /*
97
- // Properties
98
- scriptProperties
99
- .def_readwrite("scriptUri", &ScriptProperties::scriptUri, DOC(dai, ScriptProperties, scriptUri))
100
- .def_readwrite("scriptName", &ScriptProperties::scriptName, DOC(dai, ScriptProperties, scriptName))
101
- .def_readwrite("processor", &ScriptProperties::processor, DOC(dai, ScriptProperties, processor))
102
- ;
103
-
104
- // Node
105
- script
106
- .def_readonly("inputs", &Script::inputs)
107
- .def_readonly("outputs", &Script::outputs)
108
- .def("setScriptPath", &Script::setScriptPath, DOC(dai, node, Script, setScriptPath))
109
- .def("setScript", py::overload_cast<const std::string&, const std::string&>(&Script::setScript), py::arg("script"), py::arg("name") = "", DOC(dai, node, Script, setScript))
110
- .def("setScript", py::overload_cast<const std::vector<std::uint8_t>&, const std::string&>(&Script::setScript), py::arg("data"), py::arg("name") = "", DOC(dai, node, Script, setScript, 2))
111
- .def("setScriptPath", &Script::setScriptPath, py::arg("path"), py::arg("name") = "", DOC(dai, node, Script, setScriptPath))
112
- .def("getScriptName", &Script::getScriptName, DOC(dai, node, Script, getScriptName))
113
- .def("setProcessor", &Script::setProcessor, DOC(dai, node, Script, setProcessor))
114
- .def("getProcessor", &Script::getProcessor, DOC(dai, node, Script, getProcessor))
115
- ;
116
- daiNodeModule.attr("Script").attr("Properties") = scriptProperties;
117
- */
118
39
}
0 commit comments