protoc-gen-sqlmodel 0.2.0__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/PKG-INFO +1 -1
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/pyproject.toml +1 -1
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/pyproject.toml.orig +1 -1
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/proto/sqlmodel_extensions.proto +1 -0
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/proto/sqlmodel_extensions_pb.py +9 -1
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/utils/__init__.py +9 -1
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/utils/field_handlers.py +9 -2
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/LICENSE +0 -0
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/README.md +0 -0
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/__init__.py +0 -0
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/plugin.py +0 -0
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/proto/__init__.py +0 -0
- {protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/utils/message_handlers.py +0 -0
|
@@ -121,9 +121,16 @@ extend google.protobuf.FieldOptions { optional string server_default = 50015 [js
|
|
|
121
121
|
```
|
|
122
122
|
"""
|
|
123
123
|
|
|
124
|
+
ext_nullable: Final[Extension[FieldOptions, bool]] = Extension()
|
|
125
|
+
"""
|
|
126
|
+
```proto
|
|
127
|
+
extend google.protobuf.FieldOptions { optional bool nullable = 50016 [json_name = "[example.sqlmodel.nullable]"] }
|
|
128
|
+
```
|
|
129
|
+
"""
|
|
130
|
+
|
|
124
131
|
|
|
125
132
|
_DESC = file_desc(
|
|
126
|
-
b'\n\x19sqlmodel_extensions.proto\x12\x10example.sqlmodel\x1a google/protobuf/descriptor.proto:7\n\x05table\x18\xd1\x86\x03 \x01(\x08\x12\x1f.google.protobuf.MessageOptionsR\x05table:8\n\x07sa_type\x18\xd2\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x06saType:@\n\x0bprimary_key\x18\xd3\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\nprimaryKey:J\n\x10sqlmodel_default\x18\xd4\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x0fsqlmodelDefault:Y\n\x18sqlmodel_default_factory\x18\xd5\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x16sqlmodelDefaultFactory:>\n\npy_default\x18\xd6\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\tpyDefault:5\n\x05index\x18\xd7\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\x05index:@\n\x0bforeign_key\x18\xd8\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\nforeignKey:C\n\x0crelationship\x18\xd9\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\x0crelationship:F\n\x0eback_populates\x18\xda\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\rbackPopulates:F\n\x0ecascade_delete\x18\xdb\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\rcascadeDelete:<\n\ton_delete\x18\xdc\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x08onDelete:H\n\x0fpassive_deletes\x18\xdd\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x0epassiveDeletes:>\n\nlink_model\x18\xde\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\tlinkModel:F\n\x0eserver_default\x18\xdf\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\
|
|
133
|
+
b'\n\x19sqlmodel_extensions.proto\x12\x10example.sqlmodel\x1a google/protobuf/descriptor.proto:7\n\x05table\x18\xd1\x86\x03 \x01(\x08\x12\x1f.google.protobuf.MessageOptionsR\x05table:8\n\x07sa_type\x18\xd2\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x06saType:@\n\x0bprimary_key\x18\xd3\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\nprimaryKey:J\n\x10sqlmodel_default\x18\xd4\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x0fsqlmodelDefault:Y\n\x18sqlmodel_default_factory\x18\xd5\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x16sqlmodelDefaultFactory:>\n\npy_default\x18\xd6\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\tpyDefault:5\n\x05index\x18\xd7\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\x05index:@\n\x0bforeign_key\x18\xd8\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\nforeignKey:C\n\x0crelationship\x18\xd9\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\x0crelationship:F\n\x0eback_populates\x18\xda\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\rbackPopulates:F\n\x0ecascade_delete\x18\xdb\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\rcascadeDelete:<\n\ton_delete\x18\xdc\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x08onDelete:H\n\x0fpassive_deletes\x18\xdd\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\x0epassiveDeletes:>\n\nlink_model\x18\xde\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\tlinkModel:F\n\x0eserver_default\x18\xdf\x86\x03 \x01(\t\x12\x1d.google.protobuf.FieldOptionsR\rserverDefault:;\n\x08nullable\x18\xe0\x86\x03 \x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\x08nullableb\x06proto3',
|
|
127
134
|
[
|
|
128
135
|
descriptor_pb.desc(),
|
|
129
136
|
],
|
|
@@ -143,6 +150,7 @@ _DESC = file_desc(
|
|
|
143
150
|
"passive_deletes": ext_passive_deletes,
|
|
144
151
|
"link_model": ext_link_model,
|
|
145
152
|
"server_default": ext_server_default,
|
|
153
|
+
"nullable": ext_nullable,
|
|
146
154
|
},
|
|
147
155
|
)
|
|
148
156
|
|
{protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/utils/__init__.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from protobuf import (
|
|
2
2
|
DescEnum,
|
|
3
3
|
DescExtension,
|
|
4
|
+
DescField,
|
|
4
5
|
DescFieldValueScalar,
|
|
5
6
|
DescMessage,
|
|
6
7
|
ScalarType,
|
|
@@ -8,6 +9,8 @@ from protobuf import (
|
|
|
8
9
|
from protobuf._descriptors import SupportedFieldPresence
|
|
9
10
|
from protobuf.plugin import File, Module
|
|
10
11
|
|
|
12
|
+
from protoc_gen_sqlmodel.proto.sqlmodel_extensions_pb import ext_server_default
|
|
13
|
+
|
|
11
14
|
ENUM = Module("enum").ident("Enum")
|
|
12
15
|
FINAL = Module("typing").ident("Final")
|
|
13
16
|
EXTENSION = Module("protobuf").ident("Extension")
|
|
@@ -25,7 +28,12 @@ def get_presence(presence: SupportedFieldPresence) -> str:
|
|
|
25
28
|
return ""
|
|
26
29
|
|
|
27
30
|
|
|
28
|
-
def get_python_scalar_type(scalar: ScalarType):
|
|
31
|
+
def get_python_scalar_type(scalar: ScalarType, desc: DescField | None = None):
|
|
32
|
+
if desc and (opts := desc.proto.options) and ext_server_default in opts:
|
|
33
|
+
server_default = opts[ext_server_default]
|
|
34
|
+
if "uuid" in server_default:
|
|
35
|
+
return Module("uuid").ident("uuid7")
|
|
36
|
+
|
|
29
37
|
match scalar:
|
|
30
38
|
case ScalarType.BOOL:
|
|
31
39
|
return "bool"
|
|
@@ -20,6 +20,7 @@ from protoc_gen_sqlmodel.proto.sqlmodel_extensions_pb import (
|
|
|
20
20
|
ext_foreign_key,
|
|
21
21
|
ext_index,
|
|
22
22
|
ext_link_model,
|
|
23
|
+
ext_nullable,
|
|
23
24
|
ext_on_delete,
|
|
24
25
|
ext_passive_deletes,
|
|
25
26
|
ext_primary_key,
|
|
@@ -51,9 +52,9 @@ FIELD_EXTENSIONS = {
|
|
|
51
52
|
ext_primary_key: "primary_key",
|
|
52
53
|
ext_py_default: "py_default",
|
|
53
54
|
ext_sa_type: "sa_type",
|
|
54
|
-
ext_server_default: "server_default",
|
|
55
55
|
ext_sqlmodel_default: "sqlmodel_default",
|
|
56
56
|
ext_sqlmodel_default_factory: "sqlmodel_default_factory",
|
|
57
|
+
ext_nullable: "nullable",
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
|
|
@@ -74,6 +75,12 @@ def handle_field_extensions(desc: DescField, default_value: Any | None):
|
|
|
74
75
|
field_options.append(f"default={default_value}")
|
|
75
76
|
options = True
|
|
76
77
|
|
|
78
|
+
if ext_server_default in opts:
|
|
79
|
+
server_default = opts[ext_server_default]
|
|
80
|
+
field_options.append('sa_column_kwargs={"server_default": text("')
|
|
81
|
+
field_options.append(server_default)
|
|
82
|
+
field_options.append('")}, ')
|
|
83
|
+
|
|
77
84
|
for ext, field_name in FIELD_EXTENSIONS.items():
|
|
78
85
|
if ext in opts:
|
|
79
86
|
field_options.append(f"{field_name}=")
|
|
@@ -96,7 +103,7 @@ def handle_leaf_field(desc: DescField, f: File):
|
|
|
96
103
|
|
|
97
104
|
match desc.value:
|
|
98
105
|
case DescFieldValueScalar(scalar, default_value, _):
|
|
99
|
-
print_components.append(get_python_scalar_type(scalar))
|
|
106
|
+
print_components.append(get_python_scalar_type(scalar, desc))
|
|
100
107
|
print_components.append(field_presence)
|
|
101
108
|
if default_value or field_presence:
|
|
102
109
|
field_default = default_value
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{protoc_gen_sqlmodel-0.2.0 → protoc_gen_sqlmodel-0.3.0}/src/protoc_gen_sqlmodel/proto/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|