Skip to content

Commit

Permalink
Testing orjson in volttron 8.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Rodgers committed Apr 23, 2024
1 parent 857d2b9 commit 3b30e82
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
3 changes: 2 additions & 1 deletion requirements.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@
'tzlocal==2.1',
#'pyOpenSSL==19.0.0',
'cryptography==37.0.4',
'watchdog-gevent==0.1.1']
'watchdog-gevent==0.1.1',
'orjson==3.10.1']

extras_require = {'crate': ['crate==0.27.1'],
'databases': ['mysql-connector-python==8.0.30',
Expand Down
21 changes: 18 additions & 3 deletions volttron/platform/jsonapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,30 @@
# under Contract DE-AC05-76RL01830
# }}}

from json import dump, dumps, load, loads
from orjson import dumps as _dumps, loads as _loads


__all__ = ('dump', 'dumpb', 'dumps', 'load', 'loadb', 'loads')


def dumpb(data, **kwargs):
return dumps(data, **kwargs).encode('utf-8')
return _dumps(data, **kwargs)


def loadb(s, **kwargs):
return loads(s.decode('utf-8'), **kwargs)
return _loads(s, **kwargs)

def dumps(data, **kwargs):
return _dumps(data, **kwargs).decode('utf-8')

def loads(s, **kwargs):
return _loads(s.encode('utf-8'), **kwargs)

def dump(data, fp, **kwargs):
fp.write(dumps(data, **kwargs).decode('utf-8'))

def load(fp, **kwargs):
if isinstance(fp, io.TextIOBase):
return _loads(fp.read().encode('utf-8'), **kwargs)
else:
return _loads(fp.read(), **kwargs)

0 comments on commit 3b30e82

Please sign in to comment.