MCPcopy
hub / github.com/rocky/python-uncompyle6 / n_call_kw_pypy37

Function n_call_kw_pypy37

uncompyle6/semantics/customize.py:62–109  ·  view source on GitHub ↗
(node)

Source from the content-addressed store, hash-verified

60 if version[:2] >= (3, 7):
61
62 def n_call_kw_pypy37(node):
63 self.template_engine(("%p(", (0, NO_PARENTHESIS_EVER)), node)
64 assert node[-1] == "CALL_METHOD_KW"
65 arg_count = node[-1].attr
66 kw_names = node[-2]
67 assert kw_names == "pypy_kw_keys"
68
69 kwargs_names = kw_names[0].attr
70 kwarg_count = len(kwargs_names)
71 pos_argc = arg_count - kwarg_count
72
73 flat_elems = flatten_list(node[1:-2])
74 n = len(flat_elems)
75 assert n == arg_count, "n: %s, arg_count: %s\n%s" % (
76 n,
77 arg_count,
78 node,
79 )
80
81 sep = ""
82
83 for i in range(pos_argc):
84 elem = flat_elems[i]
85 line_number = self.line_number
86 value = self.traverse(elem)
87 if line_number != self.line_number:
88 sep += "\n" + self.indent + INDENT_PER_LEVEL[:-1]
89 pass
90 self.write(f"{sep}{value}")
91 sep = ", "
92
93 assert n >= len(kwargs_names)
94 j = pos_argc
95 for i in range(kwarg_count):
96 elem = flat_elems[j]
97 j += 1
98 assert elem == "expr"
99 line_number = self.line_number
100 value = self.traverse(elem)
101 if line_number != self.line_number:
102 sep += "\n" + self.indent + INDENT_PER_LEVEL[:-1]
103 pass
104 self.write(f"{sep}{kwargs_names[i]}={value}")
105 sep = ", "
106 pass
107
108 self.write(")")
109 self.prune()
110
111 self.n_call_kw_pypy37 = n_call_kw_pypy37
112

Callers

nothing calls this directly

Calls 4

flatten_listFunction · 0.90
template_engineMethod · 0.45
traverseMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected