]> AND Private Git Repository - myo-class.git/blob - regularjson.py
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
fa89890474bc8079a510dc77b6b43746f061c917
[myo-class.git] / regularjson.py
1 """
2 by @res
3
4 1) Read -R json_GT* and recup "Feature Refs" & labels (0: Infarctus, 1: No
5 2) store "Feature Refs" & labels
6     Format:
7         {
8             nb_infarct: 2,
9             infarcts: [],
10             no_infarcts: [],
11         }
12 """
13 from os import listdir as ls
14 from os.path import getsize as size, join
15 from pprint import pprint
16
17
18 # constants
19 # json
20 #   |--> json_GT
21 #   |--> json_GT_part2
22 RT_PATH = '../../Data/json/'
23 JSON_GTS = ['json_GT', 'json_GT_part2']
24 INFA_STR = 'Infa'
25
26 # Globals
27 featurerefs = []
28 labellist = []
29 details = []
30
31 from os.path import isfile, join
32
33 def search(path, name, recursive=True, fsize=True):
34     """
35     :param path:
36     :param name:
37     :param recursive: Recursive or not
38     :param fsize: show the size of not
39     :return: {path: p, size: None}
40     """
41     for d in ls(path):
42         p = join(path, d)
43         if name in d:
44             return {'path': p, 'size': size(p) if fsize else None}
45         elif recursive and not isfile(p):# only enter if it's a directory
46             res = search(p, name)# stop if found
47             if res:
48                 return res
49
50 def merge(dirlist, root='', indice='Case'):
51     l = []
52     for d in dirlist:
53         l += [e for e in ls(join(root, d)) if indice in e]
54
55     return sorted(l)
56
57 def mergejsons():
58     return merge(JSON_GTS, RT_PATH)
59
60 def featurerefs():
61     """
62         fill l with features references
63         use JSON_GTS, a little bit static in this sens
64     :return:
65     """
66     global featurerefs
67     # for d in JSON_GTS:
68     #     #frefs += ls(RT_PATH + d)
69     #     featurerefs += [e for e in ls(join(RT_PATH, d)) if "Case" in e]
70
71     featurerefs = sorted(mergejsons())
72
73 def label(fref):
74     res = search(RT_PATH, fref)
75     b = search(res['path'], INFA_STR)
76     return (0, b['size']) if b else (1, None)
77
78 def labels():
79     global labellist, details
80     for name in featurerefs:
81         lab, detail = label(name)
82         labellist.append(lab)
83         details.append(detail)
84
85
86
87 if __name__ == '__main__':
88     featurerefs()
89     labels()
90
91     print('featurerefs:', len(featurerefs), featurerefs)
92     print('labels:', len(labellist), labellist)
93     print('details:', len(details), details)
94
95     # print( label('Case_02') )
96     # print( search(RT_PATH, INFA_STR) )
97
98
99