reydb 1.3.2__py3-none-any.whl → 1.3.4__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.
reydb/rorm.py
CHANGED
@@ -13,7 +13,12 @@ from typing import Self, Any, Type, Literal, TypeVar, Generic, Final, NoReturn,
|
|
13
13
|
from collections.abc import Callable
|
14
14
|
from functools import wraps as functools_wraps
|
15
15
|
from inspect import iscoroutinefunction as inspect_iscoroutinefunction
|
16
|
-
from pydantic import
|
16
|
+
from pydantic import (
|
17
|
+
ConfigDict as ModelConfig,
|
18
|
+
EmailStr as Email,
|
19
|
+
field_validator as pydantic_field_validator,
|
20
|
+
model_validator as pydantic_model_validator
|
21
|
+
)
|
17
22
|
from sqlalchemy import Column, types, text as sqlalchemy_text
|
18
23
|
from sqlalchemy.orm import SessionTransaction, load_only
|
19
24
|
from sqlalchemy.orm.strategy_options import _AttrType
|
@@ -28,7 +33,12 @@ from sqlmodel import SQLModel, Session, Table
|
|
28
33
|
from sqlmodel.main import SQLModelMetaclass, FieldInfo, default_registry
|
29
34
|
from sqlmodel.ext.asyncio.session import AsyncSession
|
30
35
|
from sqlmodel.sql._expression_select_cls import SelectOfScalar as Select
|
31
|
-
from datetime import
|
36
|
+
from datetime import (
|
37
|
+
datetime as Datetime,
|
38
|
+
date as Date,
|
39
|
+
time as Time,
|
40
|
+
timedelta as Timedelta
|
41
|
+
)
|
32
42
|
from warnings import filterwarnings
|
33
43
|
from reykit.rbase import CallableT, Null, throw, is_instance
|
34
44
|
|
@@ -242,7 +252,7 @@ class DatabaseORMModelField(DatabaseORMBase, FieldInfo):
|
|
242
252
|
- `Callable[[], Any]`: Call function and use return value.
|
243
253
|
name : Call argument name and database field name.
|
244
254
|
- `None`: Same as attribute name.
|
245
|
-
key : Whether the field is primary key.
|
255
|
+
key : Whether the field is primary key. When set multiple field, then is composite Primary Key.
|
246
256
|
key_auto : Whether the field is primary key and automatic increment.
|
247
257
|
not_null : Whether the field is not null constraint.
|
248
258
|
- `Litreal[False]`: When argument `arg_default` is `Null`, then set argument `arg_default` is `None`.
|
@@ -322,15 +332,10 @@ class DatabaseORMModelField(DatabaseORMBase, FieldInfo):
|
|
322
332
|
## Field default.
|
323
333
|
if 'field_default' in kwargs:
|
324
334
|
field_default: str = kwargs.pop('field_default')
|
325
|
-
if field_default == ':time':
|
326
|
-
field_default = sqlalchemy_text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP')
|
327
335
|
if field_default == ':create_time':
|
328
336
|
field_default = sqlalchemy_text('CURRENT_TIMESTAMP')
|
329
337
|
elif field_default == ':update_time':
|
330
|
-
|
331
|
-
field_default = sqlalchemy_text('NULL ON UPDATE CURRENT_TIMESTAMP')
|
332
|
-
else:
|
333
|
-
field_default = sqlalchemy_text('NOT NULL ON UPDATE CURRENT_TIMESTAMP')
|
338
|
+
field_default = sqlalchemy_text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP')
|
334
339
|
kwargs['sa_column_kwargs']['server_default'] = field_default
|
335
340
|
|
336
341
|
## Argument default.
|
@@ -1959,7 +1964,7 @@ Model = DatabaseORMModel
|
|
1959
1964
|
Field = DatabaseORMModelField
|
1960
1965
|
|
1961
1966
|
## Database ORM model config type.
|
1962
|
-
|
1967
|
+
ModelConfig
|
1963
1968
|
|
1964
1969
|
## Database ORM model filed types.
|
1965
1970
|
types = types
|
@@ -1976,8 +1981,9 @@ wrap_validate_model = pydantic_model_validator
|
|
1976
1981
|
## Create decorator of validate database ORM model field.
|
1977
1982
|
wrap_validate_filed = pydantic_field_validator
|
1978
1983
|
|
1979
|
-
##
|
1980
|
-
Datetime
|
1981
|
-
Date
|
1982
|
-
Time
|
1983
|
-
Timedelta
|
1984
|
+
## Other type.
|
1985
|
+
Datetime
|
1986
|
+
Date
|
1987
|
+
Time
|
1988
|
+
Timedelta
|
1989
|
+
Email
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: reydb
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.4
|
4
4
|
Summary: Database method set.
|
5
5
|
Project-URL: homepage, https://github.com/reyxbo/reydb/
|
6
6
|
Author-email: Rey <reyxbo@163.com>
|
@@ -15,7 +15,7 @@ License-File: LICENSE
|
|
15
15
|
Keywords: async,asynchronous,database,db,orm,rey,reyxbo
|
16
16
|
Requires-Python: >=3.12
|
17
17
|
Requires-Dist: aiomysql
|
18
|
-
Requires-Dist: pydantic
|
18
|
+
Requires-Dist: pydantic[email]
|
19
19
|
Requires-Dist: pymysql
|
20
20
|
Requires-Dist: reykit
|
21
21
|
Requires-Dist: sqlalchemy
|
@@ -9,8 +9,8 @@ reydb/rengine.py,sha256=qkpEsfHleia-bT7DBgERpSlZfszB5mLbRACtG-H2D-s,15640
|
|
9
9
|
reydb/rerror.py,sha256=M7RPXwywLYl5Vew7jfXxUxVnBrM1b_T6V9Izt4B8zI0,14791
|
10
10
|
reydb/rexec.py,sha256=hZe5SRbqo_aTpuB1vI2HXVx1FjtwvKGLRom3uzjTuqI,52949
|
11
11
|
reydb/rinfo.py,sha256=c5otyOikGMVnLFhPbtlgmnFBRR3NMP7xcmMW-LQdaQk,18314
|
12
|
-
reydb/rorm.py,sha256=
|
13
|
-
reydb-1.3.
|
14
|
-
reydb-1.3.
|
15
|
-
reydb-1.3.
|
16
|
-
reydb-1.3.
|
12
|
+
reydb/rorm.py,sha256=UHZVNHkQ31RyJ5Ia9wmJ8ammIz59KKYOKh9HX6VEHX4,50002
|
13
|
+
reydb-1.3.4.dist-info/METADATA,sha256=1rkEgFjTVVHW1Kzin_-dK4-tY7q7WtRZQTvLvGN2o-I,1653
|
14
|
+
reydb-1.3.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
15
|
+
reydb-1.3.4.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
16
|
+
reydb-1.3.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|