diff --git a/pylib/anki/rsbackend.py b/pylib/anki/rsbackend.py index 6f7c98628..52bdc0d8f 100644 --- a/pylib/anki/rsbackend.py +++ b/pylib/anki/rsbackend.py @@ -20,7 +20,6 @@ from typing import ( ) import ankirspy # pytype: disable=import-error -import orjson import anki.backend_pb2 as pb import anki.buildinfo @@ -36,6 +35,19 @@ assert ankirspy.buildhash() == anki.buildinfo.buildhash SchedTimingToday = pb.SchedTimingTodayOut +try: + import orjson +except: + # add compat layer for 32 bit builds that can't use orjson + print("reverting to stock json") + import json + + class orjson: # type: ignore + def dumps(obj: Any) -> bytes: + return json.dumps(obj).encode("utf8") + + loads = json.loads + class Interrupted(Exception): pass diff --git a/pylib/setup.py b/pylib/setup.py index b23d783d7..e42b783bf 100644 --- a/pylib/setup.py +++ b/pylib/setup.py @@ -21,7 +21,7 @@ setuptools.setup( "requests", "decorator", "protobuf", - "orjson", + 'orjson; platform_machine == "x86_64"', 'psutil; sys_platform == "win32"', 'distro; sys_platform != "darwin" and sys_platform != "win32"', ],