-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path__init__.py
86 lines (61 loc) · 2.21 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# -*- coding: utf-8 -*-
#
# Copyright (C) 2016-2019 SysMedOs_team @ AG Bioanalytik, University of Leipzig:
# SysMedOs_team: Zhixu Ni, Georgia Angelidou, Mike Lange, Maria Fedorova
#
# For more info please contact:
# Developer Zhixu Ni zhixu.ni@uni-leipzig.de
import os
from flask import Flask
from flask import Blueprint
from flask import render_template, redirect, url_for
from flask_wtf import Form
from wtforms import StringField, TextAreaField
from wtforms.validators import DataRequired, Length
from epilion.config import DevConfig
from epilion.controllers.AbbrConverter import web_converter
from epilion.controllers.LionParser import parse_epilion
class ConverterInputForm(Form):
input_id_str = TextAreaField(u'Paste lipid abbreviations here:', validators=[DataRequired()])
class ParserInputForm(Form):
lion_id_str = StringField(u'Paste one lipid abbreviation here:', validators=[DataRequired(), Length(max=255)])
epilion_blueprint = Blueprint(
'epilion',
__name__,
template_folder=r'epilion/templates',
static_folder=r'epilion/static',
url_prefix='/epilion'
)
app = Flask(__name__)
app.config.from_object(DevConfig)
@app.route('/')
def index():
return redirect(url_for('epilion.home'))
@epilion_blueprint.route('/')
def home():
return render_template('home.html')
@epilion_blueprint.route('/converter', methods=('GET', 'POST'))
def converter():
conv_in_form = ConverterInputForm()
submitted = 0
if conv_in_form.validate_on_submit():
out_dct, bad_in_lst = web_converter(conv_in_form.input_id_str.data)
submitted = 1
else:
out_dct = {}
bad_in_lst = []
if not out_dct:
bad_in_lst = ['']
return render_template('converter.html', out_dct=out_dct, bad_in_lst=bad_in_lst,
in_form=conv_in_form, submitted=submitted)
@epilion_blueprint.route('/parser', methods=('GET', 'POST'))
def parser():
in_form = ParserInputForm()
if in_form.validate_on_submit():
out_dct = parse_epilion(in_form.lion_id_str.data)
else:
out_dct = {}
return render_template('parser.html', out_dct=out_dct, in_form=in_form)
app.register_blueprint(epilion_blueprint)
if __name__ == '__main__':
app.run()