1# Copyright (c) 2017 ARM Limited 2# All rights reserved. 3# 4# The license below extends only to copyright in the software and shall 5# not be construed as granting a license to any other intellectual 6# property including but not limited to intellectual property relating 7# to a hardware implementation of the functionality of the software 8# licensed hereunder. You may use the software subject to the license --- 687 unchanged lines hidden (view full) --- 696 697static void 698module_init(py::module &m_internal) 699{ 700 py::module m = m_internal.def_submodule("param_${cls}"); 701''') 702 code.indent() 703 if cls._base: |
704 code('py::class_<${cls}Params, ${{cls._base.type}}Params, ' \ 705 'std::unique_ptr<${{cls}}Params, py::nodelete>>(' \ 706 'm, "${cls}Params")') |
707 else: |
708 code('py::class_<${cls}Params, ' \ 709 'std::unique_ptr<${cls}Params, py::nodelete>>(' \ 710 'm, "${cls}Params")') |
711 712 code.indent() 713 if not hasattr(cls, 'abstract') or not cls.abstract: 714 code('.def(py::init<>())') 715 code('.def("create", &${cls}Params::create)') 716 717 param_exports = cls.cxx_param_exports + [ 718 PyBindProperty(k) --- 8 unchanged lines hidden (view full) --- 727 code(';') 728 code() 729 code.dedent() 730 731 bases = [ cls._base.cxx_class ] + cls.cxx_bases if cls._base else \ 732 cls.cxx_bases 733 if bases: 734 base_str = ", ".join(bases) |
735 code('py::class_<${{cls.cxx_class}}, ${base_str}, ' \ 736 'std::unique_ptr<${{cls.cxx_class}}, py::nodelete>>(' \ 737 'm, "${py_class_name}")') |
738 else: |
739 code('py::class_<${{cls.cxx_class}}, ' \ 740 'std::unique_ptr<${{cls.cxx_class}}, py::nodelete>>(' \ 741 'm, "${py_class_name}")') |
742 code.indent() 743 for exp in cls.cxx_exports: 744 exp.export(code, cls.cxx_class) 745 code(';') 746 code.dedent() 747 code() 748 code.dedent() 749 code('}') --- 812 unchanged lines hidden --- |