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'})