Changeset - 401cab1bcd6c
[Not reviewed]
default
0 4 0
Dennis Fink - 3 years ago 2022-08-30 10:17:27
dennis.fink@c3l.lu
Begin typing annotations
4 files changed with 19 insertions and 15 deletions:
0 comments (0 inline, 0 general)
c3l_membership/__init__.py
Show inline comments
 
@@ -3,8 +3,9 @@ import json
 
import os.path
 
import secrets
 
import subprocess
 
from typing import Any
 

	
 
from flask import Flask, g, redirect, request, url_for
 
from flask import Flask, Response, g, redirect, request, url_for
 
from flask.cli import AppGroup
 
from flask_babel import Babel
 
from flask_qrcode import QRcode
 
@@ -14,7 +15,7 @@ babel = Babel()
 
babel_cli = AppGroup("babel")
 

	
 

	
 
def create_app():
 
def create_app() -> Flask:
 

	
 
    app = Flask(__name__)
 

	
 
@@ -44,7 +45,7 @@ def create_app():
 
    app.config.setdefault("CRYPTOCURRENCIES", dict())
 

	
 
    @babel.localeselector
 
    def get_locale():
 
    def get_locale() -> Any:
 
        if not g.get("lang_code", None):
 
            g.lang_code = request.accept_languages.best_match(app.config["LANGUAGES"])
 
        return g.lang_code
 
@@ -54,7 +55,7 @@ def create_app():
 
    app.register_blueprint(root_page)
 

	
 
    @app.route("/")
 
    def home():
 
    def home() -> Response:
 
        g.lang_code = request.accept_languages.best_match(app.config["LANGUAGES"])
 
        return redirect(url_for("root.index"))
 

	
 
@@ -64,7 +65,7 @@ def create_app():
 

	
 

	
 
@babel_cli.command("extract")
 
def babel_extract():
 
def babel_extract() -> None:
 
    subprocess.run(
 
        [
 
            "pybabel",
 
@@ -81,14 +82,14 @@ def babel_extract():
 

	
 

	
 
@babel_cli.command("update")
 
def babel_update():
 
def babel_update() -> None:
 
    subprocess.run(
 
        ["pybabel", "update", "-i", "messages.pot", "-d", "c3l_membership/translations"]
 
    )
 

	
 

	
 
@babel_cli.command("compile")
 
def babel_compile():
 
def babel_compile() -> None:
 
    subprocess.run(["pybabel", "compile", "-d", "c3l_membership/translations"])
 

	
 

	
c3l_membership/forms.py
Show inline comments
 
from typing import Optional as tOptional
 

	
 
from flask_babel import lazy_gettext
 
from flask_wtf import FlaskForm
 
from wtforms import (
 
    BooleanField,
 
    DateField,
 
    Field,
 
    RadioField,
 
    StringField,
 
    SubmitField,
 
@@ -22,11 +25,11 @@ class NotEqualTo:
 
        more helpful error.
 
    """
 

	
 
    def __init__(self, fieldname, message=None):
 
    def __init__(self, fieldname: str, message: tOptional[str] = None) -> None:
 
        self.fieldname = fieldname
 
        self.message = message
 

	
 
    def __call__(self, form, field):
 
    def __call__(self, form: FlaskForm, field: Field) -> None:
 
        try:
 
            other = form[self.fieldname]
 
        except KeyError as exc:
c3l_membership/utils.py
Show inline comments
 
from datetime import date
 

	
 

	
 
def calculate_age(birthday):
 
def calculate_age(birthday: date) -> int:
 
    today = date.today()
 
    born = birthday
 
    try:
c3l_membership/views.py
Show inline comments
 
import re
 
import subprocess
 
from datetime import date
 
from typing import Any, Dict, Optional, cast
 

	
 
import requests
 
from flask import Blueprint, current_app, g, render_template, request
 
from flask import Blueprint, Response, current_app, g, render_template, request
 
from flask_babel import gettext
 
from flask_weasyprint import HTML, render_pdf
 

	
 
@@ -16,19 +17,19 @@ xml_template = "<member><numm>{name}</nu
 

	
 

	
 
@root_page.url_defaults
 
def add_lang_code(endpoint, values):
 
def add_lang_code(endpoint: Any, values: Dict[str, Any]) -> None:
 
    values.setdefault("lang_code", g.lang_code)
 

	
 

	
 
@root_page.url_value_preprocessor
 
def pull_lang_code(endpoint, values):
 
def pull_lang_code(endpoint: Optional[str], values: Optional[Dict[Any, Any]]) -> None:
 
    lang_code = values.pop("lang_code")
 
    if lang_code != "favicon.ico":
 
        g.lang_code = lang_code
 

	
 

	
 
@root_page.route("/", methods=("GET", "POST"))
 
def index():
 
def index() -> Response:
 
    form = MembershipForm()
 

	
 
    choices = [
 
@@ -139,5 +140,4 @@ def index():
 
                HTML(string=html),
 
                download_filename=f"C3L_Membership_{form.username.data}.pdf",
 
            )
 

	
 
    return render_template("index.html", form=form, crypto_error=False)
0 comments (0 inline, 0 general)