google / gae-secure-scaffold-python3

Secure scaffold for Google App Engine static and dynamic Python websites
Apache License 2.0
31 stars 16 forks source link

Flask 3 incompatible with scaffold #21

Closed davidwtbuxton closed 11 months ago

davidwtbuxton commented 11 months ago

Error:

(.venv) $ python -m flask --app main run
Usage: python -m flask run [OPTIONS]
Try 'python -m flask run --help' for help.

Error: While importing 'main', an ImportError was raised:

Traceback (most recent call last):
  File "/demo/.venv/lib/python3.11/site-packages/flask/cli.py", line 219, in locate_app
    __import__(module_name)
  File "/demo/main.py", line 1, in <module>
    import securescaffold
  File "/demo/.venv/lib/python3.11/site-packages/securescaffold/__init__.py", line 16, in <module>
    from .factory import AppConfig, create_app
  File "/demo/.venv/lib/python3.11/site-packages/securescaffold/factory.py", line 21, in <module>
    import flask_seasurf
  File "/demo/.venv/lib/python3.11/site-packages/flask_seasurf.py", line 28, in <module>
    from flask import (_app_ctx_stack, current_app, g, has_request_context, request,
ImportError: cannot import name '_app_ctx_stack' from 'flask' (/demo/.venv/lib/python3.11/site-packages/flask/__init__.py)
davidwtbuxton commented 11 months ago

Dependency versions for error:

$ pip freeze
blinker==1.6.2
build==1.0.3
cachetools==5.3.1
certifi==2023.7.22
charset-normalizer==3.3.0
click==8.1.7
Flask==3.0.0
Flask-SeaSurf==1.1.1
flask-talisman==1.1.0
google-api-core==2.12.0
google-auth==2.23.2
google-cloud-core==2.3.3
google-cloud-datastore==2.18.0
google-cloud-ndb==2.2.2
googleapis-common-protos==1.60.0
grpcio==1.59.0
grpcio-status==1.59.0
idna==3.4
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.3
packaging==23.2
pip-tools==7.3.0
proto-plus==1.22.3
protobuf==4.24.3
pyasn1==0.5.0
pyasn1-modules==0.3.0
pymemcache==4.0.0
pyproject_hooks==1.0.0
pytz==2023.3.post1
redis==5.0.1
requests==2.31.0
rsa==4.9
Secure-Scaffold @ https://github.com/google/gae-secure-scaffold-python3/archive/master.zip#sha256=c8035a0bd86e6f0b42e7a87b11ee564b421f0257f8f43cf2833f9bdb9d0e4f6a
six==1.16.0
urllib3==2.0.6
Werkzeug==3.0.0
davidwtbuxton commented 11 months ago

Immediate bug is Flask-Seasurf is not compatible with Flask 3. Installing the development version from https://github.com/maxcountryman/flask-seasurf/archive/f383b482c69e0b0e8064a8eb89305cea3826a7b6.zip resolves the ImportError.