File: app.py

package info (click to toggle)
python-flasgger 0.9.5%2Bdfsg.2-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,152 kB
  • sloc: javascript: 6,403; python: 3,665; makefile: 9; sh: 1
file content (56 lines) | stat: -rw-r--r-- 1,607 bytes parent folder | download | duplicates (3)
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
#!/usr/bin/python
import argparse
from collections import OrderedDict

from flask import Flask, render_template
from werkzeug.serving import run_simple
try:
    from werkzeug.middleware.dispatcher import DispatcherMiddleware
except ImportError:
    from werkzeug.wsgi import DispatcherMiddleware

from flasgger import __version__
from flasgger.utils import get_examples

app = Flask(__name__)

examples = OrderedDict({
    '/{0}'.format(mod.__name__.split('.')[-1]): mod
    for mod in sorted(get_examples(), key=lambda x: x.__name__)
})


@app.route('/')
def index():
    return render_template('flasgger.html',
                           examples=examples,
                           version=__version__)


for example, mod in examples.items():
    if hasattr(mod.app, 'swag'):
        mod.app.swag.config['basePath'] = example

application = DispatcherMiddleware(
    app,
    {name: mod.app for name, mod in examples.items()}
)


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Run App for WSGI")
    parser.add_argument('-p', '--port', help='App Port')
    parser.add_argument('-i', '--host', help='App Host')
    parser.add_argument('-r', '--reloader', action='store_true',
                        help='Turn reloader on')
    parser.add_argument('-d', '--debug', action='store_true',
                        help='Turn debug on')
    args = parser.parse_args()

    run_simple(
        args.host or '0.0.0.0',
        int(args.port) if args.port else 5000,
        application,
        use_reloader=args.reloader or False,
        use_debugger=args.debug or False,
    )