diff --git a/pymule/__init__.py b/pymule/__init__.py index 2bbb715c1308e4188d534d09313c1f4000235104..10acc3910ec4671f08e1265c50b6a38401569a90 100644 --- a/pymule/__init__.py +++ b/pymule/__init__.py @@ -4,3 +4,4 @@ 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 diff --git a/pymule/loader.py b/pymule/loader.py new file mode 100644 index 0000000000000000000000000000000000000000..f8e559c19568f516f998f503971ff880eaf1b59d --- /dev/null +++ b/pymule/loader.py @@ -0,0 +1,36 @@ +import re +from vegas import importvegas +import os + + +def importreg(r, folder='.', filenames=None, + merge={}, types=[int,float,float]): + if filenames is None: + filenames = os.listdir(folder) + dic = {} + for filename in filenames: + m = re.match(r, filename) + if m: + v = importvegas(os.path.join(folder, filename)) + for p, n in merge.iteritems(): + if n > 0: + v[p] = mergebins(v[p], n) + + if len(types) == len(m.groups()): + k = tuple(f(v) for v,f in zip(m.groups(), types)) + else: + k = m.groups() + dic[k] = v + + return dic + + +def pattern(piece='.*', flavour='.*', obs='', folderp='.*'): + if len(obs) > 0: + return ( + folderp + piece + '_' + flavour + '_S(\d+)X([\d\.]+)D([\d\.]+).*' + ) + else: + return ( + folderp + piece + '_' + flavour + '_S(\d+)X([\d\.]+)D([\d\.]+).*' + )