From 681c3d11b4fc02c416467d074ef0b4d84bf0cdab Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Sat, 8 Jun 2024 00:54:56 +0200 Subject: config.yml: Allow configuration setting at the layer root. We'll need that for layer creation (description, fields, creation options, etc.). --- common.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'common.py') diff --git a/common.py b/common.py index 67ab208..3eb8a3e 100644 --- a/common.py +++ b/common.py @@ -42,11 +42,18 @@ def load_config(path=None, groupnames=None): # validate sources destinations = {} - for name, layer in layers.items(): - if isinstance(layer, dict): - layers[name] = layer = [layer] - - for sourcedef in layer: + for name, layerdefs in layers.items(): + if isinstance(layerdefs, dict) and 'sources' not in layerdefs: + layers[name] = { 'sources': [layerdefs] } + for k in ['description', 'create']: + if k in layerdefs: + layers[name][k] = layerdefs.pop(k) + layerdefs = layers[name] + + if 'sources' not in layerdefs: + raise Exception(f'Layer "{name}" does not have any source receipe') + + for sourcedef in layerdefs.get('sources', []): source = sourcedef.get('source', None) if source is None: continue -- cgit v1.2.3