Skip to content
Snippets Groups Projects
Unverified Commit 2c1e1b15 authored by Patrick Cloke's avatar Patrick Cloke Committed by GitHub
Browse files

Use the JSON module from the std library instead of simplejson. (#7936)

parent 8078dec3
No related branches found
No related tags found
No related merge requests found
Switch to the JSON implementation from the standard library and bump the minimum version of the canonicaljson library to 1.2.0.
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
""" This is a reference implementation of a Matrix homeserver. """ This is a reference implementation of a Matrix homeserver.
""" """
import json
import os import os
import sys import sys
...@@ -25,6 +26,9 @@ if sys.version_info < (3, 5): ...@@ -25,6 +26,9 @@ if sys.version_info < (3, 5):
print("Synapse requires Python 3.5 or above.") print("Synapse requires Python 3.5 or above.")
sys.exit(1) sys.exit(1)
# Twisted and canonicaljson will fail to import when this file is executed to
# get the __version__ during a fresh install. That's OK and subsequent calls to
# actually start Synapse will import these libraries fine.
try: try:
from twisted.internet import protocol from twisted.internet import protocol
from twisted.internet.protocol import Factory from twisted.internet.protocol import Factory
...@@ -36,6 +40,14 @@ try: ...@@ -36,6 +40,14 @@ try:
except ImportError: except ImportError:
pass pass
# Use the standard library json implementation instead of simplejson.
try:
from canonicaljson import set_json_library
set_json_library(json)
except ImportError:
pass
__version__ = "1.18.0rc2" __version__ = "1.18.0rc2"
if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)): if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
......
...@@ -43,7 +43,7 @@ REQUIREMENTS = [ ...@@ -43,7 +43,7 @@ REQUIREMENTS = [
"jsonschema>=2.5.1", "jsonschema>=2.5.1",
"frozendict>=1", "frozendict>=1",
"unpaddedbase64>=1.1.0", "unpaddedbase64>=1.1.0",
"canonicaljson>=1.1.3", "canonicaljson>=1.2.0",
# we use the type definitions added in signedjson 1.1. # we use the type definitions added in signedjson 1.1.
"signedjson>=1.1.0", "signedjson>=1.1.0",
"pynacl>=1.2.1", "pynacl>=1.2.1",
......
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