def check(self): var_string = self.ui.lineEdit_var.text() shocks_string = self.ui.lineEdit_shocks.text() parameters_string = self.ui.lineEdit_parameters.text() params_definition = self.ui.plainTextEdit.toPlainText() initval_string = self.ui.plainTextEdit_2.toPlainText() l = [el.get_text() for el in self.widgets] l = [e for e in l if e] content = str.join(';\n', l) if len(l) > 0: content += ';' simple_mod = ''' var {vars}; varexo {varexo}; parameters {parms}; {params_definition} model; {equations} end; initval; {initval_string} end; '''.format(vars=var_string, varexo=shocks_string, parms=parameters_string, equations=content, params_definition=params_definition, initval_string=initval_string) from dolo.misc.modfile import parse_dynare_text try: model = parse_dynare_text(simple_mod) model.check(verbose=True) info = model.info info['name'] = model.fname txt = ''' Model check {name}: Number of variables : {n_variables} Number of equations : {n_equations} Number of shocks : {n_shocks}'''.format(**info) except Exception as e: txt = '\nModel is not valid' self.ui.textEdit.setText(txt) return try: from dolo.numeric.perturbations import solve_decision_rule dr = solve_decision_rule(model, order=1) txt += '\nBlanchard-Kahn conditions are met.' except ImportError as e: txt += '\nImpossible to solve the model (lapack could not be imported)' except Exception as e: txt += '\nImpossible to solve the model (yet).' print e self.ui.textEdit.setText(txt)
def check(self): var_string = self.ui.lineEdit_var.text() shocks_string = self.ui.lineEdit_shocks.text() parameters_string = self.ui.lineEdit_parameters.text() params_definition = self.ui.plainTextEdit.toPlainText() initval_string = self.ui.plainTextEdit_2.toPlainText() l = [ el.get_text() for el in self.widgets] l = [ e for e in l if e] content = str.join(';\n',l) if len(l)>0: content += ';' simple_mod = ''' var {vars}; varexo {varexo}; parameters {parms}; {params_definition} model; {equations} end; initval; {initval_string} end; '''.format(vars = var_string,varexo = shocks_string, parms=parameters_string,equations = content, params_definition=params_definition, initval_string=initval_string) from dolo.misc.modfile import parse_dynare_text try: model = parse_dynare_text(simple_mod) model.check(verbose=True) info = model.info info['name'] = model.fname txt =''' Model check {name}: Number of variables : {n_variables} Number of equations : {n_equations} Number of shocks : {n_shocks}'''.format(**info) except Exception as e: txt = '\nModel is not valid' self.ui.textEdit.setText(txt) return try: from dolo.numeric.perturbations import solve_decision_rule dr = solve_decision_rule( model, order = 1 ) txt += '\nBlanchard-Kahn conditions are met.' except ImportError as e: txt += '\nImpossible to solve the model (lapack could not be imported)' except Exception as e: txt += '\nImpossible to solve the model (yet).' print e self.ui.textEdit.setText(txt)
def test_dynare_modfile_import(self): # we test whether each of the modfile included with dynare # can be imported successfully modfiles = os.listdir(DYNARE_MODFILES_PATH) results = [] for mf in [m for m in modfiles if m not in exclude]: fname = DYNARE_MODFILES_PATH + mf try: f = file(fname) txt = f.read() f.close() model = parse_dynare_text(txt) res = (fname,'ok') results.append( res ) except Exception as e: res = (fname, e) results.append( res ) print res for r in results: print r
def test_test_ramsey(self): #assert x != y; #self.assertEqual(x, y, "Msg"); #path = '/home/pablo/Documents/Recherche/Ongoing/SDP Pricing/SD_without_struct/SD_ramsey/' #path = "/home/pablo/Documents/Recherche/Ongoing/SDP Pricing/ce_qui_change/SD_ramsey_MIU/" path = "/home/pablo/Documents/Recherche/Ongoing/SDP Pricing/ce_qui_change/SD_ramsey_CIASGU/" fname = path + 'state_dependent-macroexp.mod' f = file(fname) txt = f.read() f.close() txt = txt.replace('addpath', '//') txt = txt.replace('@#', '//') txt = txt.replace('^', '**') dynare_model = parse_dynare_text(txt) dynare_model.check() rmodel = RamseyModel(dynare_model) rmodel.check(verbose=True) comp = DynareCompiler(rmodel) txt = comp.export_to_modfile(path+'state_dependent_ramsey.mod', return_text=True)