From f69ee5cf88bd21b4a6eccf72f8775dc62e29a5c4 Mon Sep 17 00:00:00 2001 From: pstlouis Date: Fri, 13 Sep 2024 14:11:59 -0400 Subject: [PATCH] remove ujson Signed-off-by: pstlouis --- .../ubuntu-2004/build-3rd-parties.sh | 1 - build-scripts/ubuntu-2004/prepare-package.sh | 1 - common/serializers/json_serializer.py | 46 ++++++------------- common/serializers/signing_serializer.py | 3 -- dev-setup/ubuntu/ubuntu-2004/SetupVMTest.txt | 1 - plenum/recorder/recorder.py | 6 +-- plenum/test/recorder/test_recorder.py | 6 +-- scripts/test_zmq/test_zmq/zstack.py | 7 +-- setup.py | 2 - stp_zmq/zstack.py | 5 +- 10 files changed, 17 insertions(+), 61 deletions(-) diff --git a/build-scripts/ubuntu-2004/build-3rd-parties.sh b/build-scripts/ubuntu-2004/build-3rd-parties.sh index 7770c5b283..da6c70802f 100755 --- a/build-scripts/ubuntu-2004/build-3rd-parties.sh +++ b/build-scripts/ubuntu-2004/build-3rd-parties.sh @@ -126,4 +126,3 @@ build_from_pypi semver 2.13.0 build_from_pypi sha3 build_from_pypi six build_from_pypi sortedcontainers 1.5.7 -build_from_pypi ujson 1.33 diff --git a/build-scripts/ubuntu-2004/prepare-package.sh b/build-scripts/ubuntu-2004/prepare-package.sh index 7579ccf81d..44eacc88a4 100755 --- a/build-scripts/ubuntu-2004/prepare-package.sh +++ b/build-scripts/ubuntu-2004/prepare-package.sh @@ -29,7 +29,6 @@ if [ "$distro_packages" = "debian-packages" ]; then # Update the package names to match the versions that are pre-installed on the os. echo -e "\nAdapt the dependencies for the Canonical archive" #### ToDo adjust packages for the Cannonical archive for Ubuntu 20.04 (focal) - # sed -i "s~ujson==1.33~ujson==1.33-1build1~" setup.py # sed -i "s~prompt_toolkit==0.57~prompt_toolkit==0.57-1~" setup.py # sed -i "s~msgpack-python==0.4.6~msgpack==0.4.6-1build1~" setup.py elif [ "$distro_packages" = "python-packages" ]; then diff --git a/common/serializers/json_serializer.py b/common/serializers/json_serializer.py index a012dbe0cd..40c7fc7062 100644 --- a/common/serializers/json_serializer.py +++ b/common/serializers/json_serializer.py @@ -2,45 +2,25 @@ import base64 +import json from typing import Dict from common.serializers.mapping_serializer import MappingSerializer -try: - import ujson as json - from ujson import encode as uencode +class OrderedJsonEncoder(json.JSONEncoder): + def __init__(self, *args, **kwargs): + kwargs['ensure_ascii'] = False + kwargs['sort_keys'] = True + kwargs['separators'] = (',', ':') + super().__init__(*args, **kwargs) - # Older versions of ujson's encode do not support `sort_keys`, if that - # is the case default to using json - uencode({'xx': '123', 'aa': 90}, sort_keys=True) + def encode(self, o): + if isinstance(o, (bytes, bytearray)): + return '"{}"'.format(base64.b64encode(o).decode("utf-8")) + else: + return super().encode(o) - class UJsonEncoder: - @staticmethod - def encode(o): - if isinstance(o, (bytes, bytearray)): - return '"{}"'.format(base64.b64encode(o).decode("utf-8")) - else: - return uencode(o, sort_keys=True) - - JsonEncoder = UJsonEncoder() - -except (ImportError, TypeError): - import json - - class OrderedJsonEncoder(json.JSONEncoder): - def __init__(self, *args, **kwargs): - kwargs['ensure_ascii'] = False - kwargs['sort_keys'] = True - kwargs['separators'] = (',', ':') - super().__init__(*args, **kwargs) - - def encode(self, o): - if isinstance(o, (bytes, bytearray)): - return '"{}"'.format(base64.b64encode(o).decode("utf-8")) - else: - return super().encode(o) - - JsonEncoder = OrderedJsonEncoder() +JsonEncoder = OrderedJsonEncoder() class JsonSerializer(MappingSerializer): diff --git a/common/serializers/signing_serializer.py b/common/serializers/signing_serializer.py index 4888cb5f46..6ab526f8e3 100644 --- a/common/serializers/signing_serializer.py +++ b/common/serializers/signing_serializer.py @@ -90,6 +90,3 @@ def serialize(self, obj, level=0, objname=None, topLevelKeysToIgnore=None, return res return res.encode('utf-8') - - # topLevelKeysToIgnore = topLevelKeysToIgnore or [] - # return ujson.dumps({k:obj[k] for k in obj.keys() if k not in topLevelKeysToIgnore}, sort_keys=True) diff --git a/dev-setup/ubuntu/ubuntu-2004/SetupVMTest.txt b/dev-setup/ubuntu/ubuntu-2004/SetupVMTest.txt index a67c635973..2e5bcf5764 100644 --- a/dev-setup/ubuntu/ubuntu-2004/SetupVMTest.txt +++ b/dev-setup/ubuntu/ubuntu-2004/SetupVMTest.txt @@ -82,7 +82,6 @@ sortedcontainers==1.5.7 \ timeout-decorator==0.5.0 \ toml==0.10.2 \ - ujson==1.33 \ wcwidth==0.2.5 \ wheel==0.34.2 \ zipp==1.2.0 diff --git a/plenum/recorder/recorder.py b/plenum/recorder/recorder.py index ca897d9f33..3f3da8fd09 100644 --- a/plenum/recorder/recorder.py +++ b/plenum/recorder/recorder.py @@ -1,14 +1,10 @@ import os import time +import json from typing import Callable from storage.kv_store_rocksdb_int_keys import KeyValueStorageRocksdbIntKeys -try: - import ujson as json -except ImportError: - import json - class Recorder: INCOMING_FLAG = 0 diff --git a/plenum/test/recorder/test_recorder.py b/plenum/test/recorder/test_recorder.py index 29d85aa26f..d9d78d1565 100644 --- a/plenum/test/recorder/test_recorder.py +++ b/plenum/test/recorder/test_recorder.py @@ -1,14 +1,10 @@ import random import time +import json from collections import OrderedDict from plenum.common.util import randomString -try: - import ujson as json -except ImportError: - import json - import pytest from plenum.recorder.recorder import Recorder diff --git a/scripts/test_zmq/test_zmq/zstack.py b/scripts/test_zmq/test_zmq/zstack.py index f80b818235..a33e38a35a 100644 --- a/scripts/test_zmq/test_zmq/zstack.py +++ b/scripts/test_zmq/test_zmq/zstack.py @@ -1,10 +1,5 @@ from test_zmq.authenticator import MultiZapAuthenticator - -try: - import ujson as json -except ImportError: - import json - +import json import os import shutil import sys diff --git a/setup.py b/setup.py index c9c7f0733c..035f345447 100644 --- a/setup.py +++ b/setup.py @@ -131,8 +131,6 @@ def run(self): 'six', ### Tests fail without version pin (GHA run: https://github.com/udosson/indy-plenum/actions/runs/1078741118) 'sortedcontainers==1.5.7', - ### Tests fail without version pin (GHA run: https://github.com/udosson/indy-plenum/actions/runs/1078741118) - 'ujson==5.4.0', ], setup_requires=['pytest-runner==5.3.0'], diff --git a/stp_zmq/zstack.py b/stp_zmq/zstack.py index 32a2a07f60..f2e817dda5 100644 --- a/stp_zmq/zstack.py +++ b/stp_zmq/zstack.py @@ -1,4 +1,5 @@ import inspect +import json from plenum.common.constants import OP_FIELD_NAME, BATCH from plenum.common.metrics_collector import NullMetricsCollector @@ -8,10 +9,6 @@ from stp_core.common.constants import CONNECTION_PREFIX, ZMQ_NETWORK_PROTOCOL from stp_zmq.client_message_provider import ClientMessageProvider -try: - import ujson as json -except ImportError: - import json import os import shutil