MCPcopy Create free account
hub / github.com/apache/tvm-ffi / _build_wrapper_code

Function _build_wrapper_code

python/tvm_ffi/utils/kwargs_wrapper.py:143–211  ·  view source on GitHub ↗

Build the generated wrapper code string and runtime defaults dict. Returns ------- A tuple of (code_str, runtime_defaults) where code_str is the generated wrapper function code and runtime_defaults maps arg names to their default values.

(
    arg_names: list[str],
    arg_defaults: tuple,
    kwonly_names: list[str],
    kwonly_defaults: dict[str, Any],
    dc_to_tuple_set: set[str],
)

Source from the content-addressed store, hash-verified

141
142
143def _build_wrapper_code(
144 arg_names: list[str],
145 arg_defaults: tuple,
146 kwonly_names: list[str],
147 kwonly_defaults: dict[str, Any],
148 dc_to_tuple_set: set[str],
149) -> tuple[str, dict[str, Any]]:
150 """Build the generated wrapper code string and runtime defaults dict.
151
152 Returns
153 -------
154 A tuple of (code_str, runtime_defaults) where code_str is the generated
155 wrapper function code and runtime_defaults maps arg names to their default values.
156
157 """
158 # Build positional defaults dictionary (right-aligned)
159 arg_defaults_dict = (
160 dict(zip(arg_names[-len(arg_defaults) :], arg_defaults)) if arg_defaults else {}
161 )
162
163 arg_parts: list[str] = []
164 call_parts: list[str] = []
165 runtime_defaults: dict[str, Any] = {}
166
167 def _transform_expr(name: str, expr: str) -> str:
168 if name in dc_to_tuple_set:
169 return f"{_INTERNAL_UNPACK}({expr})"
170 return expr
171
172 def _add_param_with_default(name: str, default_value: Any) -> None:
173 # Directly embed None and bool defaults; use MISSING sentinel for others.
174 if default_value is None:
175 arg_parts.append(f"{name}=None")
176 call_parts.append(_transform_expr(name, name))
177 elif type(default_value) is bool:
178 default_value_str = "True" if default_value else "False"
179 arg_parts.append(f"{name}={default_value_str}")
180 call_parts.append(_transform_expr(name, name))
181 else:
182 arg_parts.append(f"{name}={_INTERNAL_MISSING}")
183 runtime_defaults[name] = default_value
184 base_expr = (
185 f'{_INTERNAL_DEFAULTS_DICT}["{name}"] if {name} is {_INTERNAL_MISSING} else {name}'
186 )
187 call_parts.append(_transform_expr(name, base_expr))
188
189 for name in arg_names:
190 if name in arg_defaults_dict:
191 _add_param_with_default(name, arg_defaults_dict[name])
192 else:
193 arg_parts.append(name)
194 call_parts.append(_transform_expr(name, name))
195
196 if kwonly_names:
197 arg_parts.append("*")
198 for name in kwonly_names:
199 if name in kwonly_defaults:
200 _add_param_with_default(name, kwonly_defaults[name])

Callers 1

make_kwargs_wrapperFunction · 0.85

Calls 3

_add_param_with_defaultFunction · 0.85
_transform_exprFunction · 0.85
appendMethod · 0.80

Tested by

no test coverage detected