first run of a documentation to describe the use of the various fields

This commit is contained in:
Hartmut Seichter 2024-05-19 14:03:41 +02:00
parent 7c73d3b5f6
commit 18df4d059e
2 changed files with 57 additions and 7 deletions

View file

@ -8,11 +8,11 @@ class Schema:
def keys(self):
return self.__schema.keys()
def get_template(self,field,lang='de'):
if 'template' in self.__schema[field]:
return self.__schema[field]['template'][lang]
else:
return "$value"
# def get_template(self,field,lang='de'):
# if 'template' in self.__schema[field]:
# return self.__schema[field]['template'][lang]
# else:
# return "$value"
def is_translatable(self,field):
if 'translatable' in self.__schema[field]:
@ -114,14 +114,20 @@ class Schema:
# return table_items
def get_value(self,meta,field,lang):
"""treats receiving the value like a variant,
return values are language specific"""
"""
treats receiving the value like a variant,
returns values with their language specific representations
"""
match self.__schema[field]['type']:
case 'str': return meta[field][lang] if self.is_translatable(field) else meta[field]['value']
case 'enum' | 'int' | 'num' | 'multikey' : return meta[field]['value']
case 'multinum': return meta[field]['value'] if hasattr(meta[field]['value'],'__iter__') else (meta[field]['value'],) # force list!
def to_list_of_dict(self,meta,fields,lang):
"""
generates a list of dict which can easily be converted
to a pandas dataframe
"""
# list comprehension for rows
return [{'field' : field, # field name
'lang' : lang, # language shortcode
@ -139,6 +145,9 @@ class Schema:
def to_list_of_tuple(self,meta,fields,lang):
"""
generates a list of tuples with a label and value (text)
this is usually consumed by a Markdown generator
todo: needs deuglyfication of free standing loop, templates are possible for all
"""
list = []
for r in self.to_list_of_dict(meta,fields,lang):