47 lines
1.9 KiB
Python
47 lines
1.9 KiB
Python
def create_default_config_from_type_config(type_config):
|
|
"""
|
|
Creëert een dictionary met standaardwaarden gebaseerd op een typedefinitie configuratie.
|
|
|
|
Args:
|
|
type_config (dict): Het configuration-veld van een typedefinitie (bijv. uit processor_types).
|
|
|
|
Returns:
|
|
dict: Een dictionary met de naam van ieder veld als sleutel en de standaardwaarde als waarde.
|
|
Alleen velden met een standaardwaarde of die verplicht zijn, worden opgenomen.
|
|
|
|
Voorbeeld:
|
|
>>> config = PROCESSOR_TYPES["HTML_PROCESSOR"]["configuration"]
|
|
>>> create_default_config_from_type_def(config)
|
|
{'html_tags': 'p, h1, h2, h3, h4, h5, h6, li, table, thead, tbody, tr, td',
|
|
'html_end_tags': 'p, li, table',
|
|
'html_excluded_classes': '',
|
|
'html_excluded_elements': 'header, footer, nav, script',
|
|
'html_included_elements': 'article, main',
|
|
'chunking_heading_level': 2}
|
|
"""
|
|
if not type_config:
|
|
return {}
|
|
|
|
default_config = {}
|
|
|
|
for field_name, field_def in type_config.items():
|
|
# Als het veld een standaardwaarde heeft, voeg deze toe
|
|
if "default" in field_def:
|
|
default_config[field_name] = field_def["default"]
|
|
# Als het veld verplicht is maar geen standaardwaarde heeft, voeg een lege string toe
|
|
elif field_def.get("required", False):
|
|
# Kies een geschikte "lege" waarde op basis van het type
|
|
field_type = field_def.get("type", "string")
|
|
if field_type == "string":
|
|
default_config[field_name] = ""
|
|
elif field_type == "integer":
|
|
default_config[field_name] = 0
|
|
elif field_type == "boolean":
|
|
default_config[field_name] = False
|
|
elif field_type == "color":
|
|
default_config[field_name] = "#000000"
|
|
else:
|
|
default_config[field_name] = ""
|
|
|
|
return default_config
|