MCPcopy Index your code
hub / github.com/python/mypy / check_arg_kinds

Function check_arg_kinds

mypy/nodes.py:5269–5303  ·  view source on GitHub ↗
(
    arg_kinds: list[ArgKind], nodes: list[T], fail: Callable[[str, T], None]
)

Source from the content-addressed store, hash-verified

5267
5268
5269def check_arg_kinds(
5270 arg_kinds: list[ArgKind], nodes: list[T], fail: Callable[[str, T], None]
5271) -> None:
5272 is_var_arg = False
5273 is_kw_arg = False
5274 seen_named = False
5275 seen_opt = False
5276 for kind, node in zip(arg_kinds, nodes):
5277 if kind == ARG_POS:
5278 if is_var_arg or is_kw_arg or seen_named or seen_opt:
5279 fail(
5280 "Required positional args may not appear after default, named or var args",
5281 node,
5282 )
5283 break
5284 elif kind == ARG_OPT:
5285 if is_var_arg or is_kw_arg or seen_named:
5286 fail("Positional default args may not appear after named or var args", node)
5287 break
5288 seen_opt = True
5289 elif kind == ARG_STAR:
5290 if is_var_arg or is_kw_arg or seen_named:
5291 fail("Var args may not appear after named or var args", node)
5292 break
5293 is_var_arg = True
5294 elif kind == ARG_NAMED or kind == ARG_NAMED_OPT:
5295 seen_named = True
5296 if is_kw_arg:
5297 fail("A **kwargs argument must be the last argument", node)
5298 break
5299 elif kind == ARG_STAR2:
5300 if is_kw_arg:
5301 fail("You may only have one **kwargs argument", node)
5302 break
5303 is_kw_arg = True
5304
5305
5306def check_param_names(

Callers 1

analyze_callable_argsMethod · 0.90

Calls 2

zipFunction · 0.85
failFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…