MCPcopy
hub / github.com/python/mypy / transform_args

Method transform_args

mypy/fastparse.py:1078–1120  ·  view source on GitHub ↗
(
        self, args: ast3.arguments, line: int, no_type_check: bool = False
    )

Source from the content-addressed store, hash-verified

1076 type.optional = optional
1077
1078 def transform_args(
1079 self, args: ast3.arguments, line: int, no_type_check: bool = False
1080 ) -> list[Argument]:
1081 new_args = []
1082 names: list[ast3.arg] = []
1083 posonlyargs = args.posonlyargs
1084 args_args = posonlyargs + args.args
1085 args_defaults = args.defaults
1086 num_no_defaults = len(args_args) - len(args_defaults)
1087 # positional arguments without defaults
1088 for i, a in enumerate(args_args[:num_no_defaults]):
1089 pos_only = i < len(posonlyargs)
1090 new_args.append(self.make_argument(a, None, ARG_POS, no_type_check, pos_only))
1091 names.append(a)
1092
1093 # positional arguments with defaults
1094 for i, (a, d) in enumerate(zip(args_args[num_no_defaults:], args_defaults)):
1095 pos_only = num_no_defaults + i < len(posonlyargs)
1096 new_args.append(self.make_argument(a, d, ARG_OPT, no_type_check, pos_only))
1097 names.append(a)
1098
1099 # *arg
1100 if args.vararg is not None:
1101 new_args.append(self.make_argument(args.vararg, None, ARG_STAR, no_type_check))
1102 names.append(args.vararg)
1103
1104 # keyword-only arguments with defaults
1105 for a, kd in zip(args.kwonlyargs, args.kw_defaults):
1106 new_args.append(
1107 self.make_argument(
1108 a, kd, ARG_NAMED if kd is None else ARG_NAMED_OPT, no_type_check
1109 )
1110 )
1111 names.append(a)
1112
1113 # **kwarg
1114 if args.kwarg is not None:
1115 new_args.append(self.make_argument(args.kwarg, None, ARG_STAR2, no_type_check))
1116 names.append(args.kwarg)
1117
1118 check_param_names([arg.variable.name for arg in new_args], names, self.fail_arg)
1119
1120 return new_args
1121
1122 def make_argument(
1123 self,

Callers 2

do_func_defMethod · 0.95
visit_LambdaMethod · 0.95

Calls 6

make_argumentMethod · 0.95
check_param_namesFunction · 0.90
lenFunction · 0.85
enumerateFunction · 0.85
zipFunction · 0.85
appendMethod · 0.80

Tested by

no test coverage detected