You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
>>> from Products.ExtendedPathIndex.ExtendedPathIndex import ExtendedPathIndex
>>>
>>> pi = ExtendedPathIndex("pi")
>>> paths = {}
>>>
>>> for leaf in ("1/1 1/12/121 1/12/122 2/21/1".split()):
... comps = leaf.split("/")
... pd = paths
... for c in comps:
... if c not in pd: pd[c] = {}
... pd = pd[c]
...
>>> def gen(prefix, pd):
... for c in sorted(pd):
... np = prefix + "/" + c
... yield np
... yield from gen(np, pd[c])
...
>>> class _O(object):
... def __init__(self, pi): self.pi = pi
...
>>> for i, p in enumerate(gen("", paths)):
... print(i, p)
... indexed = pi.index_object(i, _O(p))
...
0 /1
1 /1/1
2 /1/12
3 /1/12/121
4 /1/12/122
5 /2
6 /2/21
7 /2/21/1
>>> list(pi.search("1/12", default_level=0, depth=1))
[3, 4]
>>> list(pi.search("12", default_level=1, depth=1))
[2, 3, 4]
For level=0 only the children are included; for level>0 children and parent are included.
The docstring for search suggests that the second behaviour is correct - but I assume the the first behaviour is what is needed in many applications.
The text was updated successfully, but these errors were encountered:
For
level=0
only the children are included; forlevel>0
children and parent are included.The docstring for
search
suggests that the second behaviour is correct - but I assume the the first behaviour is what is needed in many applications.The text was updated successfully, but these errors were encountered: