MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / __getitem__

Method __getitem__

python/binaryview.py:2656–2684  ·  view source on GitHub ↗
(self, i)

Source from the content-addressed store, hash-verified

2654 yield from self.functions
2655
2656 def __getitem__(self, i) -> bytes:
2657 if isinstance(i, tuple):
2658 result = bytes()
2659 for s in i:
2660 result += self.__getitem__(s)
2661 return result
2662 elif isinstance(i, slice):
2663 if i.step is not None:
2664 raise IndexError("step not implemented")
2665 i = i.indices(self.end)
2666 start = i[0]
2667 stop = i[1]
2668 if stop <= start:
2669 return b""
2670 return self.read(start, stop - start)
2671 elif i < 0:
2672 if i >= -self.length:
2673 value = self.read(self.start + int(self.length + i), 1)
2674 if len(value) == 0:
2675 raise IndexError("index not readable")
2676 return value
2677 raise IndexError("index out of range")
2678 elif (i >= self.start) and (i < self.end):
2679 value = self.read(int(i), 1)
2680 if len(value) == 0:
2681 raise IndexError("index not readable")
2682 return value
2683 else:
2684 raise IndexError("index out of range")
2685
2686 def __setitem__(self, i, value):
2687 if isinstance(i, slice):

Callers

nothing calls this directly

Calls 1

readMethod · 0.95

Tested by

no test coverage detected