disable old processing code

This commit is contained in:
Hartmut Seichter 2024-05-19 10:03:00 +02:00
parent 1381c37500
commit 7c73d3b5f6
4 changed files with 89 additions and 93 deletions

View file

@ -26,92 +26,92 @@ class Schema:
else:
return False
def process_label(self,field,lang='de'):
# processes the label of a field item
return self.__schema[field]['label'][lang]
# def process_label(self,field,lang='de'):
# # processes the label of a field item
# return self.__schema[field]['label'][lang]
def process_str(self,meta,field,lang='de'):
if self.is_translatable(field):
return [self.process_label(field,lang),meta[field][lang]]
else:
if not 'value' in meta[field]:
raise AssertionError(field,'incomplete')
# def process_str(self,meta,field,lang='de'):
# if self.is_translatable(field):
# return [self.process_label(field,lang),meta[field][lang]]
# else:
# if not 'value' in meta[field]:
# raise AssertionError(field,'incomplete')
return [self.process_label(field,lang),meta[field]['value']]
# return [self.process_label(field,lang),meta[field]['value']]
def process_enum(self,meta,field,lang='de'):
"""
enum have a specification 'specs' option
that can be forced by the scheme
"""
vv = meta[field]['value']
enum_val = self.__schema[field]['values'][vv][lang]
# def process_enum(self,meta,field,lang='de'):
# """
# enum have a specification 'specs' option
# that can be forced by the scheme
# """
# vv = meta[field]['value']
# enum_val = self.__schema[field]['values'][vv][lang]
if self.needs_spec(field):
# if self.needs_spec(field):
t = string.Template(self.get_template(field=field,lang=lang))
# t = string.Template(self.get_template(field=field,lang=lang))
spec = meta[field]['spec'][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]
# return [self.process_label(field,lang),t.substitute({'value': enum_val,'spec': spec})]
# else:
# return [self.process_label(field,lang),enum_val]
def process_num(self,meta,field,lang='de'):
v = meta[field]['value']
t = string.Template(self.get_template(field,lang))
return [self.process_label(field,lang),t.substitute({'value' : v})]
# def process_num(self,meta,field,lang='de'):
# v = meta[field]['value']
# t = string.Template(self.get_template(field,lang))
# return [self.process_label(field,lang),t.substitute({'value' : v})]
def process_multinum(self,meta,field,lang='de'):
"""multinums have various values"""
v = meta[field]['value']
t = string.Template(self.get_template(field,lang))
if hasattr(v, "__len__"):
vv = [t.substitute({'value' : ev}) for ev in v]
return [self.process_label(field,lang),', '.join(vv)]
else:
return self.process_num(meta=meta,field=field,lang=lang)
# def process_multinum(self,meta,field,lang='de'):
# """multinums have various values"""
# v = meta[field]['value']
# t = string.Template(self.get_template(field,lang))
# if hasattr(v, "__len__"):
# vv = [t.substitute({'value' : ev}) for ev in v]
# return [self.process_label(field,lang),', '.join(vv)]
# else:
# return self.process_num(meta=meta,field=field,lang=lang)
def process_multikey(self,meta,field,lang='de'):
"""
multikey need to assign a numeric value to a key
"""
vs = meta[field]['value']
t = string.Template(self.get_template(field,lang))
# def process_multikey(self,meta,field,lang='de'):
# """
# multikey need to assign a numeric value to a key
# """
# vs = meta[field]['value']
# t = string.Template(self.get_template(field,lang))
k = self.process_label(field,lang)
# k = self.process_label(field,lang)
parts = []
# parts = []
for e in vs:
kk = self.__schema[field]['keys'][e][lang]
parts.append(t.substitute({'key': kk, 'value' : vs[e]}))
# for e in vs:
# kk = self.__schema[field]['keys'][e][lang]
# parts.append(t.substitute({'key': kk, 'value' : vs[e]}))
return [k,', '.join(parts)]
# return [k,', '.join(parts)]
def process(self,meta,fields,lang):
# def process(self,meta,fields,lang):
table_items = []
# table_items = []
# iterate over requested fields
for field in fields:
try:
# correlate with schema and append
match self.__schema[field]['type']:
case 'str': table_items.append(self.process_str(meta,field,lang))
case 'enum': table_items.append(self.process_enum(meta,field,lang))
case 'int' | 'num' : table_items.append(self.process_num(meta,field,lang))
case 'multinum' : table_items.append(self.process_multinum(meta,field,lang))
case 'multikey': table_items.append(self.process_multikey(meta,field,lang))
case _: raise ValueError
except Exception as exp:
print(field,' not resolvable in ',self.__schema,exp)
# # iterate over requested fields
# for field in fields:
# try:
# # correlate with schema and append
# match self.__schema[field]['type']:
# case 'str': table_items.append(self.process_str(meta,field,lang))
# case 'enum': table_items.append(self.process_enum(meta,field,lang))
# case 'int' | 'num' : table_items.append(self.process_num(meta,field,lang))
# case 'multinum' : table_items.append(self.process_multinum(meta,field,lang))
# case 'multikey': table_items.append(self.process_multikey(meta,field,lang))
# case _: raise ValueError
# except Exception as exp:
# print(field,' not resolvable in ',self.__schema,exp)
# maybe return tableitems as np.Dataframe?
return table_items
# # maybe return tableitems as np.Dataframe?
# return table_items
def get_value(self,meta,field,lang):
"""treats receiving the value like a variant,
@ -126,7 +126,7 @@ class Schema:
return [{'field' : field, # field name
'lang' : lang, # language shortcode
'type' : self.__schema[field]['type'], # datatype
'label' : self.process_label(field,lang), # label
'label' : self.__schema[field]['label'][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
@ -137,7 +137,9 @@ class Schema:
for field in fields]
def to_list_of_tuple(self,meta,fields,lang):
# generate a list of tuples with key and value (text)
"""
generates a list of tuples with a label and value (text)
"""
list = []
for r in self.to_list_of_dict(meta,fields,lang):
match r['type']: