Deleted Added
sdiff udiff text old ( 13763:1adc93bf6a65 ) new ( 14061:bd3e8e7a983d )
full compact
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
9# terms below provided that you ensure that this notice is replicated

--- 44 unchanged lines hidden (view full) ---

54 self.writable = writable
55
56 def export(self, code, cname):
57 export = "def_readwrite" if self.writable else "def_readonly"
58 code('.${export}("${{self.name}}", &${cname}::${{self.cxx_name}})')
59
60class PyBindMethod(PyBindExport):
61 def __init__(self, name, cxx_name=None, args=None,
62 return_value_policy=None):
63 self.name = name
64 self.cxx_name = cxx_name if cxx_name else name
65 self.args = args
66 self.return_value_policy = return_value_policy
67
68 def _conv_arg(self, value):
69 if isinstance(value, bool):
70 return "true" if value else "false"
71 elif isinstance(value, (float, int)):
72 return repr(value)
73 else:
74 raise TypeError("Unsupported PyBind default value type")

--- 8 unchanged lines hidden (view full) ---

83 if isinstance(arg, tuple):
84 name, default = arg
85 return 'py::arg("%s") = %s' % (
86 name, self._conv_arg(default))
87 else:
88 return 'py::arg("%s")' % arg
89
90 arguments.extend(list([ get_arg_decl(a) for a in self.args ]))
91 code('.def(' + ', '.join(arguments) + ')')