From 672a6434877ed573ffb684641caef149731b68dd Mon Sep 17 00:00:00 2001 From: Robin Sonnabend <robin@fsmpi.rwth-aachen.de> Date: Fri, 11 May 2018 15:03:22 +0200 Subject: [PATCH] Update requirements to Flask 1.0 --- .flaskenv | 2 ++ requirements.txt | 51 +++++++++++++++++++++++++++--------------------- server.py | 27 +++++++++---------------- 3 files changed, 40 insertions(+), 40 deletions(-) create mode 100644 .flaskenv diff --git a/.flaskenv b/.flaskenv new file mode 100644 index 0000000..557b844 --- /dev/null +++ b/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=server.py:app +FLASK_ENV=development diff --git a/requirements.txt b/requirements.txt index 4fcba0c..c2b2412 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,65 +1,72 @@ -alembic==0.9.8 +alembic==0.9.9 amqp==2.2.2 appdirs==1.4.3 APScheduler==3.5.1 argh==0.26.2 +bandit==1.4.0 billiard==3.5.0.3 blessings==1.6.1 blinker==1.4 bpython==0.17.1 caldav==0.5.0 celery==4.1.0 -certifi==2018.1.18 +certifi==2018.4.16 chardet==3.0.4 click==6.7 +colorama==0.3.9 coverage==4.5.1 curtsies==0.3.0 enum-compat==0.0.2 -eventlet==0.22.1 +eventlet==0.23.0 feedgen==0.6.1 -flake8==3.5.0 -Flask==0.12.2 +Flask==1.0.2 Flask-Migrate==2.1.1 -Flask-Script==2.0.6 Flask-SQLAlchemy==2.3.2 Flask-WTF==0.14.2 fuzzywuzzy==0.16.0 +gitdb2==2.0.3 +GitPython==2.1.9 greenlet==0.4.13 icalendar==4.0.1 idna==2.6 itsdangerous==0.24 Jinja2==2.10 kombu==4.1.0 -ldap3==2.4.1 -lxml==4.1.1 +ldap3==2.5 +lxml==4.2.1 Mako==1.0.7 +mando==0.6.4 MarkupSafe==1.0 mccabe==0.6.1 nose==1.3.7 -packaging==16.8 +packaging==17.1 pathtools==0.1.2 -psycopg2==2.7.4 +pbr==4.0.2 +psycopg2-binary==2.7.4 pyasn1==0.4.2 -pycodestyle==2.3.1 -pyflakes==1.6.0 +pyasn1-modules==0.2.1 +pycodestyle==2.4.0 Pygments==2.2.0 -pyldap==2.4.45 +pyldap==3.0.0.post1 pyparsing==2.2.0 -python-dateutil==2.7.0 +python-dateutil==2.7.3 +python-dotenv==0.8.2 python-editor==1.0.3 -python-engineio==2.0.2 +python-engineio==2.1.0 +python-ldap==3.0.0 python-Levenshtein==0.12.0 -python-pam==1.8.2 -python-socketio==1.8.4 -pytz==2018.3 +python-pam==1.8.3 +pytz==2018.4 PyYAML==3.12 -raven==6.6.0 +raven==6.7.0 redis==2.10.6 -regex==2018.2.8 +regex==2018.2.21 requests==2.18.4 six==1.11.0 -SQLAlchemy==1.2.3 -SQLAlchemy-Utils==0.33.2 +smmap2==2.0.3 +SQLAlchemy==1.2.7 +SQLAlchemy-Utils==0.33.3 +stevedore==1.28.0 typing==3.6.4 tzlocal==1.5.1 urllib3==1.22 diff --git a/server.py b/server.py index 3fc7b04..4c2b18c 100755 --- a/server.py +++ b/server.py @@ -5,9 +5,9 @@ locale.setlocale(locale.LC_TIME, "de_DE.utf8") from flask import ( Flask, request, session, flash, redirect, url_for, abort, render_template, Response, Markup) +import click from werkzeug.utils import secure_filename -from flask_script import Manager, prompt -from flask_migrate import Migrate, MigrateCommand +from flask_migrate import Migrate from celery import Celery from sqlalchemy import or_ from apscheduler.schedulers.background import BackgroundScheduler @@ -62,8 +62,6 @@ app = Flask(__name__) app.config.from_object(config) db.init_app(app) migrate = Migrate(app, db) -manager = Manager(app) -manager.add_command("db", MigrateCommand) try: from raven.contrib.flask import Sentry @@ -137,7 +135,7 @@ app.jinja_env.globals.update(now=datetime.now) app.jinja_env.globals["git_revision"] = get_git_revision() -@manager.command +@app.cli.command() def import_legacy(): """Import the old todos and protocols from an sql dump""" filename = prompt("SQL-file") @@ -148,7 +146,7 @@ def import_legacy(): import_old_todomails(content) -@manager.command +@app.cli.command() def recompile_all(): for protocol in sorted(Protocol.query.all(), key=lambda p: p.date): if protocol.is_done(): @@ -156,7 +154,7 @@ def recompile_all(): tasks.parse_protocol(protocol) -@manager.command +@app.cli.command() def merge_duplicate_todos(): todo_by_id = {} todos = Todo.query.all() @@ -179,25 +177,20 @@ def merge_duplicate_todos(): todo_by_id[todo_id] = todo -@manager.command +@app.cli.command() def check_config(): # TODO: check how to set return codes import configproxy return configproxy.check_config() -@manager.command +@app.cli.command() +@click.argument("filename") def create_example_config(filename): import configproxy return configproxy.write_example_config(filename=filename) -@manager.command -def runserver(): - app.run() - make_scheduler() - - def send_file(file_like, cache_timeout, as_attachment, attachment_filename): """ Replaces flask.send_file since that uses an uwsgi function that is buggy. @@ -1858,6 +1851,4 @@ def check_and_send_reminders(): protocol, -day_difference, config.MAX_PAST_INDEX_DAYS_BEFORE_REMINDER) - -if __name__ == "__main__": - manager.run() +make_scheduler() -- GitLab