Skip to content

Commit 7433b19

Browse files
committed
WIP: refactoring how compound metadata fields are handled
1 parent 9341843 commit 7433b19

1 file changed

Lines changed: 47 additions & 43 deletions

File tree

reports/dataset.py

Lines changed: 47 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -184,33 +184,26 @@ def get_value_recursive(self, valuesString, field):
184184
self.logger.debug("New value of valuesString: %s", str(valuesString))
185185
return valuesString
186186
elif field['typeClass'] == 'compound':
187+
self.logger.debug("Looking at single compound field...")
187188
subValue = ''
188189
if isinstance(field['value'], list):
189190
for value in field['value']:
190-
if isinstance(value, str):
191-
self.logger.debug("Value: %s", value)
192-
for key, elements in value.items():
193-
if not elements['multiple']:
194-
subValue += elements['value']
195-
else:
196-
subValue += self.get_value_recursive(valuesString, subValue, elements['value'])
197-
198-
self.logger.debug("New subValue: %s", subValue)
199-
subValue += " - "
200-
201-
valuesString += subValue + " ; "
191+
compoundValue = self.create_compound_value(value)
192+
if compoundValue.endswith(' - '):
193+
compoundValue = compoundValue[:-len(' - ')]
194+
self.logger.debug("New compoundValue: %s", compoundValue)
195+
196+
valuesString += compoundValue + " ; "
202197
else:
198+
self.logger.debug("Compound field has single value")
203199
value = field['value']
204-
for key, elements in value.items():
205-
if not elements['multiple']:
206-
subValue += elements['value']
207-
else:
208-
subValue += self.get_value_recursive(valuesString, subValue, elements['value'])
209-
210-
self.logger.debug("New subValue: %s", subValue)
211-
subValue += " - "
212200

213-
valuesString += subValue + " ; "
201+
compoundValue = self.create_compound_value(value)
202+
if compoundValue.endswith(' - '):
203+
compoundValue = compoundValue[:-len(' - ')]
204+
self.logger.debug("New compoundValue: %s", compoundValue)
205+
206+
valuesString += compoundValue + " ; "
214207

215208
if valuesString.endswith(' ; '):
216209
valuesString = valuesString[:-len(' ; ')]
@@ -236,33 +229,26 @@ def get_value_recursive(self, valuesString, field):
236229
self.logger.debug("New value of valuesString: %s", str(valuesString))
237230
return valuesString
238231
elif field['typeClass'] == 'compound':
239-
subValue = ''
232+
self.logger.debug("Looking at multiple compound field...")
233+
compoundValue = ''
240234
if isinstance(field['value'], list):
241235
for value in field['value']:
242-
if isinstance(value, str):
243-
self.logger.debug("Value: %s", value)
244-
for key, elements in value.items():
245-
if not elements['multiple']:
246-
subValue += elements['value']
247-
else:
248-
subValue += self.get_value_recursive(valuesString, subValue, elements['value'])
249-
250-
self.logger.debug("New subValue: %s", subValue)
251-
subValue += " - "
252-
253-
valuesString += subValue + " ; "
236+
compoundValue = self.create_compound_value(value)
237+
if compoundValue.endswith(' - '):
238+
compoundValue = compoundValue[:-len(' - ')]
239+
self.logger.debug("New compoundValue: %s", compoundValue)
240+
241+
valuesString += compoundValue + " ; "
254242
else:
243+
self.logger.debug("Compound field has single value")
255244
value = field['value']
256-
for key, elements in value.items():
257-
if not elements['multiple']:
258-
subValue += elements['value']
259-
else:
260-
subValue += self.get_value_recursive(valuesString, subValue, elements['value'])
261-
262-
self.logger.debug("New subValue: %s", subValue)
263-
subValue += " - "
264245

265-
valuesString += subValue + " ; "
246+
compoundValue = self.create_compound_value(value)
247+
if compoundValue.endswith(' - '):
248+
compoundValue = compoundValue[:-len(' - ')]
249+
self.logger.debug("New compoundValue: %s", compoundValue)
250+
251+
valuesString += compoundValue + " ; "
266252

267253
if valuesString.endswith(' ; '):
268254
valuesString = valuesString[:-len(' ; ')]
@@ -271,6 +257,24 @@ def get_value_recursive(self, valuesString, field):
271257
else:
272258
self.logger.debug("Unrecognized typeClass: %s", field['typeClass'])
273259

260+
def create_compound_value(self, fields):
261+
self.logger.debug("Creating compound string...")
262+
263+
compoundValue = ''
264+
for key, elements in fields.items():
265+
if isinstance(elements['value'], str):
266+
compoundValue += elements['value'] + " - "
267+
else:
268+
self.logger.error("Compound object contains field with mulitple values.")
269+
270+
self.logger.info("New compound value: %s", compoundValue)
271+
272+
if compoundValue.endswith(' - '):
273+
compoundValue = compoundValue[:-len(' - ')]
274+
275+
self.logger.debug("Final compound string: " + compoundValue)
276+
return compoundValue
277+
274278
def get_last_month(self):
275279
now = datetime.datetime.now()
276280
previous = now.date().replace(day=1) - datetime.timedelta(days=1)

0 commit comments

Comments
 (0)