summaryrefslogtreecommitdiff
path: root/python/metadata.py
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2017-07-12 22:47:12 -0400
committerPeter LaFosse <peter@vector35.com>2017-07-12 22:47:12 -0400
commit0e6019edc8c5949de4989ef9577c07913946135b (patch)
treecb3a8dbcbd1f2473f32a6797bced0b4a4b59256f /python/metadata.py
parentc05fbe9e3cffc727536a6df6893116af1570327c (diff)
Adding remove_metadata API to BinaryView. Add remove APIs to Metadata
Diffstat (limited to 'python/metadata.py')
-rw-r--r--python/metadata.py12
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")