Skip to content
Snippets Groups Projects
Commit f926e377 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

TMSS-1912: use orjson which is even faster and supports datetime serialization

parent 09cb0609
No related branches found
No related tags found
1 merge request!905TMSS-1912
...@@ -27,7 +27,7 @@ RUN mkdir -p /opt/oracle && \ ...@@ -27,7 +27,7 @@ RUN mkdir -p /opt/oracle && \
unzip instantclient-basic-linux.x64-21.1.0.0.0.zip unzip instantclient-basic-linux.x64-21.1.0.0.0.zip
ENV LD_LIBRARY_PATH /opt/oracle/instantclient_21_1:$LD_LIBRARY_PATH ENV LD_LIBRARY_PATH /opt/oracle/instantclient_21_1:$LD_LIBRARY_PATH
RUN pip3 install cython kombu lxml requests pygcn xmljson mysql-connector-python python-dateutil Django==3.0.9 djangorestframework==3.11.1 djangorestframework-xml ldap==1.0.2 flask fabric coverage python-qpid-proton PyGreSQL numpy h5py psycopg2 testing.postgresql Flask-Testing scipy Markdown django-filter python-ldap python-ldap-test ldap3 django-jsonforms django-json-widget django-jsoneditor drf-yasg flex swagger-spec-validator django-auth-ldap mozilla-django-oidc jsonschema comet pyxb==1.2.5 graphviz isodate astropy packaging django-debug-toolbar pymysql astroplan SimpleWebSocketServer websocket_client drf-flex-fields django-property-filter cx_Oracle cachetools gunicorn gevent ujson RUN pip3 install cython kombu lxml requests pygcn xmljson mysql-connector-python python-dateutil Django==3.0.9 djangorestframework==3.11.1 djangorestframework-xml ldap==1.0.2 flask fabric coverage python-qpid-proton PyGreSQL numpy h5py psycopg2 testing.postgresql Flask-Testing scipy Markdown django-filter python-ldap python-ldap-test ldap3 django-jsonforms django-json-widget django-jsoneditor drf-yasg flex swagger-spec-validator django-auth-ldap mozilla-django-oidc jsonschema comet pyxb==1.2.5 graphviz isodate astropy packaging django-debug-toolbar pymysql astroplan SimpleWebSocketServer websocket_client drf-flex-fields django-property-filter cx_Oracle cachetools gunicorn gevent ujson orjson
#Viewflow package #Viewflow package
RUN pip3 install django-material django-viewflow RUN pip3 install django-material django-viewflow
......
...@@ -212,8 +212,8 @@ REST_FRAMEWORK = { ...@@ -212,8 +212,8 @@ REST_FRAMEWORK = {
'PAGE_SIZE': 50, 'PAGE_SIZE': 50,
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
'DEFAULT_RENDERER_CLASSES': ( 'DEFAULT_RENDERER_CLASSES': (
# we use our own faster ujson serializer # we use our own faster orjson serializer
'lofar.sas.tmss.tmss.tmssapp.renderers.UJSONRenderer', 'lofar.sas.tmss.tmss.tmssapp.renderers.ORJSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer', 'rest_framework.renderers.BrowsableAPIRenderer',
), ),
'DEFAULT_FILTER_BACKENDS': ( 'DEFAULT_FILTER_BACKENDS': (
......
...@@ -5,6 +5,7 @@ set(_py_files ...@@ -5,6 +5,7 @@ set(_py_files
__init__.py __init__.py
PlainTextRenderer.py PlainTextRenderer.py
UJSONRenderer.py UJSONRenderer.py
ORJSONRenderer.py
) )
python_install(${_py_files} python_install(${_py_files}
......
...@@ -3,7 +3,7 @@ import ujson ...@@ -3,7 +3,7 @@ import ujson
class UJSONRenderer(JSONRenderer): class UJSONRenderer(JSONRenderer):
""" """
Faster version of plain drf JSONRenderer using ujson Faster version of plain drf JSONRenderer using ujson (which does NOT support datetime serialization)
""" """
def render(self, data, accepted_media_type=None, renderer_context=None): def render(self, data, accepted_media_type=None, renderer_context=None):
""" """
......
from .PlainTextRenderer import * from .PlainTextRenderer import *
from .UJSONRenderer import * from .UJSONRenderer import *
from .ORJSONRenderer import *
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment