(f_name, argnames, pos, values)
| 1385 | return '(' + ', '.join(specs) + ')' |
| 1386 | |
| 1387 | def _missing_arguments(f_name, argnames, pos, values): |
| 1388 | names = [repr(name) for name in argnames if name not in values] |
| 1389 | missing = len(names) |
| 1390 | if missing == 1: |
| 1391 | s = names[0] |
| 1392 | elif missing == 2: |
| 1393 | s = "{} and {}".format(*names) |
| 1394 | else: |
| 1395 | tail = ", {} and {}".format(*names[-2:]) |
| 1396 | del names[-2:] |
| 1397 | s = ", ".join(names) + tail |
| 1398 | raise TypeError("%s() missing %i required %s argument%s: %s" % |
| 1399 | (f_name, missing, |
| 1400 | "positional" if pos else "keyword-only", |
| 1401 | "" if missing == 1 else "s", s)) |
| 1402 | |
| 1403 | def _too_many(f_name, args, kwonly, varargs, defcount, given, values): |
| 1404 | atleast = len(args) - defcount |
no test coverage detected