def extract_tags_from_ast(node):
for child in ast.iter_child_nodes(node):
for t in extract_tags_from_ast(child):
yield t
if (
isinstance(node, ast.Call) and
isinstance(node.func, ast.Name) and
node.func.id == 'tag' and
len(node.args) >= 3 and
isinstance(node.args[2], ast.Str)
):
yield node.args[2].s
if (
isinstance(node, ast.Call) and
isinstance(node.func, ast.Attribute) and
isinstance(node.func.value, ast.Name) and
node.func.value.id in ('self', 'owner') and
node.func.attr == 'tag' and
len(node.args) >= 2 and
isinstance(node.args[1], ast.Str)
):
yield node.args[1].s
评论列表
文章目录