sera-2 1.26.4__py3-none-any.whl → 1.26.5__py3-none-any.whl
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.
@@ -117,7 +117,7 @@ def make_query(schema: Schema, cls: Class, pkg: Package):
|
|
117
117
|
query_ops.append(('"eq" | "ne"', tstype.type))
|
118
118
|
elif tstype.type == "Date":
|
119
119
|
# for date type, we use iso string as the value
|
120
|
-
query_ops.append(('"
|
120
|
+
query_ops.append(('"lte" | "gte"', "string"))
|
121
121
|
query_ops.append(('"bti"', "[string, string]"))
|
122
122
|
else:
|
123
123
|
raise NotImplementedError(tstype.type)
|
sera/models/_datatype.py
CHANGED
@@ -287,6 +287,22 @@ predefined_datatypes = {
|
|
287
287
|
tstype=TsTypeWithDep(type="string", spectype="dict"),
|
288
288
|
is_list=False,
|
289
289
|
),
|
290
|
+
"str2str": DataType(
|
291
|
+
pytype=PyTypeWithDep(type="dict[str, str]"),
|
292
|
+
sqltype=SQLTypeWithDep(
|
293
|
+
type="JSON", mapped_pytype="dict[str, str]", deps=["sqlalchemy.JSON"]
|
294
|
+
),
|
295
|
+
tstype=TsTypeWithDep(type="Record<string, string>", spectype="str2str"),
|
296
|
+
is_list=False,
|
297
|
+
),
|
298
|
+
"str2int": DataType(
|
299
|
+
pytype=PyTypeWithDep(type="dict[str, int]"),
|
300
|
+
sqltype=SQLTypeWithDep(
|
301
|
+
type="JSON", mapped_pytype="dict[str, int]", deps=["sqlalchemy.JSON"]
|
302
|
+
),
|
303
|
+
tstype=TsTypeWithDep(type="Record<string, number>", spectype="str2int"),
|
304
|
+
is_list=False,
|
305
|
+
),
|
290
306
|
}
|
291
307
|
|
292
308
|
predefined_py_datatypes = {"bytes": PyTypeWithDep(type="bytes")}
|
sera/models/_parse.py
CHANGED
@@ -275,6 +275,14 @@ def _parse_datatype(schema: Schema, datatype: dict | str) -> DataType:
|
|
275
275
|
if isinstance(datatype, dict):
|
276
276
|
is_list = datatype.get("is_list", False)
|
277
277
|
|
278
|
+
# Parse Python type and argument if present
|
279
|
+
if datatype["pytype"] in predefined_py_datatypes:
|
280
|
+
py_type = predefined_py_datatypes[datatype["pytype"]]
|
281
|
+
else:
|
282
|
+
py_type = PyTypeWithDep(
|
283
|
+
type=datatype["pytype"]["type"], deps=datatype["pytype"].get("deps", [])
|
284
|
+
)
|
285
|
+
|
278
286
|
# Parse SQL type and argument if present
|
279
287
|
m = re.match(r"^([a-zA-Z0-9_]+)(\([^)]+\))?$", datatype["sqltype"])
|
280
288
|
if m is not None:
|
@@ -291,7 +299,7 @@ def _parse_datatype(schema: Schema, datatype: dict | str) -> DataType:
|
|
291
299
|
raise ValueError(f"Invalid SQL type format: {datatype['sqltype']}")
|
292
300
|
|
293
301
|
return DataType(
|
294
|
-
pytype=
|
302
|
+
pytype=py_type,
|
295
303
|
sqltype=sql_type,
|
296
304
|
tstype=predefined_ts_datatypes[datatype["tstype"]],
|
297
305
|
is_list=is_list,
|
@@ -33,7 +33,7 @@ sera/make/ts_frontend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
33
33
|
sera/make/ts_frontend/make_class_schema.py,sha256=JrUNBl5yJSbVFrdGcuC7sG0A-HhmXl24VJWCTVkDh8I,14458
|
34
34
|
sera/make/ts_frontend/make_draft_model.py,sha256=LY1HP6BuEmtxEevqAWMe-GJyTbK-yDIsUjLjZdd-0Rg,32570
|
35
35
|
sera/make/ts_frontend/make_enums.py,sha256=3U6Dt5Y4DM6D_ZiitcVHXtNQyA9cTE046WCDQCDOvSU,2596
|
36
|
-
sera/make/ts_frontend/make_query.py,sha256=
|
36
|
+
sera/make/ts_frontend/make_query.py,sha256=ZpNhVEQn59xk16kMmM6HcwKy_9WpvdeFx0h1xCoCbeA,5703
|
37
37
|
sera/make/ts_frontend/misc.py,sha256=A54nMg4dsn1AC_6T1tFRW3rZAJ71d7SHEMrFOdsI3jo,1011
|
38
38
|
sera/misc/__init__.py,sha256=ee7OODdWPKP8pCDxsfg1EOdxxKFMJCoNMljgV0NCxBw,767
|
39
39
|
sera/misc/_formatter.py,sha256=aCGYL08l8f3aLODHxSocxBBwkRYEo3K1QzCDEn3suj0,1685
|
@@ -42,15 +42,15 @@ sera/models/__init__.py,sha256=ZCnwzgUXhmHEcx5a7nYLopsBXJmSnfSkjt4kUH_vPnM,833
|
|
42
42
|
sera/models/_class.py,sha256=495nP6j4pZIX1j0ZElUHNxe9doUX7vzSIwVrp_lAOHE,2922
|
43
43
|
sera/models/_collection.py,sha256=5VsjmPMlZW-fYvcoYWOKD7Ch34zBYe4EPsjAn6bX7BY,2962
|
44
44
|
sera/models/_constraints.py,sha256=SwUkvV8sESfuO3En6keA_r8GxKiarXYxMb5biml63lU,2021
|
45
|
-
sera/models/_datatype.py,sha256=
|
45
|
+
sera/models/_datatype.py,sha256=0tut54rLErfzx0--S4Plf_YPsu0jKiFSSXHY1acOgU8,10921
|
46
46
|
sera/models/_default.py,sha256=ABggW6qdPR4ZDqIPJdJ0GCGQ-7kfsfZmQ_DchgZEa-I,137
|
47
47
|
sera/models/_enum.py,sha256=FRtEfto2httDB308W8OAuHh2LSazV3v16DHixlz1IZA,2088
|
48
48
|
sera/models/_module.py,sha256=0jWfzb5iMF4IazeOKd_m9hWe7-xIsz7xlWF6mbdnHxw,5394
|
49
49
|
sera/models/_multi_lingual_string.py,sha256=JETN6k00VH4wrA4w5vAHMEJV8fp3SY9bJebskFTjQLA,1186
|
50
|
-
sera/models/_parse.py,sha256=
|
50
|
+
sera/models/_parse.py,sha256=ft5RbsBqkxxKcMOU6Bn_70ai0Lpo4FK2Shdmt4BjX-Q,13498
|
51
51
|
sera/models/_property.py,sha256=Qo23KZl5OQNbuceygicgC3_Yv5ve1KxiFiMoWq6Ljj0,7758
|
52
52
|
sera/models/_schema.py,sha256=VxJEiqgVvbXgcSUK4UW6JnRcggk4nsooVSE6MyXmfNY,1636
|
53
53
|
sera/typing.py,sha256=7S6Ah-Yfcl8a0xAJ4lxEcguq3rYVM7SBeOiuxyJhC04,1089
|
54
|
-
sera_2-1.26.
|
55
|
-
sera_2-1.26.
|
56
|
-
sera_2-1.26.
|
54
|
+
sera_2-1.26.5.dist-info/METADATA,sha256=5gvMEmoiQVFWW9BlLdaDy9YP-gMSAl8DwL02QYGaSI0,987
|
55
|
+
sera_2-1.26.5.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
56
|
+
sera_2-1.26.5.dist-info/RECORD,,
|
File without changes
|