Skip to content

Commit

Permalink
Merge pull request #78 from lsst/tickets/DM-7148
Browse files Browse the repository at this point in the history
DM-7148: Remove the python 2 era iterkeys, iteritems, itervalues methods
  • Loading branch information
timj committed Jun 17, 2022
2 parents 013f543 + daed64c commit cc71245
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 61 deletions.
69 changes: 8 additions & 61 deletions python/lsst/pex/config/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -819,90 +819,37 @@ def keys(self):
Returns
-------
names : `list`
names : `dict_keys`
List of `lsst.pex.config.Field` names.
See also
--------
lsst.pex.config.Config.iterkeys
"""
return list(self._storage.keys())
return self._storage.keys()

def values(self):
"""Get field values.
Returns
-------
values : `list`
List of field values.
See also
--------
lsst.pex.config.Config.itervalues
values : `dict_values`
Iterator of field values.
"""
return list(self._storage.values())
return self._storage.values()

def items(self):
"""Get configurations as ``(field name, field value)`` pairs.
Returns
-------
items : `list`
List of tuples for each configuration. Tuple items are:
0. Field name.
1. Field value.
See also
--------
lsst.pex.config.Config.iteritems
"""
return list(self._storage.items())

def iteritems(self):
"""Iterate over (field name, field value) pairs.
Yields
------
item : `tuple`
Tuple items are:
items : `dict_items`
Iterator of tuples for each configuration. Tuple items are:
0. Field name.
1. Field value.
See also
--------
lsst.pex.config.Config.items
"""
return iter(self._storage.items())

def itervalues(self):
"""Iterate over field values.
Yields
------
value : obj
A field value.
See also
--------
lsst.pex.config.Config.values
"""
return iter(self.storage.values())

def iterkeys(self):
"""Iterate over field names
Yields
------
key : `str`
A field's key (attribute name).
See also
--------
lsst.pex.config.Config.values
"""
return iter(self.storage.keys())
return self._storage.items()

def __contains__(self, name):
"""!Return True if the specified field exists in this config
Expand Down
13 changes: 13 additions & 0 deletions tests/test_Config.py
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,19 @@ def testNames(self):
for name in names:
self.assertTrue(hasattr(self.simple, name))

def testIteration(self):
self.assertIn("ll", self.simple)
self.assertIn("ll", self.simple.keys())
self.assertIn("Hello", self.simple.values())
self.assertEqual(len(self.simple.values()), 8)

for k, v, (k1, v1) in zip(self.simple.keys(), self.simple.values(), self.simple.items()):
self.assertEqual(k, k1)
if k == "n":
self.assertNotEqual(v, v1)
else:
self.assertEqual(v, v1)


if __name__ == "__main__":
unittest.main()

0 comments on commit cc71245

Please sign in to comment.