提交 8e856888 authored 作者: Olivier Breuleux's avatar Olivier Breuleux

corrective to gof.ext.view_roots

上级 f52cd452
...@@ -8,6 +8,7 @@ from env import InconsistencyError ...@@ -8,6 +8,7 @@ from env import InconsistencyError
__all__ = ['Destroyer', __all__ = ['Destroyer',
'Viewer', 'Viewer',
'view_roots',
'DestroyHandler', 'DestroyHandler',
] ]
...@@ -470,24 +471,25 @@ class Viewer: ...@@ -470,24 +471,25 @@ class Viewer:
""" """
raise AbstractFunctionError() raise AbstractFunctionError()
def view_roots(self, r):
""" def view_roots(r):
Utility function that returns the leaves of a search through """
consecutive view_map()s. Utility function that returns the leaves of a search through
""" consecutive view_map()s.
owner = r.owner """
if owner is not None: owner = r.owner
try: if owner is not None:
view_map = owner.view_map() try:
except AttributeError, AbstractFunctionError: view_map = owner.view_map()
return [] except AttributeError, AbstractFunctionError:
if r in view_map: return [r]
answer = [] if r in view_map:
for r2 in view_map[r]: answer = []
answer.extend(helper(r2)) for r2 in view_map[r]:
return answer answer += view_roots(r2)
else: return answer
return [r]
else: else:
return [r] return [r]
else:
return [r]
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论