| 115 | return not self.__eq__(other) |
| 116 | |
| 117 | def __iter__(self): |
| 118 | if self.is_array: |
| 119 | for i in range(core.BNMetadataSize(self.handle)): |
| 120 | yield Metadata(handle=core.BNMetadataGetForIndex(self.handle, i)).value |
| 121 | elif self.is_dict: |
| 122 | result = core.BNMetadataGetValueStore(self.handle) |
| 123 | assert result is not None, "core.BNMetadataGetValueStore returned None" |
| 124 | try: |
| 125 | for i in range(result.contents.size): |
| 126 | if isinstance(result.contents.keys[i], bytes): |
| 127 | yield result.contents.keys[i].decode("utf-8") |
| 128 | else: |
| 129 | yield result.contents.keys[i] |
| 130 | finally: |
| 131 | core.BNFreeMetadataValueStore(result) |
| 132 | else: |
| 133 | raise TypeError("Metadata object doesn't support iteration") |
| 134 | |
| 135 | def __getitem__(self, value): |
| 136 | if self.is_array: |