def __getitem__(self, item): if isinstance(item, slice): item = slice_to_indices(item, lenindices=len(self._dict)) if hasattr(item, '__len__'): return np.array([self._get_path(k) for k in item]) else: return self._get_path(item)
def __getitem__(self, item): if isinstance(item, slice): item = slice_to_indices(item, lenindices=len(self._dict), keys=sorted(self._dict.keys())) if hasattr(item, '__len__'): return np.array([self._get_path(k) for k in item]) else: return self._get_path(item)
def __setitem__(self, item, value): if key.startswith('_'): self.__dict__[key] = value return if isinstance(item, slice): item = slice_to_indices(item, lenindices=len(self._dict)) if hasattr(item, '__len__'): if not hasattr(value, '__len__'): value = [value] * len(item) for k, val in zip(item, value): self._set_path(k, value) else: return self._set_path(item, value)