From 21b6c890719e36cd59e6d5a28514cb7189112c73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de>
Date: Tue, 14 May 2019 10:25:20 +0200
Subject: [PATCH] Correctly load yaml files using pkg_resources

---
 python/dune/codegen/options.py | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/python/dune/codegen/options.py b/python/dune/codegen/options.py
index 62085e85..11af17ae 100644
--- a/python/dune/codegen/options.py
+++ b/python/dune/codegen/options.py
@@ -5,6 +5,7 @@ from os.path import abspath
 from pytools import ImmutableRecord, memoize
 import cerberus
 import yaml
+import pkg_resources
 
 from dune.testtools.parametertree.parser import parse_ini_file
 
@@ -148,24 +149,24 @@ def initialize_options():
     _global_options = update_options_from_inifile(_global_options)
 
     # Validate global options
-    filename = '/home/rene/phd/dune-les/dune-codegen/python/dune/codegen/options_global.yaml'
-    # filename = 'options_global.yaml'
-    with open(filename, 'r') as stream:
-        try:
-            scheme_global = yaml.safe_load(stream)
-        except Exception as e:
-            raise e
+    resource_package = __name__
+    resource_path = 'options_global.yaml'
+    yaml_stream = pkg_resources.resource_string(resource_package, resource_path)
+    try:
+        scheme_global = yaml.safe_load(yaml_stream)
+    except Exception as e:
+        raise e
     validator_global = CodegenOptionsValidator(scheme_global)
     if not validator_global.validate(_global_options.__dict__):
         raise RuntimeError("Global options validation failed: {}".format(validator_global.errors))
 
     # Validate form options
-    filename = '/home/rene/phd/dune-les/dune-codegen/python/dune/codegen/options_form.yaml'
-    with open(filename, 'r') as stream:
-        try:
-            scheme_form = yaml.safe_load(stream)
-        except Exception as e:
-            raise e
+    resource_path = 'options_form.yaml'
+    yaml_stream = pkg_resources.resource_string(resource_package, resource_path)
+    try:
+        scheme_form = yaml.safe_load(yaml_stream)
+    except Exception as e:
+        raise e
     validator_form = CodegenOptionsValidator(scheme_form)
     for form in [i.strip() for i in _global_options.operators.split(",")]:
         if not validator_form.validate(_form_options[form].__dict__):
-- 
GitLab