openfisca / openfisca-france-fiscalite-miniere

French mining tax system for OpenFisca
GNU Affero General Public License v3.0
3 stars 2 forks source link

Met à jour Core et corrige l'erreur d'exécution de l'API Web openfisca #25

Closed sandcha closed 2 years ago

sandcha commented 2 years ago

Connected to https://github.com/openfisca/openfisca-core/issues/1126

Ces changements :

  1. Dans un nouvel environnement virtuel mines-24
  2. Après un make install
  3. Lorsqu'on exécute make serve (aka openfisca serve --country-package openfisca_france_fiscalite_miniere -p 5000)
  4. Le résultat obtenu était le suivant avant cette PR :
    
    $ make serve
    openfisca serve --country-package openfisca_france_fiscalite_miniere -p 5000
    Traceback (most recent call last):
    File "/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/openfisca_web_api/app.py", line 13, in <module>
    from flask import Flask, jsonify, abort, request, make_response
    File "/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/flask/__init__.py", line 14, in <module>
    from jinja2 import escape
    ImportError: cannot import name 'escape' from 'jinja2' (/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/jinja2/__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/Users/.../virtualenvs/mines-24/bin/openfisca", line 8, in sys.exit(main()) File "/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/openfisca_core/scripts/openfisca_command.py", line 64, in main from openfisca_web_api.scripts.serve import main File "/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/openfisca_web_api/scripts/serve.py", line 7, in from openfisca_web_api.app import create_app File "/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/openfisca_web_api/app.py", line 17, in handle_import_error(error) File "/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/openfisca_web_api/errors.py", line 9, in handle_import_error raise ImportError("OpenFisca is missing some dependencies to run the Web API: '{}'. To install them, run pip install openfisca_core[web-api].".format(error)) ImportError: OpenFisca is missing some dependencies to run the Web API: 'cannot import name 'escape' from 'jinja2' (/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/jinja2/init.py)'. To install them, run pip install openfisca_core[web-api]. make: *** [serve] Error 1


Où `ImportError: OpenFisca is missing some dependencies to run the Web API` et `To install them, run 'pip install openfisca_core[web-api]'.` sont les messages par défaut pour indiquer que les dépendances de l'API Web ne sont pas installées par défaut et qu'il faut une opération en plus pour les obtenir. 

Mais où `'cannot import name 'escape' from 'jinja2' (/Users/.../virtualenvs/mines-24/lib/python3.7/site-packages/jinja2/__init__.py)'` est un bug lié à `Flask` v`1.1.2`

On obtient alors les `Flask` et `Jinja2` suivants :

Jinja2==2.11.3


Quelques conseils à prendre en compte :

sandcha commented 2 years ago

Si l'installation d'une version de Core v35 et qu'elle mène par défaut à Flask 1.1.2 (au lieu de 1.1.4), d'après des tests en local, il me semble que cela serait dû au cache pip. Une installation avec l'option --no-cache-dir permet de tester si c'est là la source de l'écart.

En CI ici, Flask 1.1.4 est installé (la dépendance vient avec openfisca-core 35.7.7 ; PR https://github.com/openfisca/openfisca-core/pull/1109) et les tests s'achèvent sans erreur.

Enfin, cette PR n'exclut pas la mise à jour de Flask dans openfisca-core 😊 ; elle permet juste de débloquer openfisca-france-fiscalite-miniere sans attendre l'évolution d'openfisca-core/d'un autre dépôt.

Non évoqué ici mais non bloquant : Il reste une incompatibilité de version pour typing-extensions qui pourrait être patchée par "typing-extensions<5.0,>=4.0.0".