Source code for snowdrop.src.utils.getTemplateData

import os
import re

[docs] def readTemplateFile(file_path=None): """ Read data from a template text file """ if file_path is None: path = os.path.dirname(os.path.abspath(__file__)) file_path = path + '/../models/template.txt' #print(file_path) txt=[];txtEqs=[]; txtParams=[]; txtParamsRange=[];txtEndogVars=[];txtExogVars=[];txtShocks=[] txtRange=''; txtFreq='';txtDescription='' strEqs='Equations' strParams = 'Parameters' strEndogVariables = 'Endogenous' strExogVariables = 'Exogenous' strShocks = 'Shocks' strTimeRange = 'Time' strFreq = 'frequency' header = None with open(file_path, 'r') as f: for line in f: ln = line.strip() if ln in [strEqs,strParams,strShocks,strTimeRange,strFreq]: header = ln txt = [] elif len(txt) > 0 and not ln: if header == strEqs: txtEqs = txt elif header == strParams: txtParams = txt elif header == strEndogVariables: txtEndogVars = txt elif header == strExogVariables: txtExogVars = txt elif header == strShocks: txtShocks = txt elif header == strTimeRange: txtRange = txt[0] elif header == strFreq: txtFreq = txt[0] elif len(ln)>0: txt.append(line) endog = []; par = [] delimiters = " ", ",", ";", "*", "/", "+", "-", ":","(", ")","^" regexPattern = '|'.join(map(re.escape, delimiters)) arr = re.split(regexPattern," ".join(txtEqs)) for e in arr: el = e.strip() if "'p" in el: par.append(el.strip("'p")) elif "'n" in el: endog.append(el.strip("'n")) #print(txtEqs,txtParams,txtParamsRange,txtEndogVars,txtExogVars,txtShocks,txtRange,txtFreq,txtDescription) return txtEqs,txtParams,txtParamsRange,txtEndogVars,txtExogVars,txtShocks,txtRange,txtFreq,txtDescription