From 8f2b707d026597018333ac60e707e5ab78c25a91 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Thu, 23 Jul 2020 18:35:18 +0200 Subject: Initial conversion to pybind11 --- generic/arch_pybindings.cc | 70 +++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 35 deletions(-) (limited to 'generic/arch_pybindings.cc') diff --git a/generic/arch_pybindings.cc b/generic/arch_pybindings.cc index 2600cac0..5c036ad0 100644 --- a/generic/arch_pybindings.cc +++ b/generic/arch_pybindings.cc @@ -35,13 +35,13 @@ template <> struct string_converter }; } // namespace PythonConversion -void arch_wrap_python() +void arch_wrap_python(py::module &m) { using namespace PythonConversion; - auto arch_cls = class_, boost::noncopyable>("Arch", init()); + auto arch_cls = py::class_(m, "Arch").def(py::init()); - auto dxy_cls = class_>("DecalXY_", no_init); + auto dxy_cls = py::class_>(m, "DecalXY_"); readwrite_wrapper, conv_from_str>::def_wrap(dxy_cls, "decal"); readwrite_wrapper, pass_through>::def_wrap( @@ -49,15 +49,15 @@ void arch_wrap_python() readwrite_wrapper, pass_through>::def_wrap( dxy_cls, "y"); - auto ctx_cls = class_, boost::noncopyable>("Context", no_init) + auto ctx_cls = py::class_(m, "Context") .def("checksum", &Context::checksum) .def("pack", &Context::pack) .def("place", &Context::place) .def("route", &Context::route); - class_("BelPin").def_readwrite("bel", &BelPin::bel).def_readwrite("pin", &BelPin::pin); + py::class_(m, "BelPin").def_readwrite("bel", &BelPin::bel).def_readwrite("pin", &BelPin::pin); - class_("DelayInfo").def("maxDelay", &DelayInfo::maxDelay).def("minDelay", &DelayInfo::minDelay); + py::class_(m, "DelayInfo").def("maxDelay", &DelayInfo::maxDelay).def("minDelay", &DelayInfo::minDelay); fn_wrapper_1a, conv_from_str>::def_wrap(ctx_cls, "getBelType"); @@ -154,86 +154,86 @@ void arch_wrap_python() // Generic arch construction API fn_wrapper_4a_v, conv_from_str, pass_through, pass_through>::def_wrap(ctx_cls, "addWire", - (arg("name"), "type", "x", + (py::arg("name"), "type", "x", "y")); fn_wrapper_6a_v, conv_from_str, conv_from_str, conv_from_str, pass_through, pass_through>::def_wrap(ctx_cls, "addPip", - (arg("name"), "type", "srcWire", "dstWire", "delay", "loc")); + (py::arg("name"), "type", "srcWire", "dstWire", "delay", "loc")); fn_wrapper_5a_v, conv_from_str, conv_from_str, conv_from_str, pass_through>::def_wrap(ctx_cls, "addAlias", - (arg("name"), "type", "srcWire", "dstWire", "delay")); + (py::arg("name"), "type", "srcWire", "dstWire", "delay")); fn_wrapper_4a_v, conv_from_str, pass_through, pass_through>::def_wrap(ctx_cls, "addBel", - (arg("name"), "type", + (py::arg("name"), "type", "loc", "gb")); fn_wrapper_3a_v, conv_from_str, conv_from_str>::def_wrap(ctx_cls, "addBelInput", - (arg("bel"), "name", "wire")); + (py::arg("bel"), "name", "wire")); fn_wrapper_3a_v, conv_from_str, conv_from_str>::def_wrap(ctx_cls, "addBelOutput", - (arg("bel"), "name", "wire")); + (py::arg("bel"), "name", "wire")); fn_wrapper_3a_v, conv_from_str, conv_from_str>::def_wrap(ctx_cls, "addBelInout", - (arg("bel"), "name", "wire")); + (py::arg("bel"), "name", "wire")); fn_wrapper_2a_v, - conv_from_str>::def_wrap(ctx_cls, "addGroupBel", (arg("group"), "bel")); + conv_from_str>::def_wrap(ctx_cls, "addGroupBel", (py::arg("group"), "bel")); fn_wrapper_2a_v, - conv_from_str>::def_wrap(ctx_cls, "addGroupWire", (arg("group"), "wire")); + conv_from_str>::def_wrap(ctx_cls, "addGroupWire", (py::arg("group"), "wire")); fn_wrapper_2a_v, - conv_from_str>::def_wrap(ctx_cls, "addGroupPip", (arg("group"), "pip")); + conv_from_str>::def_wrap(ctx_cls, "addGroupPip", (py::arg("group"), "pip")); fn_wrapper_2a_v, - conv_from_str>::def_wrap(ctx_cls, "addGroupGroup", (arg("group"), "grp")); + conv_from_str>::def_wrap(ctx_cls, "addGroupGroup", (py::arg("group"), "grp")); fn_wrapper_2a_v, - pass_through>::def_wrap(ctx_cls, "addDecalGraphic", (arg("decal"), "graphic")); + pass_through>::def_wrap(ctx_cls, "addDecalGraphic", (py::arg("decal"), "graphic")); fn_wrapper_2a_v, - unwrap_context>::def_wrap(ctx_cls, "setWireDecal", (arg("wire"), "decalxy")); + unwrap_context>::def_wrap(ctx_cls, "setWireDecal", (py::arg("wire"), "decalxy")); fn_wrapper_2a_v, - unwrap_context>::def_wrap(ctx_cls, "setPipDecal", (arg("pip"), "decalxy")); + unwrap_context>::def_wrap(ctx_cls, "setPipDecal", (py::arg("pip"), "decalxy")); fn_wrapper_2a_v, - unwrap_context>::def_wrap(ctx_cls, "setBelDecal", (arg("bel"), "decalxy")); + unwrap_context>::def_wrap(ctx_cls, "setBelDecal", (py::arg("bel"), "decalxy")); fn_wrapper_2a_v, - unwrap_context>::def_wrap(ctx_cls, "setGroupDecal", (arg("group"), "decalxy")); + unwrap_context>::def_wrap(ctx_cls, "setGroupDecal", (py::arg("group"), "decalxy")); fn_wrapper_3a_v, conv_from_str, pass_through>::def_wrap(ctx_cls, "setWireAttr", - (arg("wire"), "key", "value")); + (py::arg("wire"), "key", "value")); fn_wrapper_3a_v, conv_from_str, pass_through>::def_wrap(ctx_cls, "setBelAttr", - (arg("bel"), "key", "value")); + (py::arg("bel"), "key", "value")); fn_wrapper_3a_v, conv_from_str, pass_through>::def_wrap(ctx_cls, "setPipAttr", - (arg("pip"), "key", "value")); + (py::arg("pip"), "key", "value")); fn_wrapper_1a_v>::def_wrap( - ctx_cls, "setLutK", arg("K")); + ctx_cls, "setLutK", py::arg("K")); fn_wrapper_2a_v, - pass_through>::def_wrap(ctx_cls, "setDelayScaling", (arg("scale"), "offset")); + pass_through>::def_wrap(ctx_cls, "setDelayScaling", (py::arg("scale"), "offset")); fn_wrapper_2a_v, conv_from_str>::def_wrap(ctx_cls, "addCellTimingClock", - (arg("cell"), "port")); + (py::arg("cell"), "port")); fn_wrapper_4a_v, conv_from_str, conv_from_str, pass_through>::def_wrap(ctx_cls, "addCellTimingDelay", - (arg("cell"), "fromPort", "toPort", "delay")); + (py::arg("cell"), "fromPort", "toPort", "delay")); fn_wrapper_5a_v, conv_from_str, conv_from_str, pass_through, pass_through>::def_wrap(ctx_cls, "addCellTimingSetupHold", - (arg("cell"), "port", "clock", "setup", "hold")); + (py::arg("cell"), "port", "clock", "setup", "hold")); fn_wrapper_4a_v, conv_from_str, conv_from_str, pass_through>::def_wrap(ctx_cls, "addCellTimingClockToOut", - (arg("cell"), "port", "clock", "clktoq")); + (py::arg("cell"), "port", "clock", "clktoq")); - WRAP_MAP_UPTR(CellMap, "IdCellMap"); - WRAP_MAP_UPTR(NetMap, "IdNetMap"); - WRAP_MAP(HierarchyMap, wrap_context, "HierarchyMap"); - WRAP_VECTOR(const std::vector, conv_to_str); + WRAP_MAP_UPTR(m, CellMap, "IdCellMap"); + WRAP_MAP_UPTR(m, NetMap, "IdNetMap"); + WRAP_MAP(m, HierarchyMap, wrap_context, "HierarchyMap"); + WRAP_VECTOR(m, const std::vector, conv_to_str); } NEXTPNR_NAMESPACE_END -- cgit v1.2.3