From f926e377deb3f21a6d44a2a2f3ecd130dde01385 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Tue, 19 Jul 2022 11:58:59 +0200 Subject: [PATCH] TMSS-1912: use orjson which is even faster and supports datetime serialization --- Docker/lofar-ci/Dockerfile_ci_scu | 2 +- SAS/TMSS/backend/src/tmss/settings.py | 4 ++-- SAS/TMSS/backend/src/tmss/tmssapp/renderers/CMakeLists.txt | 1 + SAS/TMSS/backend/src/tmss/tmssapp/renderers/UJSONRenderer.py | 2 +- SAS/TMSS/backend/src/tmss/tmssapp/renderers/__init__.py | 1 + 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Docker/lofar-ci/Dockerfile_ci_scu b/Docker/lofar-ci/Dockerfile_ci_scu index 21b693d8012..709c27e871f 100644 --- a/Docker/lofar-ci/Dockerfile_ci_scu +++ b/Docker/lofar-ci/Dockerfile_ci_scu @@ -27,7 +27,7 @@ RUN mkdir -p /opt/oracle && \ unzip instantclient-basic-linux.x64-21.1.0.0.0.zip 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 RUN pip3 install django-material django-viewflow diff --git a/SAS/TMSS/backend/src/tmss/settings.py b/SAS/TMSS/backend/src/tmss/settings.py index 914c34430ad..3f4859a631b 100644 --- a/SAS/TMSS/backend/src/tmss/settings.py +++ b/SAS/TMSS/backend/src/tmss/settings.py @@ -212,8 +212,8 @@ REST_FRAMEWORK = { 'PAGE_SIZE': 50, 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', 'DEFAULT_RENDERER_CLASSES': ( - # we use our own faster ujson serializer - 'lofar.sas.tmss.tmss.tmssapp.renderers.UJSONRenderer', + # we use our own faster orjson serializer + 'lofar.sas.tmss.tmss.tmssapp.renderers.ORJSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ), 'DEFAULT_FILTER_BACKENDS': ( diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/renderers/CMakeLists.txt b/SAS/TMSS/backend/src/tmss/tmssapp/renderers/CMakeLists.txt index ac08da30bee..c51d623b1e3 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/renderers/CMakeLists.txt +++ b/SAS/TMSS/backend/src/tmss/tmssapp/renderers/CMakeLists.txt @@ -5,6 +5,7 @@ set(_py_files __init__.py PlainTextRenderer.py UJSONRenderer.py + ORJSONRenderer.py ) python_install(${_py_files} diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/renderers/UJSONRenderer.py b/SAS/TMSS/backend/src/tmss/tmssapp/renderers/UJSONRenderer.py index 414e2c59603..687cdeae784 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/renderers/UJSONRenderer.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/renderers/UJSONRenderer.py @@ -3,7 +3,7 @@ import ujson 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): """ diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/renderers/__init__.py b/SAS/TMSS/backend/src/tmss/tmssapp/renderers/__init__.py index 942a55c5fb4..338f4e4aefb 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/renderers/__init__.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/renderers/__init__.py @@ -1,2 +1,3 @@ from .PlainTextRenderer import * from .UJSONRenderer import * +from .ORJSONRenderer import * -- GitLab