From b7dc184aac26bf4f017552d82230a6eec5326f4f Mon Sep 17 00:00:00 2001
From: burri0000 <dominik.burri@unibas.ch>
Date: Wed, 14 Jul 2021 11:12:51 +0200
Subject: [PATCH] separate empty and erroneous optional field.

---
 workflow/Snakefile | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/workflow/Snakefile b/workflow/Snakefile
index 8ffa423..15faefd 100644
--- a/workflow/Snakefile
+++ b/workflow/Snakefile
@@ -38,14 +38,17 @@ if missing:
     logger.error(err_msg)
     raise ValueError(err_msg)
 # Check if optional field available
-if 'optional' not in config or type(config['optional']) not in [OrderedDict, dict]:
-    logger.info(f'No "optional" field found or no valid configuration.')
+if 'optional' not in config:
+    logger.info(f'No "optional" section found, adding dictionary "optional" to configuration.')
     config['optional'] = {}
+if type(config['optional']) not in [OrderedDict, dict]:
+    logger.error(f'No valid section "optional" supplied. Got {config["optional"]}, type: {type(config["optional"])} but require dictionary.')
+    raise TypeError
 # Check optional fields and include in config if not present
 for optkey, value in template_config['optional'].items():
     if optkey not in config['optional']:
         config['optional'][optkey] = value
-        logger.info(f'Set default value for optional parameter "{optkey}" to : "{value}"')
+        logger.info(f'No value for optional parameter "{optkey}" found, set to default: "{value}"')
 
 
 # Parse YAML rule config file
-- 
GitLab