File tree 3 files changed +23
-3
lines changed 3 files changed +23
-3
lines changed Original file line number Diff line number Diff line change 1
1
import typing
2
2
3
- import orjson
4
3
import psycopg
5
4
import psycopg .adapt
6
5
import psycopg .types
20
19
TransactionBackend ,
21
20
)
22
21
22
+ try :
23
+ import orjson
24
+
25
+ def load (data ):
26
+ return orjson .loads (data )
27
+
28
+ def dump (data ):
29
+ return orjson .dumps (data )
30
+ except ImportError :
31
+ import json
32
+
33
+ def load (data ):
34
+ return json .loads (data .decode ("utf-8" ))
35
+
36
+ def dump (data ):
37
+ return json .dumps (data ).encode ("utf-8" )
38
+
23
39
24
40
class JsonLoader (psycopg .adapt .Loader ):
25
41
def load (self , data ):
26
- return orjson . loads (data )
42
+ return load (data )
27
43
28
44
29
45
class JsonDumper (psycopg .adapt .Dumper ):
30
46
def dump (self , data ):
31
- return orjson . dumps (data )
47
+ return dump (data )
32
48
33
49
34
50
class PsycopgBackend (DatabaseBackend ):
Original file line number Diff line number Diff line change 1
1
-e .
2
2
3
+ # Speedups
4
+ orjson == 3.9.15
5
+
3
6
# Async database drivers
4
7
asyncmy == 0.2.9
5
8
aiomysql == 0.2.0
Original file line number Diff line number Diff line change @@ -58,6 +58,7 @@ def get_packages(package):
58
58
"psycopg3" : ["psycopg" , "psycopg-pool" ],
59
59
"sqlite" : ["aiosqlite" ],
60
60
"aiosqlite" : ["aiosqlite" ],
61
+ "orjson" : ["orjson" ],
61
62
},
62
63
classifiers = [
63
64
"Development Status :: 3 - Alpha" ,
You can’t perform that action at this time.
0 commit comments