MCPcopy Create free account
hub / github.com/numpy/numpy / _parse_signature

Method _parse_signature

tools/npy_tempita/__init__.py:548–585  ·  view source on GitHub ↗
(self, args, kw)

Source from the content-addressed store, hash-verified

546 self._body, self._ns, self._pos, bound_self=obj)
547
548 def _parse_signature(self, args, kw):
549 values = {}
550 sig_args, var_args, var_kw, defaults = self._func_signature
551 extra_kw = {}
552 for name, value in iteritems(kw):
553 if not var_kw and name not in sig_args:
554 raise TypeError(
555 'Unexpected argument %s' % name)
556 if name in sig_args:
557 values[sig_args] = value
558 else:
559 extra_kw[name] = value
560 args = list(args)
561 sig_args = list(sig_args)
562 while args:
563 while sig_args and sig_args[0] in values:
564 sig_args.pop(0)
565 if sig_args:
566 name = sig_args.pop(0)
567 values[name] = args.pop(0)
568 elif var_args:
569 values[var_args] = tuple(args)
570 break
571 else:
572 raise TypeError(
573 'Extra position arguments: %s'
574 % ', '.join(repr(v) for v in args))
575 for name, value_expr in iteritems(defaults):
576 if name not in values:
577 values[name] = self._template._eval(
578 value_expr, self._ns, self._pos)
579 for name in sig_args:
580 if name not in values:
581 raise TypeError(
582 'Missing argument: %s' % name)
583 if var_kw:
584 values[var_kw] = extra_kw
585 return values
586
587
588class TemplateObject:

Callers 1

__call__Method · 0.95

Calls 3

iteritemsFunction · 0.85
_evalMethod · 0.80
joinMethod · 0.45

Tested by

no test coverage detected