File tree Expand file tree Collapse file tree 4 files changed +25
-4
lines changed Expand file tree Collapse file tree 4 files changed +25
-4
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 @@ -49,7 +49,7 @@ class Database:
49
49
"postgresql+asyncpg" : "databases.backends.asyncpg:AsyncpgBackend" ,
50
50
"postgresql+psycopg" : "databases.backends.psycopg:PsycopgBackend" ,
51
51
"mysql" : "databases.backends.mysql:MySQLBackend" ,
52
- "mysql+aiomysql" : "databases.backends.asyncmy :MySQLBackend" ,
52
+ "mysql+aiomysql" : "databases.backends.mysql :MySQLBackend" ,
53
53
"mysql+asyncmy" : "databases.backends.asyncmy:AsyncMyBackend" ,
54
54
"sqlite" : "databases.backends.sqlite:SQLiteBackend" ,
55
55
"sqlite+aiosqlite" : "databases.backends.sqlite:SQLiteBackend" ,
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