first run of a documentation to describe the use of the various fields
This commit is contained in:
parent
7c73d3b5f6
commit
18df4d059e
2 changed files with 57 additions and 7 deletions
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue