Completed
Push — master ( 773bd5...07cee1 )
by Chris
01:13
created

filter_list()   A

Complexity

Conditions 2

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
c 0
b 0
f 0
dl 0
loc 12
rs 9.4285
1
"""Filters for working with data structures, munging, etc..."""
2
3
4
def filter_list(lst, vals):
5
    """Filter a list by vals.
6
7
    Args:
8
        lst (dict): The dictionary to filter.
9
10
    Returns:
11
        string (dict): The filtered dict.
12
    """
13
    if any([not lst, not isinstance(lst, list), not isinstance(vals, list)]):
14
        return lst
15
    return list(set(lst).difference(set(vals)))
16
17
18
def filter_vals(obj, vals):
19
    """Filter a dictionary by values.
20
21
    Args:
22
        obj (dict): The dictionary to filter.
23
24
    Returns:
25
        obj (dict): The filtered dict.
26
    """
27
    if obj is None or not isinstance(vals, list):
28
        return obj
29
    newdict = {}
30
    for k, v in obj.items():
31
        if v in vals:
32
            continue
33
        newdict[k] = v
34
    return newdict
35
36
37
def filter_keys(obj, keys):
38
    """Filter a dictionary by keys.
39
40
    Args:
41
        obj (dict): The dictionary to filter.
42
43
    Returns:
44
        obj (dict): The filtered dict.
45
    """
46
    if obj is None or not isinstance(keys, list):
47
        return obj
48
    newdict = {}
49
    for k, v in obj.items():
50
        if k in keys:
51
            continue
52
        newdict[k] = v
53
    return newdict
54