From da986562e5b79629fb509fba61a492dfd499121a Mon Sep 17 00:00:00 2001
From: Yannick Ulrich <yannick.ulrich@psi.ch>
Date: Sun, 9 Feb 2020 11:38:28 +0100
Subject: [PATCH] 9: user interface for loader in re #17

---
 pymule/__init__.py |  7 ++++---
 pymule/loader.py   | 28 ++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/pymule/__init__.py b/pymule/__init__.py
index f5ee1b0..4a33857 100644
--- a/pymule/__init__.py
+++ b/pymule/__init__.py
@@ -3,7 +3,8 @@ import matplotlib.pyplot as plt
 
 from vegas import importvegas
 from errortools import mergenumbers, plusnumbers, dividenumbers, timesnumbers,\
-                       mergeplots, addplots, combineNplots, scaleplot
-from loader import importreg, pattern,                                        \
+                       mergeplots, addplots, combineNplots, scaleplot,        \
+                       integratehistogram, mergebins
+from loader import importreg, pattern, setup, sigma,                          \
                    mergeset, mergeseeds, mergefks,                            \
-                   addsets
+                   addsets, scaleset
diff --git a/pymule/loader.py b/pymule/loader.py
index c2408f8..39ac2fc 100644
--- a/pymule/loader.py
+++ b/pymule/loader.py
@@ -2,6 +2,9 @@ import re
 from vegas import importvegas
 from errortools import *
 import os
+import inspect
+
+loadargs = {}
 
 
 def getplots(s):
@@ -114,3 +117,28 @@ def mergefks(*sets):
     for para in paras:
         ans.append(addsets([i[para] for i in sets]))
     return mergeset(ans)
+
+
+def callsanitised(func, **kwargs):
+    global loadargs
+    legal = inspect.getargspec(func).args
+    args = {}
+    args.update(loadargs)
+    args.update(kwargs)
+    args = {
+        i: args[i]
+        for i in args.keys()
+        if i in legal
+    }
+    return func(**args)
+
+
+def setup(**kwargs):
+    global loadargs
+    loadargs = kwargs
+
+
+def sigma(piece, **kwargs):
+    pat = callsanitised(pattern, piece=piece, **kwargs)
+    s = callsanitised(importreg, r=pat, **kwargs)
+    return callsanitised(mergeseeds, s=s, **kwargs)
-- 
GitLab