enum method working
This commit is contained in:
parent
0efcea4879
commit
833f0bdf4c
5 changed files with 22 additions and 37 deletions
|
@ -122,43 +122,27 @@ class Schema:
|
|||
return meta[field]['value']
|
||||
|
||||
def get_enum(self,meta,field,lang):
|
||||
vv = meta[field]['value']
|
||||
return self.__schema[field]['values'][vv][lang]
|
||||
|
||||
def get_num(self,meta,field,lang):
|
||||
return meta[field]['value']
|
||||
|
||||
# if self.needs_spec(field):
|
||||
|
||||
# t = string.Template(self.get_template(field=field,lang=lang))
|
||||
|
||||
# spec = meta[field]['spec'][lang]
|
||||
|
||||
# return [self.process_label(field,lang),t.substitute({'value': enum_val,'spec': spec})]
|
||||
# else:
|
||||
# return [self.process_label(field,lang),enum_val]
|
||||
|
||||
|
||||
enum_val = meta[field]['value']
|
||||
return self.__schema[field]['values'][ enum_val ][lang]
|
||||
|
||||
def get_value(self,meta,field,lang):
|
||||
"""treats receiving the value like a variant,
|
||||
return values are language specific"""
|
||||
match self.__schema[field]['type']:
|
||||
case 'str': return self.get_str(meta,field,lang)
|
||||
case 'enum': return self.get_enum(meta,field,lang)
|
||||
case 'int' | 'num' : return self.get_num(meta,field,lang)
|
||||
case 'int' | 'num' : return meta[field]['value']
|
||||
case 'multinum' : return meta[field]['value']
|
||||
|
||||
|
||||
def process_raw(self,meta,fields,lang):
|
||||
|
||||
items = [{'field' : field,
|
||||
'lang' : lang,
|
||||
'type' : self.__schema[field]['type'],
|
||||
'label' : self.process_label(field,lang),
|
||||
'value' : self.get_value(meta,field,lang)
|
||||
|
||||
def to_dataframe(self,meta,fields,lang):
|
||||
# list comprehension for rows
|
||||
return [{'field' : field, # field name
|
||||
'lang' : lang, # language shortcode
|
||||
'type' : self.__schema[field]['type'], # datatype
|
||||
'label' : self.process_label(field,lang), # label
|
||||
'value' : self.get_value(meta,field,lang), # actual value
|
||||
'template' : self.__schema[field]['template'][lang] if 'template' in self.__schema[field] else None,
|
||||
# getting crazy with nested dict comprehension
|
||||
'enum_values' : { k:v[lang] for (k,v) in self.__schema[field]['values'].items()} if 'enum' in self.__schema[field]['type'] else None
|
||||
}
|
||||
for field in fields]
|
||||
|
||||
|
||||
# maybe return tableitems as np.Dataframe?
|
||||
return items
|
Loading…
Add table
Add a link
Reference in a new issue