Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/MolesManager/trunk/src/ascore/utils.py@8194
Line | |
---|
1 | ''' |
---|
2 | Created on 6 Feb 2012 |
---|
3 | |
---|
4 | @author: mnagni |
---|
5 | ''' |
---|
6 | def 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 | |
---|
14 | def collectionProofHash(tupleToHash): |
---|
15 | try: |
---|
16 | return hash(tuple(_convertCollectionToList(tupleToHash))) |
---|
17 | except Exception as e: |
---|
18 | print e |
---|
19 | |
---|
20 | def _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.