MCPcopy Index your code
hub / github.com/RustPython/RustPython / __init__

Method __init__

Lib/inspect.py:2972–3030  ·  view source on GitHub ↗

Constructs Signature from the given list of Parameter objects and 'return_annotation'. All arguments are optional.

(self, parameters=None, *, return_annotation=_empty,
                 __validate_parameters__=True)

Source from the content-addressed store, hash-verified

2970 empty = _empty
2971
2972 def __init__(self, parameters=None, *, return_annotation=_empty,
2973 __validate_parameters__=True):
2974 """Constructs Signature from the given list of Parameter
2975 objects and 'return_annotation'. All arguments are optional.
2976 """
2977
2978 if parameters is None:
2979 params = OrderedDict()
2980 else:
2981 if __validate_parameters__:
2982 params = OrderedDict()
2983 top_kind = _POSITIONAL_ONLY
2984 seen_default = False
2985 seen_var_parameters = set()
2986
2987 for param in parameters:
2988 kind = param.kind
2989 name = param.name
2990
2991 if kind in (_VAR_POSITIONAL, _VAR_KEYWORD):
2992 if kind in seen_var_parameters:
2993 msg = f'more than one {kind.description} parameter'
2994 raise ValueError(msg)
2995
2996 seen_var_parameters.add(kind)
2997
2998 if kind < top_kind:
2999 msg = (
3000 'wrong parameter order: {} parameter before {} '
3001 'parameter'
3002 )
3003 msg = msg.format(top_kind.description,
3004 kind.description)
3005 raise ValueError(msg)
3006 elif kind > top_kind:
3007 top_kind = kind
3008
3009 if kind in (_POSITIONAL_ONLY, _POSITIONAL_OR_KEYWORD):
3010 if param.default is _empty:
3011 if seen_default:
3012 # No default for this parameter, but the
3013 # previous parameter of had a default
3014 msg = 'non-default argument follows default ' \
3015 'argument'
3016 raise ValueError(msg)
3017 else:
3018 # There is a default for this parameter.
3019 seen_default = True
3020
3021 if name in params:
3022 msg = 'duplicate parameter name: {!r}'.format(name)
3023 raise ValueError(msg)
3024
3025 params[name] = param
3026 else:
3027 params = OrderedDict((param.name, param) for param in parameters)
3028
3029 self._parameters = types.MappingProxyType(params)

Callers

nothing calls this directly

Calls 4

OrderedDictClass · 0.90
setFunction · 0.85
addMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected