Skip to content

Commit 4432346

Browse files
committed
Ensure _OpenSlideMap.keys() returns view object on Python 3
Make the existing keys() method private to avoid overriding Mapping.keys().
1 parent ef00fe1 commit 4432346

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

openslide/__init__.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -222,17 +222,18 @@ def __repr__(self):
222222
return repr(dict(self))
223223

224224
def __len__(self):
225-
return len(self.keys())
225+
return len(self._keys())
226226

227227
def __iter__(self):
228-
return iter(self.keys())
228+
return iter(self._keys())
229229

230-
def keys(self):
230+
def _keys(self):
231+
# Private method; always returns list.
231232
raise NotImplementedError()
232233

233234

234235
class _PropertyMap(_OpenSlideMap):
235-
def keys(self):
236+
def _keys(self):
236237
return lowlevel.get_property_names(self._osr)
237238

238239
def __getitem__(self, key):
@@ -243,11 +244,11 @@ def __getitem__(self, key):
243244

244245

245246
class _AssociatedImageMap(_OpenSlideMap):
246-
def keys(self):
247+
def _keys(self):
247248
return lowlevel.get_associated_image_names(self._osr)
248249

249250
def __getitem__(self, key):
250-
if key not in self.keys():
251+
if key not in self._keys():
251252
raise KeyError()
252253
return lowlevel.read_associated_image(self._osr, key)
253254

0 commit comments

Comments
 (0)