SFC models in Python

Here is a letter from Kenn Tamara, who developed the models in Godley-Lavoie using Python:

I was reading “Monetary Economics” by Godley and Lavoie and came across the sfc-models.net website. I have taken your eViews models and reimplemented them using Python (running the experiments and generating the figures).

Everything is open-source and is written with a package that I developed to help specify and solve the models. The models are implemented as iPython notebooks for easier viewing and can be found at:
https://github.com/kennt/monetary-economics

Information on the pysolve package used to specify and solve the models can be found at:
https://github.com/kennt/pylinsolve

(A little warning, the code for pysolve is still under development and there isn’t that much documentation yet)

I hope that the python implementation is useful and would like to contribute it to sfc-models.net.

Thank you,
Kenn Takara

2 Responses to “SFC models in Python”

  1. mickael says:

    Dear M.Takara,
    I have setup pysolve on window and I try to run the exemples but the error appear ?
    model.param(‘Gd’, desc=’Government goods, demand’, initial=20)
    What’s the matter ?
    Best regards
    Mickaël

  2. mickael says:

    Bonjour,
    j’ai finalement réussi à faire tourner l’ensemble des modèles ch3_sim.py ch3_simex.py et ch5_lp.py. Le problème se trouve dans le passage de python 2.7 à Python 3.5 Certains élements d’écriture ont bougé afin de simplifier l’écriture des programmes.

    On trouvait dans les librairies parameter et autres des trucs écrits comme ça:
    super(Parameter, self).__init__(name)
    désormais il faut les remplacers par super().__init__()

    NameError: name ‘xrange’ is not defined
    xrange() s’appelle désormais range()
    et except Exception, err
    cela s’écrit désormais except Exception as err

    print “elapsed time = ” + str(end-start)
    ^
    SyntaxError: invalid syntax

    Print est devenu une fonction il faut l’appeler avec des paretheses print()

    Ainsi 27 aout 2016, avec une installation de Python actualiser les programmes fonctionnent moyennant ces modifications.
    Je remets les codes avec les modifications vers ce lien http://www.mickael-clevenot.fr/IMG/gz/pysolve-0.1_cormc_python3.tar.gz . Je pourrais le déposer sur un dépot du site si nécessaire.

    Une autre façon de procéder pourrait plus simplement consister à executer le code à partir de la version à partir duquel il a été produit.

    In English,
    everythong is ok, but we must change some little element of code because there is some difference between the version of Python.

    super(Parameter, self).__init__(name) ———-> super().__init__()
    xrange() ————————————————–> range()
    print x —————————————————–> print(x)
    except Exception, err ———————————-> except Exception as err

    The code with correction for Python
    http://www.mickael-clevenot.fr/IMG/gz/pysolve-0.1_cormc_python3.tar.gz

Leave a Reply