Support slices in __setitem__ and __getitem__ for Python 3

This commit is contained in:
Mike Naberezny 2013-10-26 16:32:09 -07:00
parent 820f9ad4b9
commit 42c5b6fc5b
1 changed files with 10 additions and 0 deletions

View File

@ -16,6 +16,12 @@ class ObservableMemory:
self._write_subscribers = defaultdict(list)
def __setitem__(self, address, value):
if isinstance(address, slice):
r = range(*address.indices(self.physMask + 1))
for n, v in zip(r, value):
self[n] = v
return
address &= self.physMask
callbacks = self._write_subscribers[address]
@ -27,6 +33,10 @@ class ObservableMemory:
self._subject[address] = value
def __getitem__(self, address):
if isinstance(address, slice):
r = range(*address.indices(self.physMask + 1))
return [ self[n] for n in r ]
address &= self.physMask
callbacks = self._read_subscribers[address]
final_result = None