def flatten_subscript(self, node):
value = self.flatten(node.value)
node_type = self.new_type()
if isinstance(node.slice, ast.Index):
index = self.flatten(node.slice.value)
self.nodes.append(('z_index', [value, index], node_type))
else:
lower = self.flatten(node.slice.lower) if node.slice.lower else None
upper = self.flatten(node.slice.upper) if node.slice.upper else None
if lower and upper is None:
upper = lower
elif lower is None and upper:
lower = upper
else:
raise ValueError('hatlog expects only slice like [:x], [x:] or [x:y]')
self.nodes.append(('z_slice', [value, lower, upper], node_type))
return node_type
评论列表
文章目录