source: mauRepo/MolesManager/trunk/src/ascore/utils.py @ 8194

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/MolesManager/trunk/src/ascore/utils.py@8194
Revision 8194, 1.1 KB checked in by mnagni, 8 years ago (diff)

Complete - # 22397: CEDA Observation geographicExtent
 http://team.ceda.ac.uk/trac/ceda/ticket/22397
Incomplete - # 22399: CEDA Observation - permission
 http://team.ceda.ac.uk/trac/ceda/ticket/22399

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    try:
16        return hash(tuple(_convertCollectionToList(tupleToHash)))
17    except Exception as e:
18        print e
19
20def _convertCollectionToList(tupleToHash, processedItems = []): 
21    toHash = []
22    for item in tupleToHash:
23        if item in processedItems:
24            continue
25        processedItems.append(item)
26        if type(item) == tuple or type(item) == list:
27            for innerItem in item:
28                toHash.extend(_convertCollectionToList(innerItem, processedItems))
29        elif type(item) == dict:
30            for innerItem in item.keys():
31                toHash.extend(_convertCollectionToList(innerItem, processedItems))
32            for innerItem in item.values():
33                toHash.extend(_convertCollectionToList(innerItem, processedItems))
34        else:
35            toHash.append(item)
36    return toHash
Note: See TracBrowser for help on using the repository browser.