Skip to content

Commit 0fc8545

Browse files
committed
Remove duplicate iteration checking for non-string keys
1 parent 6b9bcb0 commit 0fc8545

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

Lib/plistlib.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -390,13 +390,13 @@ def write_dict(self, d):
390390
self.begin_element("dict")
391391
items = d.items()
392392
if self._skipkeys:
393+
# skip keys that are not strings
394+
# https://github.com/python/cpython/issues/145856
393395
items = [(k, v) for k, v in items if isinstance(k, str)]
394396
if self._sort_keys:
395397
items = sorted(items)
396398

397399
for key, value in items:
398-
if not isinstance(key, str):
399-
raise TypeError("keys must be strings")
400400
self.simple_element("key", key)
401401
self.write_value(value)
402402
self.end_element("dict")
@@ -719,13 +719,13 @@ def _flatten(self, value):
719719
values = []
720720
items = value.items()
721721
if self._skipkeys:
722+
# skip keys that are not strings
723+
# https://github.com/python/cpython/issues/145856
722724
items = [(k, v) for k, v in items if isinstance(k, str)]
723725
if self._sort_keys:
724726
items = sorted(items)
725727

726728
for k, v in items:
727-
if not isinstance(k, str):
728-
raise TypeError("keys must be strings")
729729
keys.append(k)
730730
values.append(v)
731731

@@ -840,14 +840,14 @@ def _write_object(self, value):
840840

841841
rootItems = value.items()
842842
if self._skipkeys:
843+
# skip keys that are not strings
844+
# https://github.com/python/cpython/issues/145856
843845
rootItems = [(k, v) for k, v in rootItems
844846
if isinstance(k, str)]
845847
if self._sort_keys:
846848
rootItems = sorted(rootItems)
847849

848850
for k, v in rootItems:
849-
if not isinstance(k, str):
850-
raise TypeError("keys must be strings")
851851
keyRefs.append(self._getrefnum(k))
852852
valRefs.append(self._getrefnum(v))
853853

0 commit comments

Comments
 (0)