(*a, **ka)
| 334 | |
| 335 | def factory(self, name, apifn): |
| 336 | def f(*a, **ka): |
| 337 | fields = apifn._func.msg.fields |
| 338 | |
| 339 | # add positional and kw arguments |
| 340 | d = ka |
| 341 | for i, o in enumerate(fields[3:]): |
| 342 | try: |
| 343 | d[o] = a[i] |
| 344 | except BaseException: |
| 345 | break |
| 346 | |
| 347 | # Default override |
| 348 | if name in defaultmapping: |
| 349 | for k, v in defaultmapping[name].items(): |
| 350 | if k in d: |
| 351 | continue |
| 352 | d[k] = v |
| 353 | return self.api(apifn, d) |
| 354 | |
| 355 | return f |
| 356 |