Reverted PEP8 correction
This commit is contained in:
parent
bb7ab509eb
commit
c1ca4c1e1e
2 changed files with 26 additions and 39 deletions
|
|
@ -2,26 +2,20 @@ from six import iteritems
|
|||
|
||||
from collections import defaultdict
|
||||
|
||||
|
||||
def nested_lookup(key, document, wild=False, with_keys=False):
|
||||
"""Lookup a key in a nested document, return a list of values"""
|
||||
if with_keys:
|
||||
d = defaultdict(list)
|
||||
for k, v in _nested_lookup(
|
||||
key, document, wild=wild, with_keys=with_keys
|
||||
):
|
||||
for k, v in _nested_lookup(key, document, wild=wild, with_keys=with_keys):
|
||||
d[k].append(v)
|
||||
return d
|
||||
return list(_nested_lookup(key, document, wild=wild, with_keys=with_keys))
|
||||
|
||||
|
||||
def _nested_lookup(key, document, wild=False, with_keys=False):
|
||||
"""Lookup a key in a nested document, yield a value"""
|
||||
if isinstance(document, list):
|
||||
for d in document:
|
||||
for result in _nested_lookup(
|
||||
key, d, wild=wild, with_keys=with_keys
|
||||
):
|
||||
for result in _nested_lookup(key, d, wild=wild, with_keys=with_keys):
|
||||
yield result
|
||||
|
||||
if isinstance(document, dict):
|
||||
|
|
@ -32,15 +26,11 @@ def _nested_lookup(key, document, wild=False, with_keys=False):
|
|||
else:
|
||||
yield v
|
||||
elif isinstance(v, dict):
|
||||
for result in _nested_lookup(
|
||||
key, v, wild=wild, with_keys=with_keys
|
||||
):
|
||||
for result in _nested_lookup(key, v, wild=wild, with_keys=with_keys):
|
||||
yield result
|
||||
elif isinstance(v, list):
|
||||
for d in v:
|
||||
for result in _nested_lookup(
|
||||
key, d, wild=wild, with_keys=with_keys
|
||||
):
|
||||
for result in _nested_lookup(key, d, wild=wild, with_keys=with_keys):
|
||||
yield result
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class TestNestedLookup(TestCase):
|
|||
def test_wild_nested_lookup(self):
|
||||
results = nested_lookup(
|
||||
key = 'mail',
|
||||
document=self.subject_dict2,
|
||||
document = self.subject_dict2
|
||||
wild = True,
|
||||
)
|
||||
self.assertEqual(4, len(results))
|
||||
|
|
@ -67,10 +67,7 @@ class TestNestedLookup(TestCase):
|
|||
self.assertIn('email_address', matches)
|
||||
self.assertIn('secondary_email', matches)
|
||||
self.assertIn('EMAIL_RECOVERY', matches)
|
||||
self.assertSetEqual(
|
||||
{'test1@example.com', 'test4@example.com'},
|
||||
set(matches['email_address'])
|
||||
)
|
||||
self.assertSetEqual({'test1@example.com','test4@example.com'}, set(matches['email_address']))
|
||||
self.assertIn('test2@example.com', matches['secondary_email'])
|
||||
|
||||
def test_nested_lookup_with_keys(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue