Browse Source

Update python frameworks versions that use uvloop (#5160)

* Update apidaora requirements

* Update uvicorn requirements

* Update starlette requirements

* Update fastapi requirements

* Update sanic requirements

* Update blacksheep requirements

* Update aiohttp requirements
Diogo Dutra 5 years ago
parent
commit
6ca1dd63dc

+ 3 - 2
frameworks/Python/aiohttp/aiohttp-pg-raw.dockerfile

@@ -1,10 +1,11 @@
-FROM python:3.6.6-stretch
+FROM python:3.8
 
 
 ADD ./ /aiohttp
 ADD ./ /aiohttp
 
 
 WORKDIR aiohttp
 WORKDIR aiohttp
 
 
-RUN pip3 install -r /aiohttp/requirements.txt
+RUN pip3 install cython==0.29.13 && \
+    pip3 install -r /aiohttp/requirements.txt
 
 
 ENV CONNECTION=RAW
 ENV CONNECTION=RAW
 
 

+ 3 - 2
frameworks/Python/aiohttp/aiohttp.dockerfile

@@ -1,10 +1,11 @@
-FROM python:3.6.6-stretch
+FROM python:3.8
 
 
 ADD ./ /aiohttp
 ADD ./ /aiohttp
 
 
 WORKDIR aiohttp
 WORKDIR aiohttp
 
 
-RUN pip3 install -r /aiohttp/requirements.txt
+RUN pip3 install cython==0.29.13 && \
+    pip3 install -r /aiohttp/requirements.txt
 
 
 WORKDIR /aiohttp
 WORKDIR /aiohttp
 
 

+ 8 - 8
frameworks/Python/aiohttp/requirements.txt

@@ -1,10 +1,10 @@
-aiohttp==3.0.9
-aiohttp-jinja2==0.17.0
-aiopg==0.13.2
-asyncpg==0.15.0
-cchardet==2.1.1
+aiohttp==3.6.2
+aiohttp-jinja2==1.1.2
+aiopg==1.0.0
+asyncpg==0.19.0
+cchardet==2.1.4
 gunicorn==19.9.0
 gunicorn==19.9.0
-psycopg2==2.7.5
-SQLAlchemy==1.3.0
+psycopg2==2.8.3
+SQLAlchemy==1.3.10
 ujson==1.35
 ujson==1.35
-uvloop==0.9.1
+-e git+https://github.com/MagicStack/uvloop@82104fb68e6cf2b469622e62169cdbeac93846cb#egg=uvloop

BIN
frameworks/Python/apidaora/Cython-3.0a0-py3.8-linux-x86_64.egg


+ 3 - 8
frameworks/Python/apidaora/apidaora-core.dockerfile

@@ -1,18 +1,13 @@
-FROM python:3.8-rc-buster
+FROM python:3.8
 
 
 ADD templates/fortune.html /apidaora/templates/
 ADD templates/fortune.html /apidaora/templates/
 
 
-ADD Cython-3.0a0-py3.8-linux-x86_64.egg \
-    uvloop-0.14.0.dev0-py3.8-linux-x86_64.egg \
-    /apidaora/
-
 WORKDIR /apidaora
 WORKDIR /apidaora
 
 
-RUN easy_install Cython-3.0a0-py3.8-linux-x86_64.egg \
-    uvloop-0.14.0.dev0-py3.8-linux-x86_64.egg
-
 ADD requirements.txt /apidaora/
 ADD requirements.txt /apidaora/
 
 
+RUN pip3 install cython==0.29.13
+
 RUN pip3 install -r /apidaora/requirements.txt
 RUN pip3 install -r /apidaora/requirements.txt
 
 
 ADD apidaora_core_conf.py coreapp.py /apidaora/
 ADD apidaora_core_conf.py coreapp.py /apidaora/

+ 3 - 8
frameworks/Python/apidaora/apidaora.dockerfile

@@ -1,18 +1,13 @@
-FROM python:3.8-rc-buster
+FROM python:3.8
 
 
 ADD templates/fortune.html /apidaora/templates/
 ADD templates/fortune.html /apidaora/templates/
 
 
-ADD Cython-3.0a0-py3.8-linux-x86_64.egg \
-    uvloop-0.14.0.dev0-py3.8-linux-x86_64.egg \
-    /apidaora/
-
 WORKDIR /apidaora
 WORKDIR /apidaora
 
 
-RUN easy_install Cython-3.0a0-py3.8-linux-x86_64.egg \
-    uvloop-0.14.0.dev0-py3.8-linux-x86_64.egg
-
 ADD requirements.txt /apidaora/
 ADD requirements.txt /apidaora/
 
 
+RUN pip3 install cython==0.29.13
+
 RUN pip3 install -r /apidaora/requirements.txt
 RUN pip3 install -r /apidaora/requirements.txt
 
 
 ADD apidaora_conf.py app.py /apidaora/
 ADD apidaora_conf.py app.py /apidaora/

+ 4 - 3
frameworks/Python/apidaora/requirements.txt

@@ -1,5 +1,6 @@
-asyncpg==0.18.3
+asyncpg==0.19.0
 gunicorn==19.9.0
 gunicorn==19.9.0
-jinja2==2.10.1
-uvicorn==0.9.0
+jinja2==2.10.3
 apidaora==0.9.0
 apidaora==0.9.0
+-e git+https://github.com/MagicStack/uvloop@82104fb68e6cf2b469622e62169cdbeac93846cb#egg=uvloop
+uvicorn==0.9.0

BIN
frameworks/Python/apidaora/uvloop-0.14.0.dev0-py3.8-linux-x86_64.egg


+ 13 - 25
frameworks/Python/blacksheep/app.py

@@ -3,22 +3,12 @@ import ujson
 import asyncpg
 import asyncpg
 from random import randint
 from random import randint
 from multiprocessing import cpu_count
 from multiprocessing import cpu_count
-from blacksheep.server import Application, ServerOptions
-from blacksheep import Response, Headers, Header, Content
-from jinja2 import Environment, PackageLoader, select_autoescape
+from blacksheep.server import Application
+from blacksheep import Response, Header, Content
+from jinja2 import Template
 json_dumps = ujson.dumps
 json_dumps = ujson.dumps
 
 
 
 
-_is_travis = os.environ.get('TRAVIS') == 'true'
-
-workers = cpu_count()
-if _is_travis:
-    workers = 2
-
-
-db_pool = None
-
-
 async def configure_db(app):
 async def configure_db(app):
     global db_pool
     global db_pool
     db_pool = await asyncpg.create_pool(
     db_pool = await asyncpg.create_pool(
@@ -30,16 +20,17 @@ async def configure_db(app):
     )
     )
 
 
 
 
-jinja_env = Environment(
-    loader=PackageLoader('app', 'templates'),
-    autoescape=select_autoescape(['html', 'xml'])
-)
-fortune_template = jinja_env.get_template('fortune.html')
-
+def load_fortunes_template():
+    path = os.path.join('templates', 'fortune.html')
+    with open(path, 'r') as template_file:
+        template_text = template_file.read()
+        return Template(template_text)
 
 
-app = Application(options=ServerOptions(host='', port=8080, processes_count=workers))
 
 
+db_pool = None
+fortune_template = load_fortunes_template()
 
 
+app = Application()
 app.on_start += configure_db
 app.on_start += configure_db
 
 
 
 
@@ -120,9 +111,9 @@ async def fortunes_test(request):
     fortunes.append([0, 'Additional fortune added at request time.'])
     fortunes.append([0, 'Additional fortune added at request time.'])
     fortunes.sort(key=lambda x: x[1])
     fortunes.sort(key=lambda x: x[1])
 
 
-    return Response(200, Headers([
+    return Response(200, [
         Header(b'Cache-Control', b'no-cache')
         Header(b'Cache-Control', b'no-cache')
-    ]), content=Content(b'text/html; charset=utf-8', fortune_template.render(fortunes=fortunes).encode('utf8')))
+    ], content=Content(b'text/html; charset=utf-8', fortune_template.render(fortunes=fortunes).encode('utf8')))
 
 
 
 
 @app.route('/updates')
 @app.route('/updates')
@@ -152,6 +143,3 @@ async def plaintext_test(request):
     """Test type 6: Plaintext"""
     """Test type 6: Plaintext"""
 
 
     return Response(200, content=Content(b'text/plain', b'Hello, World!'))
     return Response(200, content=Content(b'text/plain', b'Hello, World!'))
-
-
-app.start()

+ 10 - 4
frameworks/Python/blacksheep/blacksheep.dockerfile

@@ -1,9 +1,15 @@
-FROM python:3.7.2-stretch
-
-ADD ./ /blacksheep
+FROM python:3.8
 
 
 WORKDIR /blacksheep
 WORKDIR /blacksheep
 
 
+RUN pip3 install cython==0.29.13
+
+ADD requirements.txt /blacksheep/
+
 RUN pip3 install -r /blacksheep/requirements.txt
 RUN pip3 install -r /blacksheep/requirements.txt
 
 
-CMD python app.py -O
+ADD templates/fortune.html /blacksheep/templates/
+
+ADD blacksheep_conf.py app.py /blacksheep/
+
+CMD gunicorn app:app -k uvicorn.workers.UvicornWorker -c blacksheep_conf.py

+ 14 - 0
frameworks/Python/blacksheep/blacksheep_conf.py

@@ -0,0 +1,14 @@
+import multiprocessing
+import os
+
+_is_travis = os.environ.get('TRAVIS') == 'true'
+
+workers = multiprocessing.cpu_count()
+if _is_travis:
+    workers = 2
+
+bind = "0.0.0.0:8080"
+keepalive = 120
+errorlog = '-'
+pidfile = '/tmp/blacksheep.pid'
+loglevel = 'error'

+ 6 - 8
frameworks/Python/blacksheep/requirements.txt

@@ -1,9 +1,7 @@
-asyncpg==0.18.3
-blacksheep==0.0.7
-cchardet==2.1.4
-certifi==2018.11.29
-httptools==0.0.11
-Jinja2==2.10.1
-MarkupSafe==1.1.0
+asyncpg==0.19.0
+gunicorn==19.9.0
+Jinja2==2.10.3
+blacksheep==0.2.0
 ujson==1.35
 ujson==1.35
-uvloop==0.12.1
+-e git+https://github.com/MagicStack/uvloop@82104fb68e6cf2b469622e62169cdbeac93846cb#egg=uvloop
+uvicorn==0.9.0

+ 3 - 2
frameworks/Python/fastapi/fastapi.dockerfile

@@ -1,9 +1,10 @@
-FROM python:3.6.6-stretch
+FROM python:3.8
 
 
 ADD ./ /fastapi
 ADD ./ /fastapi
 
 
 WORKDIR /fastapi
 WORKDIR /fastapi
 
 
-RUN pip3 install -r /fastapi/requirements.txt
+RUN pip3 install cython==0.29.13 && \
+    pip3 install -r /fastapi/requirements.txt
 
 
 CMD gunicorn app:app -k uvicorn.workers.UvicornWorker -c fastapi_conf.py
 CMD gunicorn app:app -k uvicorn.workers.UvicornWorker -c fastapi_conf.py

+ 5 - 4
frameworks/Python/fastapi/requirements.txt

@@ -1,6 +1,7 @@
-asyncpg==0.18.2
+asyncpg==0.19.0
 gunicorn==19.9.0
 gunicorn==19.9.0
-fastapi==0.5.0
-jinja2==2.10.1
+jinja2==2.10.3
+fastapi==0.42.0
 ujson==1.35
 ujson==1.35
-uvicorn==0.3.23
+-e git+https://github.com/MagicStack/uvloop@82104fb68e6cf2b469622e62169cdbeac93846cb#egg=uvloop
+uvicorn==0.9.0

+ 4 - 3
frameworks/Python/sanic/requirements.txt

@@ -1,3 +1,4 @@
-asyncpg==0.18.2
-jinja2==2.10.1
-sanic==0.7.0
+asyncpg==0.19.0
+jinja2==2.10.3
+-e git+https://github.com/MagicStack/uvloop@82104fb68e6cf2b469622e62169cdbeac93846cb#egg=uvloop
+sanic==19.9.0

+ 3 - 2
frameworks/Python/sanic/sanic.dockerfile

@@ -1,8 +1,9 @@
-FROM python:3.6.6-stretch
+FROM python:3.8
 
 
 ADD ./requirements.txt /sanic/requirements.txt
 ADD ./requirements.txt /sanic/requirements.txt
 
 
-RUN pip3 install -r /sanic/requirements.txt
+RUN pip3 install cython==0.29.13 && \
+    pip3 install -r /sanic/requirements.txt
 
 
 ADD ./ /sanic
 ADD ./ /sanic
 
 

+ 5 - 4
frameworks/Python/starlette/requirements.txt

@@ -1,6 +1,7 @@
-asyncpg==0.18.3
+asyncpg==0.19.0
 gunicorn==19.9.0
 gunicorn==19.9.0
-jinja2==2.10.1
-starlette==0.12.0.b1
+jinja2==2.10.3
+starlette==0.12.10
 ujson==1.35
 ujson==1.35
-uvicorn==0.7.0.b1
+-e git+https://github.com/MagicStack/uvloop@82104fb68e6cf2b469622e62169cdbeac93846cb#egg=uvloop
+uvicorn==0.9.0

+ 3 - 2
frameworks/Python/starlette/starlette.dockerfile

@@ -1,9 +1,10 @@
-FROM python:3.6.6-stretch
+FROM python:3.8
 
 
 ADD ./ /starlette
 ADD ./ /starlette
 
 
 WORKDIR /starlette
 WORKDIR /starlette
 
 
-RUN pip3 install -r /starlette/requirements.txt
+RUN pip3 install cython==0.29.13 && \
+    pip3 install -r /starlette/requirements.txt
 
 
 CMD gunicorn app:app -k uvicorn.workers.UvicornWorker -c starlette_conf.py
 CMD gunicorn app:app -k uvicorn.workers.UvicornWorker -c starlette_conf.py

+ 4 - 3
frameworks/Python/uvicorn/requirements.txt

@@ -1,5 +1,6 @@
-asyncpg==0.18.3
+asyncpg==0.19.0
 gunicorn==19.9.0
 gunicorn==19.9.0
-jinja2==2.10.1
+jinja2==2.10.3
 ujson==1.35
 ujson==1.35
-uvicorn==0.7.0.b1
+-e git+https://github.com/MagicStack/uvloop@82104fb68e6cf2b469622e62169cdbeac93846cb#egg=uvloop
+uvicorn==0.9.0

+ 3 - 2
frameworks/Python/uvicorn/uvicorn.dockerfile

@@ -1,9 +1,10 @@
-FROM python:3.6.6-stretch
+FROM python:3.8
 
 
 ADD ./ /uvicorn
 ADD ./ /uvicorn
 
 
 WORKDIR /uvicorn
 WORKDIR /uvicorn
 
 
-RUN pip3 install -r /uvicorn/requirements.txt
+RUN pip3 install cython==0.29.13 && \
+    pip3 install -r /uvicorn/requirements.txt
 
 
 CMD gunicorn app:main -k uvicorn.workers.UvicornWorker -c uvicorn_conf.py
 CMD gunicorn app:main -k uvicorn.workers.UvicornWorker -c uvicorn_conf.py