File tree 3 files changed +24
-3
lines changed 3 files changed +24
-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
+
31
+ except ImportError :
32
+ import json
33
+
34
+ def load (data ):
35
+ return json .loads (data .decode ("utf-8" ))
36
+
37
+ def dump (data ):
38
+ return json .dumps (data ).encode ("utf-8" )
39
+
23
40
24
41
class JsonLoader (psycopg .adapt .Loader ):
25
42
def load (self , data ):
26
- return orjson . loads (data )
43
+ return load (data )
27
44
28
45
29
46
class JsonDumper (psycopg .adapt .Dumper ):
30
47
def dump (self , data ):
31
- return orjson . dumps (data )
48
+ return dump (data )
32
49
33
50
34
51
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