Description
I have this NBT Explorer-like printing and when re-implementing it using my generic tree walker I noticed a missing feature in Path
that forced me to use a really inefficient constructor:
The generic tree walker yields a generic tuple
containing each path component, similar to the pathlib.Path()
API. And to create an nbtlib.Path
from this tuple I had to resort to an expensive that iteratively (or recursively) creates a new Path
for each component by concatenating the next component (def get_element(root, keys): return get_element(root[keys[0]], keys[1:]
). (by the way, this concatenation is what led me to #146 , as each part can be an int
(for List
) or str
(for Compound
)
I'm sure there are better, or at least easier ways of doing this. Something like Path.from_accessors()
, but skipping the parser by assuming each part is either an int
or a str
representing a single key.