| 133 | raise TypeError("Metadata object doesn't support iteration") |
| 134 | |
| 135 | def __getitem__(self, value): |
| 136 | if self.is_array: |
| 137 | if not isinstance(value, int): |
| 138 | raise ValueError("Metadata object only supports integers for indexing") |
| 139 | if value >= len(self): |
| 140 | raise IndexError("Index value out of range") |
| 141 | return Metadata(handle=core.BNMetadataGetForIndex(self.handle, value)).value |
| 142 | if self.is_dict: |
| 143 | if not isinstance(value, str): |
| 144 | raise ValueError("Metadata object only supports strings for indexing") |
| 145 | handle = core.BNMetadataGetForKey(self.handle, value) |
| 146 | if handle is None: |
| 147 | raise KeyError(value) |
| 148 | return Metadata(handle=handle).value |
| 149 | |
| 150 | raise NotImplementedError("Metadata object doesn't support indexing") |
| 151 | |
| 152 | def __setitem__(self, key, value): |
| 153 | if not self.is_dict: |