serJD commited on
Commit
ce5c617
·
verified ·
1 Parent(s): 7993a9d

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +88 -88
utils.py CHANGED
@@ -127,101 +127,101 @@ def parse_invalid_json(json_string):
127
  return None
128
 
129
  def notionTable2JSON(databaseFUll_pages, kpi_database_pages):
130
- attributeMetaData = {}
131
- availableAttributes = {}
132
 
133
- cnt = 0
134
- # skip if isUsed == False
135
- for page in databaseFUll_pages:
136
- curAttrName = get_property_value(page, "name")
137
- print(curAttrName)
138
- lev1 = get_property_value(page, "level_1")
139
- lev2 = get_property_value(page, "level_2")
140
- lev3= get_property_value(page, "level_3")
141
 
142
 
143
- try:
144
- if get_property_value(page, "isUsed") == "False" or get_property_value(page, "isUsed") == "false" or get_property_value(page, "isUsed") == False:
145
- # skip attribute
146
- continue
147
- except:
148
- pass
149
-
150
- if lev1 != None and lev1 != "NA":
151
- if lev1 not in availableAttributes:
152
- availableAttributes[lev1] = {"sub-levels": {}, "values": []}
153
-
154
- if lev2 != None and lev2 != "NA":
155
- if lev2 not in availableAttributes[lev1]["sub-levels"]:
156
- availableAttributes[lev1]["sub-levels"][lev2] = {"sub-levels": {}, "values": []}
157
 
158
- if lev3 != None and lev3 != "NA":
159
- if lev3 not in availableAttributes[lev1]["sub-levels"][lev2]["sub-levels"]:
160
- availableAttributes[lev1]["sub-levels"][lev2]["sub-levels"][lev3] = {"values": []}
161
- availableAttributes[lev1]["sub-levels"][lev2]["sub-levels"][lev3]["values"].append(curAttrName)
 
 
 
 
 
 
 
 
 
 
162
  else:
163
- availableAttributes[lev1]["sub-levels"][lev2]["values"].append(curAttrName)
164
- else:
165
- availableAttributes[lev1]["values"].append(curAttrName)
166
-
167
- # attributeMetadata
168
- attributeData = {
169
- "name": get_property_value(page, "name"),
170
- "nameShort": get_property_value(page, "nameShort"),
171
- "nameLong": get_property_value(page, "nameLong"),
172
- "description": get_property_value(page, "description"),
173
- "indicator": get_property_value(page, "indicator"),
174
- "unit": get_property_value(page, "unit"),
175
- "unitShort": get_property_value(page, "unitShort"),
176
- "spatialUnit": get_property_value(page, "spatialUnit"),
177
- "method": get_property_value(page, "method"),
178
- "type": get_property_value(page, "type"),
179
- "colorMapping": parse_invalid_json(get_property_value(page, "colorMapping")),
180
- "parameter": parse_invalid_json(get_property_value(page, "parameter")),
181
- "level_1": get_property_value(page, "level_1"),
182
- "level_2": get_property_value(page, "level_2"),
183
- "level_3": get_property_value(page, "level_3"),
184
- "isUsed": get_property_value(page, "isUsed"),
185
- "dataType": get_property_value(page, "dataType"),
186
-
187
- "dataSet": "NA",
188
- "dataSource": "NA",
189
- "isWeight": get_property_value(page, "isWeight"),
190
-
191
- "KPI": [],
192
- "visualisation": []
193
- }
194
-
195
- try:
196
- attributeData["categoryData"] = parse_invalid_json(get_property_value(page, "categoryData"))
197
- except:
198
- attributeData["categoryData"]= "NA"
199
-
200
-
201
- # iterated through list of KPI ref. Ids
202
- kpiIDs = get_property_value(page, "KPI")
203
- for kpiID in kpiIDs:
204
- curKPI = get_page_by_id(kpi_database_pages, kpiID)
205
- KPI_template ={
206
- "name":get_property_value(curKPI, "name"),
207
- "type":get_property_value(curKPI, "type"),
208
- "unit":get_property_value(curKPI, "unit"),
209
- "color":parse_invalid_json(get_property_value(curKPI, "color")),
210
- "nameShort": get_property_value(curKPI, "nameShort"),
211
- "quality":get_property_value(curKPI, "quality"),
212
- "args": parse_invalid_json(get_property_value(curKPI, "args")),
213
- "description":get_property_value(curKPI, "description"),
214
- "interpretrationHigh":get_property_value(curKPI, "interpretrationHigh"),
215
- "interpretationLow":get_property_value(curKPI, "interpretationLow"),
216
  }
217
- # add KPI data to attributeData
218
- attributeData["KPI"].append(KPI_template)
219
-
220
- # add to main dictioanry
221
- attributeMetaData[get_property_value(page, "name")] = attributeData
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
222
 
223
- print("processed pages:", cnt)
224
- return attributeMetaData, availableAttributes
225
 
226
 
227
  def get_page_by_id(notion_db_pages, page_id):
 
127
  return None
128
 
129
  def notionTable2JSON(databaseFUll_pages, kpi_database_pages):
130
+ attributeMetaData = {}
131
+ availableAttributes = {}
132
 
133
+ cnt = 0
134
+ # skip if isUsed == False
135
+ for page in databaseFUll_pages:
136
+ curAttrName = get_property_value(page, "name")
137
+ print(curAttrName)
138
+ lev1 = get_property_value(page, "level_1")
139
+ lev2 = get_property_value(page, "level_2")
140
+ lev3= get_property_value(page, "level_3")
141
 
142
 
143
+ try:
144
+ if get_property_value(page, "isUsed") == "False" or get_property_value(page, "isUsed") == "false" or get_property_value(page, "isUsed") == False:
145
+ # skip attribute
146
+ continue
147
+ except:
148
+ pass
 
 
 
 
 
 
 
 
149
 
150
+ if lev1 != None and lev1 != "NA":
151
+ if lev1 not in availableAttributes:
152
+ availableAttributes[lev1] = {"sub-levels": {}, "values": []}
153
+
154
+ if lev2 != None and lev2 != "NA":
155
+ if lev2 not in availableAttributes[lev1]["sub-levels"]:
156
+ availableAttributes[lev1]["sub-levels"][lev2] = {"sub-levels": {}, "values": []}
157
+
158
+ if lev3 != None and lev3 != "NA":
159
+ if lev3 not in availableAttributes[lev1]["sub-levels"][lev2]["sub-levels"]:
160
+ availableAttributes[lev1]["sub-levels"][lev2]["sub-levels"][lev3] = {"values": []}
161
+ availableAttributes[lev1]["sub-levels"][lev2]["sub-levels"][lev3]["values"].append(curAttrName)
162
+ else:
163
+ availableAttributes[lev1]["sub-levels"][lev2]["values"].append(curAttrName)
164
  else:
165
+ availableAttributes[lev1]["values"].append(curAttrName)
166
+
167
+ # attributeMetadata
168
+ attributeData = {
169
+ "name": get_property_value(page, "name"),
170
+ "nameShort": get_property_value(page, "nameShort"),
171
+ "nameLong": get_property_value(page, "nameLong"),
172
+ "description": get_property_value(page, "description"),
173
+ "indicator": get_property_value(page, "indicator"),
174
+ "unit": get_property_value(page, "unit"),
175
+ "unitShort": get_property_value(page, "unitShort"),
176
+ "spatialUnit": get_property_value(page, "spatialUnit"),
177
+ "method": get_property_value(page, "method"),
178
+ "type": get_property_value(page, "type"),
179
+ "colorMapping": parse_invalid_json(get_property_value(page, "colorMapping")),
180
+ "parameter": parse_invalid_json(get_property_value(page, "parameter")),
181
+ "level_1": get_property_value(page, "level_1"),
182
+ "level_2": get_property_value(page, "level_2"),
183
+ "level_3": get_property_value(page, "level_3"),
184
+ "isUsed": get_property_value(page, "isUsed"),
185
+ "dataType": get_property_value(page, "dataType"),
186
+
187
+ "dataSet": "NA",
188
+ "dataSource": "NA",
189
+ "isWeight": get_property_value(page, "isWeight"),
190
+
191
+ "KPI": [],
192
+ "visualisation": []
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  }
194
+
195
+ try:
196
+ attributeData["categoryData"] = parse_invalid_json(get_property_value(page, "categoryData"))
197
+ except:
198
+ attributeData["categoryData"]= "NA"
199
+
200
+
201
+ # iterated through list of KPI ref. Ids
202
+ kpiIDs = get_property_value(page, "KPI")
203
+ for kpiID in kpiIDs:
204
+ curKPI = get_page_by_id(kpi_database_pages, kpiID)
205
+ KPI_template ={
206
+ "name":get_property_value(curKPI, "name"),
207
+ "type":get_property_value(curKPI, "type"),
208
+ "unit":get_property_value(curKPI, "unit"),
209
+ "color":parse_invalid_json(get_property_value(curKPI, "color")),
210
+ "nameShort": get_property_value(curKPI, "nameShort"),
211
+ "quality":get_property_value(curKPI, "quality"),
212
+ "args": parse_invalid_json(get_property_value(curKPI, "args")),
213
+ "description":get_property_value(curKPI, "description"),
214
+ "interpretrationHigh":get_property_value(curKPI, "interpretrationHigh"),
215
+ "interpretationLow":get_property_value(curKPI, "interpretationLow"),
216
+ }
217
+ # add KPI data to attributeData
218
+ attributeData["KPI"].append(KPI_template)
219
+
220
+ # add to main dictioanry
221
+ attributeMetaData[get_property_value(page, "name")] = attributeData
222
 
223
+ print("processed pages:", cnt)
224
+ return attributeMetaData, availableAttributes
225
 
226
 
227
  def get_page_by_id(notion_db_pages, page_id):