Skip to content

Bunch getitem always returns a Bunch

Lee McCuller requested to merge github/fork/kevinkuns/getitem into main

Created by: kevinkuns

This modifies Bunch.__getitem__ so that a Bunch is always returned even if the value is a dictionary. For example, if

a = Bunch(b=dict(x=1, y=2))

then a.b is a Bunch instead of dict. This is useful for looping through elements, especially in conjunction with walk. This change is especially useful for the construction

from wield.utilities.file_io import load
data = Bunch(load(filename))

since, unlike with gwinc.Struct, Bunch does not recursively make Bunch's for nested dict's.

To make the value always be a Bunch with iterators, the __iter__ method would still need to be modified however.

Merge request reports

Loading