source: mauRepo/newmoonProject/trunk/project/xmi2rdbms/src/main/resources/ascore/utils.py @ 8174

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/newmoonProject/trunk/project/xmi2rdbms/src/main/resources/ascore/utils.py@8174
Revision 8174, 1.1 KB checked in by mnagni, 8 years ago (diff)
Line 
1'''
2Created on 6 Feb 2012
3
4@author: mnagni
5'''
6def has_value(item):
7    if item is not None:
8        if (isinstance(item, list) and len(item) > 0) or not isinstance(item, list):           
9            return True
10        else:
11            return False
12    return False
13
14def collectionProofHash(tupleToHash):
15    return hash(tuple(_convertCollectionToList(tupleToHash)))
16
17def _convertCollectionToList(tupleToHash, processedItems = []): 
18    toHash = []
19    for item in tupleToHash:
20        if item in processedItems:
21            continue
22        processedItems.append(item)
23        if type(item) == tuple or type(item) == list:
24            for innerItem in item:
25                toHash.extend(collectionProofHash(innerItem, processedItems))
26        elif type(item) == dict:
27            for innerItem in item.keys():
28                toHash.extend(collectionProofHash(innerItem, processedItems))
29            for innerItem in item.values():
30                toHash.extend(collectionProofHash(innerItem, processedItems))
31        else:
32            toHash.append(item)
33    return toHash
Note: See TracBrowser for help on using the repository browser.