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

Method n_set_comp_func

uncompyle6/semantics/fragments.py:926–959  ·  view source on GitHub ↗
(self, node)

Source from the content-addressed store, hash-verified

924 # FIXME: Not sure if below is general. Also, add dict_comp_func.
925 # 'set_comp_func': ("%|lambda %c: {%c for %c in %c%c}\n", 1, 3, 3, 1, 4)
926 def n_set_comp_func(self, node):
927 setcomp_start = len(self.f.getvalue())
928 self.write(self.indent, "lambda ")
929 param_node = node[1]
930 start = len(self.f.getvalue())
931 self.preorder(param_node)
932 self.set_pos_info(node[0], start, len(self.f.getvalue()))
933 self.write(": {")
934 start = len(self.f.getvalue())
935 assert node[0].kind.startswith("BUILD_SET")
936 self.set_pos_info(node[0], start - 1, start)
937 store = node[3]
938 assert store == "store"
939 start = len(self.f.getvalue())
940 self.preorder(store)
941 fin = len(self.f.getvalue())
942 self.set_pos_info(store, start, fin)
943 for_iter_node = node[2]
944 assert for_iter_node.kind == "FOR_ITER"
945 self.set_pos_info(for_iter_node, start, fin)
946 self.write(" for ")
947 self.preorder(store)
948 self.write(" in ")
949 self.preorder(param_node)
950 start = len(self.f.getvalue())
951 self.preorder(node[4])
952 self.set_pos_info(node[4], start, len(self.f.getvalue()))
953 self.write("}")
954 fin = len(self.f.getvalue())
955 self.set_pos_info(node, setcomp_start, fin)
956 if node[-2] == "RETURN_VALUE":
957 self.set_pos_info(node[-2], setcomp_start, fin)
958
959 self.prune()
960
961 def n_list_comp(self, node):
962 self.write("[")

Callers

nothing calls this directly

Calls 3

preorderMethod · 0.95
set_pos_infoMethod · 0.95
writeMethod · 0.45

Tested by

no test coverage detected