MCPcopy Index your code
hub / github.com/python/cpython / __init__

Method __init__

Lib/inspect.py:2979–3037  ·  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

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