%global _empty_manifest_terminate_build 0 Name: python-drf-ujson2 Version: 1.7.2 Release: 1 Summary: Django Rest Framework UJSON Renderer License: MIT License URL: https://github.com/Amertz08/drf_ujson2 Source0: https://mirrors.nju.edu.cn/pypi/web/packages/48/51/c43ec446549342b98e446b4d4c1ff37a43a89bf9a59cee42a2ac0f6dec19/drf_ujson2-1.7.2.tar.gz BuildArch: noarch Requires: python3-django Requires: python3-ujson Requires: python3-djangorestframework Requires: python3-pytest Requires: python3-pytest-django Requires: python3-pytest-runner Requires: python3-pytest-cov Requires: python3-pytest-mock %description [![PyPi - Version](https://img.shields.io/pypi/v/drf_ujson2)][pypi] [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/drf_ujson2)][pypi] [![PyPI - Django Version](https://img.shields.io/pypi/djversions/drf_ujson2)][pypi] [![PyPI - Downloads](https://img.shields.io/pypi/dm/drf_ujson2)][pypi] ![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg) [pypi]: https://pypi.org/project/drf-ujson2/ Django Rest Framework renderer using [ujson](https://github.com/esnme/ultrajson) ## Installation `pip install drf_ujson2` You can then set the `UJSONRenderer` class as your default renderer in your `settings.py` ```python REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'drf_ujson.renderers.UJSONRenderer', ), } ``` ## Benchmarks This is on average 2.3x faster than the default JSON Serializer. ```python import timeit setup = ''' from proposals.models import Proposal from proposals.serializers import ProposalSerializer from rest_framework.renderers import JSONRenderer from drf_ujson.renderers import UJSONRenderer proposals = Proposal.objects.all() serialized = ProposalSerializer(proposals, many=True).data ''' stdlib_test = ''' JSONRenderer().render(serialized) ''' ujson_test = ''' UJSONRenderer().render(serialized) ''' stdlib_result = timeit.repeat(stdlib_test, setup=setup, number=1, repeat=10) ujson_result = timeit.repeat(ujson_test, setup=setup, number=1, repeat=10) print stdlib_result print sum(stdlib_result) / 10 print ujson_result print sum(ujson_result) / 10 # stdlib results [ 0.004502058029174805, 0.004289865493774414, 0.006896018981933594, 0.0048198699951171875, 0.004084110260009766, 0.007154941558837891, 0.003937959671020508, 0.004029035568237305, 0.004770040512084961, 0.004539966583251953 ] # avg 0.00490238666534 # ujson results [ 0.0016620159149169922, 0.001817941665649414, 0.0015261173248291016, 0.0040950775146484375, 0.0021469593048095703, 0.001798868179321289, 0.001569986343383789, 0.0019931793212890625, 0.0017120838165283203, 0.001814126968383789 ] # avg 0.00201363563538 ``` %package -n python3-drf-ujson2 Summary: Django Rest Framework UJSON Renderer Provides: python-drf-ujson2 BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-drf-ujson2 [![PyPi - Version](https://img.shields.io/pypi/v/drf_ujson2)][pypi] [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/drf_ujson2)][pypi] [![PyPI - Django Version](https://img.shields.io/pypi/djversions/drf_ujson2)][pypi] [![PyPI - Downloads](https://img.shields.io/pypi/dm/drf_ujson2)][pypi] ![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg) [pypi]: https://pypi.org/project/drf-ujson2/ Django Rest Framework renderer using [ujson](https://github.com/esnme/ultrajson) ## Installation `pip install drf_ujson2` You can then set the `UJSONRenderer` class as your default renderer in your `settings.py` ```python REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'drf_ujson.renderers.UJSONRenderer', ), } ``` ## Benchmarks This is on average 2.3x faster than the default JSON Serializer. ```python import timeit setup = ''' from proposals.models import Proposal from proposals.serializers import ProposalSerializer from rest_framework.renderers import JSONRenderer from drf_ujson.renderers import UJSONRenderer proposals = Proposal.objects.all() serialized = ProposalSerializer(proposals, many=True).data ''' stdlib_test = ''' JSONRenderer().render(serialized) ''' ujson_test = ''' UJSONRenderer().render(serialized) ''' stdlib_result = timeit.repeat(stdlib_test, setup=setup, number=1, repeat=10) ujson_result = timeit.repeat(ujson_test, setup=setup, number=1, repeat=10) print stdlib_result print sum(stdlib_result) / 10 print ujson_result print sum(ujson_result) / 10 # stdlib results [ 0.004502058029174805, 0.004289865493774414, 0.006896018981933594, 0.0048198699951171875, 0.004084110260009766, 0.007154941558837891, 0.003937959671020508, 0.004029035568237305, 0.004770040512084961, 0.004539966583251953 ] # avg 0.00490238666534 # ujson results [ 0.0016620159149169922, 0.001817941665649414, 0.0015261173248291016, 0.0040950775146484375, 0.0021469593048095703, 0.001798868179321289, 0.001569986343383789, 0.0019931793212890625, 0.0017120838165283203, 0.001814126968383789 ] # avg 0.00201363563538 ``` %package help Summary: Development documents and examples for drf-ujson2 Provides: python3-drf-ujson2-doc %description help [![PyPi - Version](https://img.shields.io/pypi/v/drf_ujson2)][pypi] [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/drf_ujson2)][pypi] [![PyPI - Django Version](https://img.shields.io/pypi/djversions/drf_ujson2)][pypi] [![PyPI - Downloads](https://img.shields.io/pypi/dm/drf_ujson2)][pypi] ![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg) [pypi]: https://pypi.org/project/drf-ujson2/ Django Rest Framework renderer using [ujson](https://github.com/esnme/ultrajson) ## Installation `pip install drf_ujson2` You can then set the `UJSONRenderer` class as your default renderer in your `settings.py` ```python REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'drf_ujson.renderers.UJSONRenderer', ), } ``` ## Benchmarks This is on average 2.3x faster than the default JSON Serializer. ```python import timeit setup = ''' from proposals.models import Proposal from proposals.serializers import ProposalSerializer from rest_framework.renderers import JSONRenderer from drf_ujson.renderers import UJSONRenderer proposals = Proposal.objects.all() serialized = ProposalSerializer(proposals, many=True).data ''' stdlib_test = ''' JSONRenderer().render(serialized) ''' ujson_test = ''' UJSONRenderer().render(serialized) ''' stdlib_result = timeit.repeat(stdlib_test, setup=setup, number=1, repeat=10) ujson_result = timeit.repeat(ujson_test, setup=setup, number=1, repeat=10) print stdlib_result print sum(stdlib_result) / 10 print ujson_result print sum(ujson_result) / 10 # stdlib results [ 0.004502058029174805, 0.004289865493774414, 0.006896018981933594, 0.0048198699951171875, 0.004084110260009766, 0.007154941558837891, 0.003937959671020508, 0.004029035568237305, 0.004770040512084961, 0.004539966583251953 ] # avg 0.00490238666534 # ujson results [ 0.0016620159149169922, 0.001817941665649414, 0.0015261173248291016, 0.0040950775146484375, 0.0021469593048095703, 0.001798868179321289, 0.001569986343383789, 0.0019931793212890625, 0.0017120838165283203, 0.001814126968383789 ] # avg 0.00201363563538 ``` %prep %autosetup -n drf-ujson2-1.7.2 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-drf-ujson2 -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 1.7.2-1 - Package Spec generated