Skip to content
Snippets Groups Projects
dictUtility.py 1.3 KiB
Newer Older
#!/usr/bin/env python

import copy

class DictUtility:

    @classmethod
    def deepCopy(cls, dict, includeKeys=[], excludeKeys=[]):
        dict2 = {}
        if len(includeKeys):
            for key in includeKeys:
                value = dict.get(key)
                if value is not None:
                    dict2[key] = copy.deepcopy(value)
        elif len(excludeKeys):
            for key in dict.keys():
                if key not in excludeKeys:
                    dict2[key] = copy.deepcopy(dict[key])
        else:
            dict2 = copy.deepcopy(dict)
        return dict2

    @classmethod
    def deepCopy2(cls, dict, includeKeys=[], excludeKeys=[]):
        dict2 = copy.deepcopy(dict)
        if len(includeKeys):
            for key in dict2.keys():
                if not key in includeKeys:
                    del dict2[key]
        elif len(excludeKeys):
            for key in excludeKeys:
                if dict2.has_key(key):
                    del dict2[key]
        return dict2

#######################################################################
# Testing.
if __name__ == '__main__':
    print DictUtility.deepCopy({'k1': '1', 'k2' : '2'}, excludeKeys=['k1'])
    print  DictUtility.deepCopy({'k1': '1', 'k2' : '2'}, includeKeys=['k1'])
    print  DictUtility.deepCopy({'k1': '1', 'k2' : '2'})