specs: speed up traversal by avoiding redundant canonicalization
This commit is contained in:
parent
bb60dbd2ad
commit
fd12cba18b
@ -1382,7 +1382,16 @@ def traverse_edges(self, visited=None, d=0, deptype='all',
|
|||||||
cover = kwargs.get('cover', 'nodes')
|
cover = kwargs.get('cover', 'nodes')
|
||||||
direction = kwargs.get('direction', 'children')
|
direction = kwargs.get('direction', 'children')
|
||||||
order = kwargs.get('order', 'pre')
|
order = kwargs.get('order', 'pre')
|
||||||
deptype = dp.canonical_deptype(deptype)
|
|
||||||
|
# we don't want to run canonical_deptype every time through
|
||||||
|
# traverse, because it is somewhat expensive. This ensures we
|
||||||
|
# canonicalize only once.
|
||||||
|
canonical_deptype = kwargs.get("canonical_deptype", None)
|
||||||
|
if canonical_deptype is None:
|
||||||
|
deptype = dp.canonical_deptype(deptype)
|
||||||
|
kwargs["canonical_deptype"] = deptype
|
||||||
|
else:
|
||||||
|
deptype = canonical_deptype
|
||||||
|
|
||||||
# Make sure kwargs have legal values; raise ValueError if not.
|
# Make sure kwargs have legal values; raise ValueError if not.
|
||||||
def validate(name, val, allowed_values):
|
def validate(name, val, allowed_values):
|
||||||
|
Loading…
Reference in New Issue
Block a user