1
1
import uuid
2
+
2
3
from .BaseScope import BaseScope
3
4
4
5
@@ -9,6 +10,9 @@ def on_boot(self, builder):
9
10
builder .set_global_scope (
10
11
"_UUID_primary_key" , self .set_uuid_create , action = "insert"
11
12
)
13
+ builder .set_global_scope (
14
+ "_UUID_primary_key" , self .set_bulk_uuid_create , action = "bulk_create"
15
+ )
12
16
13
17
def on_remove (self , builder ):
14
18
pass
@@ -22,15 +26,21 @@ def generate_uuid(self, builder, uuid_version, bytes=False):
22
26
23
27
return uuid_func (* args ).bytes if bytes else str (uuid_func (* args ))
24
28
29
+ def build_uuid_pk (self , builder ):
30
+ uuid_version = getattr (builder ._model , "__uuid_version__" , 4 )
31
+ uuid_bytes = getattr (builder ._model , "__uuid_bytes__" , False )
32
+ return {
33
+ builder ._model .__primary_key__ : self .generate_uuid (
34
+ builder , uuid_version , uuid_bytes
35
+ )
36
+ }
37
+
25
38
def set_uuid_create (self , builder ):
26
39
# if there is already a primary key, no need to set a new one
27
40
if builder ._model .__primary_key__ not in builder ._creates :
28
- uuid_version = getattr (builder ._model , "__uuid_version__" , 4 )
29
- uuid_bytes = getattr (builder ._model , "__uuid_bytes__" , False )
30
- builder ._creates .update (
31
- {
32
- builder ._model .__primary_key__ : self .generate_uuid (
33
- builder , uuid_version , uuid_bytes
34
- )
35
- }
36
- )
41
+ builder ._creates .update (self .build_uuid_pk (builder ))
42
+
43
+ def set_bulk_uuid_create (self , builder ):
44
+ for idx , create_atts in enumerate (builder ._creates ):
45
+ if builder ._model .__primary_key__ not in create_atts :
46
+ builder ._creates [idx ].update (self .build_uuid_pk (builder ))
0 commit comments