Skip to content

Commit 9d970c8

Browse files
committed
Revert "Remove duplicate iteration checking for non-string keys"
This reverts commit 0fc8545.
1 parent bf56b2b commit 9d970c8

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
395393
items = [(k, v) for k, v in items if isinstance(k, str)]
396394
if self._sort_keys:
397395
items = sorted(items)
398396

399397
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
724722
items = [(k, v) for k, v in items if isinstance(k, str)]
725723
if self._sort_keys:
726724
items = sorted(items)
727725

728726
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
845843
rootItems = [(k, v) for k, v in rootItems
846844
if isinstance(k, str)]
847845
if self._sort_keys:
848846
rootItems = sorted(rootItems)
849847

850848
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)