File: readline_app.py

package info (click to toggle)
gunicorn 20.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 2,088 kB
  • sloc: python: 9,219; makefile: 161; xml: 73; sh: 40; javascript: 35
file content (44 lines) | stat: -rw-r--r-- 1,015 bytes parent folder | download | duplicates (2)
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
# -*- coding: utf-8 -
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#
# Simple example of readline, reading from a stream then echoing the response
#
# Usage:
#
# Launch a server with the app in a terminal
#
#     $ gunicorn -w3 readline_app:app
#
# Then in another terminal launch the following command:
#
#     $ curl -XPOST -d'test\r\ntest2\r\n' -H"Transfer-Encoding: Chunked" http://localhost:8000



from gunicorn import __version__


def app(environ, start_response):
    """Simplest possible application object"""
    status = '200 OK'

    response_headers = [
        ('Content-type', 'text/plain'),
        ('Transfer-Encoding', "chunked"),
        ('X-Gunicorn-Version', __version__)
    ]
    start_response(status, response_headers)

    body = environ['wsgi.input']

    lines = []
    while True:
        line = body.readline()
        if line == b"":
            break
        print(line)
        lines.append(line)

    return iter(lines)