diff options
| author | Peter LaFosse <peter@vector35.com> | 2017-07-12 22:47:12 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2017-07-12 22:47:12 -0400 |
| commit | 0e6019edc8c5949de4989ef9577c07913946135b (patch) | |
| tree | cb3a8dbcbd1f2473f32a6797bced0b4a4b59256f /python/metadata.py | |
| parent | c05fbe9e3cffc727536a6df6893116af1570327c (diff) | |
Adding remove_metadata API to BinaryView. Add remove APIs to Metadata
Diffstat (limited to 'python/metadata.py')
| -rw-r--r-- | python/metadata.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/python/metadata.py b/python/metadata.py index f0e7764d..2817d777 100644 --- a/python/metadata.py +++ b/python/metadata.py @@ -114,6 +114,14 @@ class Metadata(object): def is_dict(self): return core.BNMetadataIsKeyValueStore(self.handle) + def remove(self, key_or_index): + if isinstance(key_or_index, str) and self.is_dict: + core.BNMetadataRemoveKey(self.handle, key_or_index) + elif isinstance(key_or_index, int) and self.is_array: + core.BNMetadataRemoveIndex(self.handle, key_or_index) + else: + raise TypeError("remove only valid for dict and array objects") + def __len__(self): if self.is_array or self.is_dict or self.is_string or self.is_raw: return core.BNMetadataSize(self.handle) @@ -122,7 +130,7 @@ class Metadata(object): def __iter__(self): if self.is_array: for i in xrange(core.BNMetadataSize(self.handle)): - yield Metadata(handle=core.BNMetadataGetForIdx(self.handle, i)) + yield Metadata(handle=core.BNMetadataGetForIndex(self.handle, i)) elif self.is_dict: result = core.BNMetadataGetValueStore(self.handle) try: @@ -139,7 +147,7 @@ class Metadata(object): raise ValueError("Metadata object only supports integers for indexing") if value >= len(self): raise IndexError("Index value out of range") - return Metadata(handle=core.BNMetadataGetForIdx(self.handle, value)) + return Metadata(handle=core.BNMetadataGetForIndex(self.handle, value)) if self.is_dict: if not isinstance(value, str): raise ValueError("Metadata object only supports strings for indexing") |
