New Feature (finding occurence) - typo correction
This commit is contained in:
parent
904a2b957d
commit
7692fc2754
4 changed files with 36 additions and 36 deletions
20
README.rst
20
README.rst
|
|
@ -8,7 +8,7 @@ A small Python library which enables:
|
||||||
|
|
||||||
#. key lookups on deeply nested documents.
|
#. key lookups on deeply nested documents.
|
||||||
#. fetching all keys from a nested dictionary.
|
#. fetching all keys from a nested dictionary.
|
||||||
#. get the number of occurances of a key/value from a nested dictionary
|
#. get the number of occurences of a key/value from a nested dictionary
|
||||||
|
|
||||||
Documents may be built out of dictionaries (dicts) and/or lists.
|
Documents may be built out of dictionaries (dicts) and/or lists.
|
||||||
|
|
||||||
|
|
@ -51,12 +51,12 @@ quick tutorial
|
||||||
>>> get_all_keys(document)
|
>>> get_all_keys(document)
|
||||||
['taco', 'salsa', 'burrito', 'taco']
|
['taco', 'salsa', 'burrito', 'taco']
|
||||||
|
|
||||||
>>> from nested_lookup import get_occurance_of_key, get_occurance_of_value
|
>>> from nested_lookup import get_occurence_of_key, get_occurence_of_value
|
||||||
|
|
||||||
>>> get_occurance_of_key(document, key='taco')
|
>>> get_occurence_of_key(document, key='taco')
|
||||||
2
|
2
|
||||||
|
|
||||||
>>> get_occurance_of_value(document, value='42')
|
>>> get_occurence_of_value(document, value='42')
|
||||||
1
|
1
|
||||||
|
|
||||||
longer tutorial
|
longer tutorial
|
||||||
|
|
@ -102,19 +102,19 @@ To get a list of every nested key in a document, run this:
|
||||||
|
|
||||||
['name', 'email_address', 'other', 'secondary_email', 'EMAIL_RECOVERY', 'email_address']
|
['name', 'email_address', 'other', 'secondary_email', 'EMAIL_RECOVERY', 'email_address']
|
||||||
|
|
||||||
To get the number of occurance of the given key/value
|
To get the number of occurence of the given key/value
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
from nested_lookup import get_occurance_of_key, get_occurance_of_value
|
from nested_lookup import get_occurence_of_key, get_occurence_of_value
|
||||||
|
|
||||||
no_of_key_occurance = get_occurance_of_key(my_document, key='email_address')
|
no_of_key_occurence = get_occurence_of_key(my_document, key='email_address')
|
||||||
|
|
||||||
print(no_of_key_occurance) # result => 2
|
print(no_of_key_occurence) # result => 2
|
||||||
|
|
||||||
no_of_value_occurance = get_occurance_of_value(my_document, value='test2@example.com')
|
no_of_value_occurence = get_occurence_of_value(my_document, value='test2@example.com')
|
||||||
|
|
||||||
print(no_of_value_occurance) # result => 1
|
print(no_of_value_occurence) # result => 1
|
||||||
|
|
||||||
Next, we could act `wild` and find all the email addresses like this:
|
Next, we could act `wild` and find all the email addresses like this:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
from .nested_lookup import nested_lookup, get_all_keys, get_occurance_of_key,\
|
from .nested_lookup import nested_lookup, get_all_keys, get_occurence_of_key,\
|
||||||
get_occurance_of_value
|
get_occurence_of_value
|
||||||
|
|
|
||||||
|
|
@ -64,50 +64,50 @@ def get_all_keys(dictionary):
|
||||||
return result_list
|
return result_list
|
||||||
|
|
||||||
|
|
||||||
def get_occurance_of_key(dictionary, key):
|
def get_occurence_of_key(dictionary, key):
|
||||||
"""
|
"""
|
||||||
Method to get occurance of a key in a nested dictionary
|
Method to get occurence of a key in a nested dictionary
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
dictionary: Nested dictionary
|
dictionary: Nested dictionary
|
||||||
key: Key to search for the occurances
|
key: Key to search for the occurences
|
||||||
Return:
|
Return:
|
||||||
Number of occurance (Integer)
|
Number of occurence (Integer)
|
||||||
"""
|
"""
|
||||||
return _get_occurrence(dictionary=dictionary, item='key', keyword=key)
|
return _get_occurrence(dictionary=dictionary, item='key', keyword=key)
|
||||||
|
|
||||||
|
|
||||||
def get_occurance_of_value(dictionary, value):
|
def get_occurence_of_value(dictionary, value):
|
||||||
"""
|
"""
|
||||||
Method to get occurance of a value in a nested dictionary
|
Method to get occurence of a value in a nested dictionary
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
dictionary: Nested dictionary
|
dictionary: Nested dictionary
|
||||||
value: Value to search for the occurances
|
value: Value to search for the occurences
|
||||||
Return:
|
Return:
|
||||||
Number of occurance (Integer)
|
Number of occurence (Integer)
|
||||||
"""
|
"""
|
||||||
return _get_occurrence(dictionary=dictionary, item='value', keyword=value)
|
return _get_occurrence(dictionary=dictionary, item='value', keyword=value)
|
||||||
|
|
||||||
|
|
||||||
def _get_occurrence(dictionary, item, keyword):
|
def _get_occurrence(dictionary, item, keyword):
|
||||||
"""
|
"""
|
||||||
Method to get occurance of a key or value in a nested dictionary
|
Method to get occurence of a key or value in a nested dictionary
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
dictionary: Nested dictionary
|
dictionary: Nested dictionary
|
||||||
item: Mostly (key or value)
|
item: Mostly (key or value)
|
||||||
keyword: key word to find occurance
|
keyword: key word to find occurence
|
||||||
Return:
|
Return:
|
||||||
Number of occurance of the given keyword in the dict
|
Number of occurence of the given keyword in the dict
|
||||||
"""
|
"""
|
||||||
occurance = [0]
|
occurence = [0]
|
||||||
|
|
||||||
def recrusion(dictionary):
|
def recrusion(dictionary):
|
||||||
if item == 'key':
|
if item == 'key':
|
||||||
occurance[0] += 1 if dictionary.get(keyword) else 0
|
occurence[0] += 1 if dictionary.get(keyword) else 0
|
||||||
elif keyword in dictionary.values():
|
elif keyword in dictionary.values():
|
||||||
occurance[0] += dictionary.values().count(keyword)
|
occurence[0] += dictionary.values().count(keyword)
|
||||||
for key, value in iteritems(dictionary):
|
for key, value in iteritems(dictionary):
|
||||||
if isinstance(value, dict):
|
if isinstance(value, dict):
|
||||||
recrusion(dictionary=value)
|
recrusion(dictionary=value)
|
||||||
|
|
@ -116,4 +116,4 @@ def _get_occurrence(dictionary, item, keyword):
|
||||||
recrusion(dictionary=list_items)
|
recrusion(dictionary=list_items)
|
||||||
|
|
||||||
recrusion(dictionary=dictionary)
|
recrusion(dictionary=dictionary)
|
||||||
return occurance[0]
|
return occurence[0]
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from nested_lookup import nested_lookup, get_all_keys, get_occurance_of_key,\
|
from nested_lookup import nested_lookup, get_all_keys, get_occurence_of_key,\
|
||||||
get_occurance_of_value
|
get_occurence_of_value
|
||||||
|
|
||||||
|
|
||||||
class TestNestedLookup(TestCase):
|
class TestNestedLookup(TestCase):
|
||||||
|
|
@ -161,7 +161,7 @@ class TestGetAllKeys(TestCase):
|
||||||
self.assertIn(key, result)
|
self.assertIn(key, result)
|
||||||
|
|
||||||
|
|
||||||
class TestGetOccurance(TestCase):
|
class TestGetOccurence(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.sample1 = {
|
self.sample1 = {
|
||||||
"build_version": {
|
"build_version": {
|
||||||
|
|
@ -218,21 +218,21 @@ class TestGetOccurance(TestCase):
|
||||||
}
|
}
|
||||||
|
|
||||||
def test_sample_data1(self):
|
def test_sample_data1(self):
|
||||||
result = get_occurance_of_key(self.sample1, 'build_version')
|
result = get_occurence_of_key(self.sample1, 'build_version')
|
||||||
self.assertEqual(4, result)
|
self.assertEqual(4, result)
|
||||||
result = get_occurance_of_value(self.sample1, '256 KB')
|
result = get_occurence_of_value(self.sample1, '256 KB')
|
||||||
self.assertEqual(2, result)
|
self.assertEqual(2, result)
|
||||||
|
|
||||||
def test_sample_data2(self):
|
def test_sample_data2(self):
|
||||||
result = get_occurance_of_key(self.sample2, 'core_details')
|
result = get_occurence_of_key(self.sample2, 'core_details')
|
||||||
self.assertEqual(1, result)
|
self.assertEqual(1, result)
|
||||||
result = get_occurance_of_value(self.sample2, '4')
|
result = get_occurence_of_value(self.sample2, '4')
|
||||||
self.assertEqual(3, result)
|
self.assertEqual(3, result)
|
||||||
|
|
||||||
def test_sample_data3(self):
|
def test_sample_data3(self):
|
||||||
result = get_occurance_of_key(self.sample3, 'total_number_of_cores')
|
result = get_occurence_of_key(self.sample3, 'total_number_of_cores')
|
||||||
self.assertEqual(3, result)
|
self.assertEqual(3, result)
|
||||||
result = get_occurance_of_value(self.sample3, '4')
|
result = get_occurence_of_value(self.sample3, '4')
|
||||||
self.assertEqual(3, result)
|
self.assertEqual(3, result)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue