fastgenerateapi 1.1.13__py2.py3-none-any.whl → 1.1.14__py2.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.

Potentially problematic release.


This version of fastgenerateapi might be problematic. Click here for more details.

@@ -8,7 +8,7 @@
8
8
  # d8888P
9
9
 
10
10
 
11
- VERSION = (1, 1, 13)
11
+ VERSION = (1, 1, 14)
12
12
 
13
13
  __version__ = '.'.join(map(str, VERSION))
14
14
 
@@ -143,7 +143,7 @@ class GetAllView(BaseView, GetMixin):
143
143
  key_builder=generate_key_builder))
144
144
  async def route(
145
145
  request: Request,
146
- paginator=Depends(paginator_deps()),
146
+ paginator = Depends(paginator_deps()),
147
147
  search: Optional[str] = Depends(search_params_deps(self.search_fields)),
148
148
  filters: dict = Depends(filter_params_deps(model_class=self.model_class, fields=self.filter_fields, schema=self.filter_schema)),
149
149
  token: Optional[str] = Depends(OAuth2PasswordBearer(tokenUrl="token", auto_error=False)),
@@ -189,7 +189,7 @@ class GetRelationView(BaseView):
189
189
  self.get_relation_response_schema = response_factory(self.get_relation_page_schema, name="GetPage")
190
190
  doc = self.get_relation.__doc__
191
191
  summary = doc.strip().split("\n")[0] if doc else f"Get {self.model_class.__name__.title()}"
192
- path = f"/get-{self.relation_id_name.strip('_id')}-by-{self.path_id_name.strip('_id')}/{'{pk}'}" if settings.app_settings.ROUTER_WHETHER_ADD_SUFFIX else ""
192
+ path = f"/get-{self.relation_id_name.removesuffix('_id')}-by-{self.path_id_name.removesuffix('_id')}/{'{pk}'}" if settings.app_settings.ROUTER_WHETHER_ADD_SUFFIX else ""
193
193
  self._add_api_route(
194
194
  path=path,
195
195
  endpoint=self._get_relation_decorator(),
@@ -29,7 +29,7 @@ class DBModelMixin:
29
29
  if type(fields) == str:
30
30
  try:
31
31
  field_info = model_class._meta.fields_map.get(fields)
32
- field_info_fk = model_class._meta.fields_map.get(fields.rstrip("_id"))
32
+ field_info_fk = model_class._meta.fields_map.get(fields.removesuffix("_id"))
33
33
  if field_info:
34
34
  return field_info.description or ""
35
35
  elif fields.endswith("_id") and field_info_fk:
@@ -75,7 +75,7 @@ class UpdateRelationView(BaseView, SaveMixin):
75
75
  self.update_relation_response_schema = response_factory(name="UpdateRelation")
76
76
  doc = self.update_relation.__doc__
77
77
  summary = doc.strip().split("\n")[0] if doc else f"Update {self.model_class.__name__.title()}"
78
- path = f"/update-{self.relation_id_name.strip('_id')}-by-{self.path_id_name.strip('_id')}/{'{pk}'}" if settings.app_settings.ROUTER_WHETHER_ADD_SUFFIX else "/{pk}"
78
+ path = f"/update-{self.relation_id_name.removesuffix('_id')}-by-{self.path_id_name.removesuffix('_id')}/{'{pk}'}" if settings.app_settings.ROUTER_WHETHER_ADD_SUFFIX else "/{pk}"
79
79
  self._add_api_route(
80
80
  path=path,
81
81
  endpoint=self._update_relation_decorator(),
@@ -69,17 +69,14 @@ class BaseFilter:
69
69
  for f in filter_str[1:]:
70
70
  if type(f) == type:
71
71
  field_type = f
72
- continue
73
- if type(f) == str:
72
+ elif type(f) == str:
74
73
  filter_field = f
75
- continue
76
- if callable(f):
74
+ elif callable(f):
77
75
  filter_func = f
78
76
  if not filter_field:
79
- if settings.app_settings.FILTER_UNDERLINE_WHETHER_DOUBLE_TO_SINGLE:
80
- filter_field = model_field.replace("__", "_")
81
- else:
82
- filter_field = model_field
77
+ filter_field = model_field
78
+ if settings.app_settings.FILTER_UNDERLINE_WHETHER_DOUBLE_TO_SINGLE:
79
+ filter_field = filter_field.replace("__", "_")
83
80
 
84
81
  self.field_type = field_type
85
82
  self.model_field = model_field
@@ -37,7 +37,7 @@ class RPCController(ResponseMixin):
37
37
  for response_param_value in request_param_value_list:
38
38
  if type(response_param_value) == str:
39
39
  response_field_name = response_param_value
40
- response_field_alias_name = model_field.rstrip("_id") + "_" + response_param_value
40
+ response_field_alias_name = model_field.removesuffix("_id") + "_" + response_param_value
41
41
  elif type(response_param_value) == tuple and len(response_param_value) > 1:
42
42
  response_field_name = response_param_value[0]
43
43
  response_field_alias_name = response_param_value[1]
@@ -5,6 +5,7 @@ from pydantic import create_model
5
5
  from pydantic.fields import FieldInfo
6
6
 
7
7
  from fastgenerateapi.pydantic_utils.base_model import BaseModel, model_config
8
+ from fastgenerateapi.schemas_factory.common_function import get_validate_dict
8
9
  from fastgenerateapi.settings.all_settings import settings
9
10
  from fastgenerateapi.utils.str_util import parse_str_to_int, parse_str_to_bool
10
11
 
@@ -42,7 +43,12 @@ def paginator_deps():
42
43
  FieldInfo(default=Query(settings.app_settings.DEFAULT_WHETHER_PAGE), title="是否分页", description="是否分页")
43
44
  ),
44
45
  }
45
- pagination_model: Type[BaseModel] = create_model("paginator", **fields, __config__=model_config)
46
+ pagination_model: Type[BaseModel] = create_model(
47
+ "paginator",
48
+ **fields,
49
+ __config__=model_config,
50
+ __validators__=get_validate_dict(),
51
+ )
46
52
 
47
53
  def pagination_deps(paginator: pagination_model = Depends(pagination_model)) -> pagination_model:
48
54
  current_page_value = parse_str_to_int(getattr(paginator, settings.app_settings.CURRENT_PAGE_FIELD))
@@ -5,6 +5,7 @@ from pydantic.fields import FieldInfo
5
5
 
6
6
  from fastgenerateapi.pydantic_utils.base_model import model_config
7
7
  from fastgenerateapi.pydantic_utils.base_model import ModelConfig
8
+ from fastgenerateapi.schemas_factory.common_function import get_validate_dict
8
9
  from fastgenerateapi.settings.all_settings import settings
9
10
 
10
11
  from pydantic import BaseModel, create_model
@@ -26,7 +27,12 @@ def tree_params_deps():
26
27
  )
27
28
  }
28
29
 
29
- filter_tree_params_model: Type[BaseModel] = create_model("TreeFilterParams", __config__=model_config, **model_fields)
30
+ filter_tree_params_model: Type[BaseModel] = create_model(
31
+ "TreeFilterParams",
32
+ **model_fields,
33
+ __config__=model_config,
34
+ __validators__=get_validate_dict(),
35
+ )
30
36
 
31
37
  def filter_query(filter_params: filter_tree_params_model = Depends(filter_tree_params_model)) -> Optional[str]:
32
38
  """
@@ -6,6 +6,7 @@ import fastapi
6
6
  from fastapi import params
7
7
  from fastapi.dependencies.models import Dependant
8
8
  from fastapi.dependencies.utils import get_sub_dependant
9
+ from pydantic.alias_generators import to_snake, to_camel
9
10
 
10
11
 
11
12
  def get_param_sub_dependant(
@@ -25,6 +26,14 @@ def get_param_sub_dependant(
25
26
  )
26
27
  for query_param in dependant.query_params:
27
28
  query_param_field = depends.dependency.model_fields.get(query_param.name)
29
+ if not query_param_field:
30
+ snake_name = to_snake(query_param.name)
31
+ if query_param.name != snake_name:
32
+ query_param_field = depends.dependency.model_fields.get(snake_name)
33
+ if not query_param_field:
34
+ camel_name = to_camel(query_param.name)
35
+ if query_param.name != camel_name:
36
+ query_param_field = depends.dependency.model_fields.get(camel_name)
28
37
  if query_param_field:
29
38
  query_param.field_info.description = query_param_field.description or query_param_field.title or ""
30
39
  return dependant
@@ -1,7 +1,7 @@
1
1
  import importlib
2
- from typing import List, Optional
2
+ from typing import List, Optional, Any
3
3
 
4
- from pydantic import BaseModel as PydanticBaseModel, BaseConfig, Field, ConfigDict
4
+ from pydantic import BaseModel as PydanticBaseModel, BaseConfig, Field, ConfigDict, field_validator
5
5
 
6
6
  from fastgenerateapi.pydantic_utils.json_encoders import JSON_ENCODERS
7
7
  from fastgenerateapi.settings.all_settings import settings
@@ -54,6 +54,13 @@ model_config = ConfigDict(
54
54
  class BaseModel(PydanticBaseModel):
55
55
  model_config = model_config
56
56
 
57
+ @field_validator('*', mode='before') # '*' 表示匹配所有字段
58
+ def empty_str_to_none(cls, v: Any) -> Any:
59
+ """将空字符串转换为None,其他值保持不变"""
60
+ if isinstance(v, str) and v.strip() == "": # 处理纯空字符串或仅含空格的字符串
61
+ return None
62
+ return v
63
+
57
64
 
58
65
  class IdList(BaseModel):
59
66
  id_list: List[str] = Field([], description="id数组")
@@ -1,6 +1,6 @@
1
1
  from typing import Type, Optional, Union
2
2
 
3
- from pydantic import validator
3
+ from pydantic import validator, field_validator
4
4
  from pydantic.fields import FieldInfo
5
5
  from tortoise import Model
6
6
 
@@ -111,13 +111,25 @@ def get_dict_from_pydanticmeta(model_class: Type[Model], data: Union[list, tuple
111
111
  return fields_info
112
112
 
113
113
 
114
+ def get_validate_dict() -> dict:
115
+
116
+ def empty_str_to_none(v, values):
117
+ if isinstance(v, str) and v.strip() == "":
118
+ return None
119
+ return v
120
+
121
+ validator_dict = {
122
+ "empty_str_to_none": field_validator('*', mode='before')(empty_str_to_none)
123
+ }
124
+
125
+ return validator_dict
126
+
127
+
114
128
  def get_validate_dict_from_fields(fields_info: dict) -> dict:
115
129
  validator_dict = {}
116
130
 
117
131
  def remove_blank_strings(v, values):
118
- if isinstance(v, str):
119
- v = v.strip()
120
- if v == "":
132
+ if isinstance(v, str) and v.strip() == "":
121
133
  return None
122
134
  return v
123
135
 
@@ -129,3 +141,5 @@ def get_validate_dict_from_fields(fields_info: dict) -> dict:
129
141
  return validator_dict
130
142
 
131
143
 
144
+
145
+
@@ -1,4 +1,4 @@
1
- from typing import Type, Union
1
+ from typing import Type, Union, Optional
2
2
 
3
3
  from fastapi import Query
4
4
  from pydantic import BaseModel, create_model
@@ -9,6 +9,8 @@ from fastgenerateapi.api_view.mixin.dbmodel_mixin import DBModelMixin
9
9
  from fastgenerateapi.controller.filter_controller import BaseFilter
10
10
  from tortoise import Model
11
11
 
12
+ from fastgenerateapi.schemas_factory.common_function import get_validate_dict
13
+
12
14
 
13
15
  def filter_schema_factory(model_class: Type[Model], fields: list[str, tuple[str, Type], BaseFilter] = None):
14
16
  """
@@ -24,7 +26,7 @@ def filter_schema_factory(model_class: Type[Model], fields: list[str, tuple[str,
24
26
  description = DBModelMixin.get_field_description(model_class, field_info.model_field)
25
27
  model_fields.update({
26
28
  f: (
27
- Union[t, str],
29
+ Optional[t],
28
30
  FieldInfo(
29
31
  title=f"{description}",
30
32
  default=Query("", description=description),
@@ -35,7 +37,8 @@ def filter_schema_factory(model_class: Type[Model], fields: list[str, tuple[str,
35
37
  filter_params_model: Type[BaseModel] = create_model(
36
38
  model_class.__name__+"CommonFilterParams",
37
39
  **model_fields,
38
- __config__=model_config
40
+ __config__=model_config,
41
+ __validators__=get_validate_dict(),
39
42
  )
40
43
 
41
44
  return filter_params_model
@@ -7,7 +7,7 @@ from fastgenerateapi.pydantic_utils.base_settings import BaseSettings
7
7
 
8
8
 
9
9
  class AppSettings(BaseSettings):
10
- # 字段配置 老版本(pydantic.utils.to_lower_camel)
10
+ # 字段配置 驼峰格式:新版本(pydantic.alias_generators:to_camel)、老版本(pydantic.utils.to_lower_camel)
11
11
  ALIAS_GENERATOR: Optional[str] = Field(default="pydantic.alias_generators.to_snake", description="序列化参数命名方法路径")
12
12
 
13
13
  # 分页对应字段以及配置默认值
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.13
3
+ Version: 1.1.14
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com
@@ -24,15 +24,17 @@ License-File: LICENSE
24
24
  [Github](https://github.com/ShiLiangAPI)
25
25
 
26
26
  #### 版本说明
27
- 最新版本:v1.1.7+
27
+ [pydantic-v2]
28
+ 稳定版本:v1.1.13+
28
29
  建议python版本:3.9+
29
30
  推荐fastapi版本:0.103.2+
30
31
  推荐pydantic版本:2.11.5+
31
32
 
33
+ [pydantic-v1]
32
34
  稳定版本:v0.0.21
33
35
  建议python版本:3.9+
34
36
  推荐fastapi版本:0.97.0
35
-
37
+ 推荐pydantic版本:1.10.9+
36
38
 
37
39
 
38
40
  ###### FastGenerateApi 使用说明
@@ -1,5 +1,5 @@
1
1
  fastgenerateapi/__init__.py,sha256=eh2qtp7FbjrgaRX5b3H3UWpasFdNHbVFqLUhpqVbaTU,1287
2
- fastgenerateapi/__version__.py,sha256=O1vSHwP1CokGmyIQTNR-1AryP35eS8hykDRa8WI-wcs,497
2
+ fastgenerateapi/__version__.py,sha256=Xa0NDiSw61xqhYl0tbzWFmHB11vbSnD-12S7cyvDWws,497
3
3
  fastgenerateapi/api_view/__init__.py,sha256=zkaTX5JxsNfjF-dFeEbHfUB58vhPMjm6Iiqx9HgJOrY,14
4
4
  fastgenerateapi/api_view/api_view.py,sha256=mfD8GB-hnyI2XO3tkSOlEa2FfBLdq0_Wqvp8gFrXFKU,1160
5
5
  fastgenerateapi/api_view/base_view.py,sha256=cgdX1VYVjDYWXunBtHbglc5YW7J9Nuda4fLM0b_X4F4,10088
@@ -7,17 +7,17 @@ fastgenerateapi/api_view/create_view.py,sha256=NvJ0ocD2UMHcdipA4W7MYamxAw8sYeXAc
7
7
  fastgenerateapi/api_view/delete_filter_view.py,sha256=ZP9pmRNeCTu_Go4ErfnDPnkPMShEh_Ql18iNCfMNJ3s,2838
8
8
  fastgenerateapi/api_view/delete_tree_view.py,sha256=oqkWQNlA7TNZHHRTJJwxidOHxOgmvUpcnu81cT3oTA0,4083
9
9
  fastgenerateapi/api_view/delete_view.py,sha256=FvaltPR1ttLfUvBoRoSHP-dGb79LRZlEMSEbYzE_W1E,3497
10
- fastgenerateapi/api_view/get_all_view.py,sha256=mxX7H9DZR7FMqtSz80qj5GJ5Rg_8a8z5R3gwkZnBqmI,9176
10
+ fastgenerateapi/api_view/get_all_view.py,sha256=pWzob708aytugsZUWGBqqddPmUKizpHC18O6eB30Iao,9178
11
11
  fastgenerateapi/api_view/get_one_view.py,sha256=jw_H2z4rmRYgNfvBHSBgjnBNe1hpE6-A1EWRQR6bFD0,3762
12
- fastgenerateapi/api_view/get_relation_view.py,sha256=mhPXoEos_2GQQSk3xlD2t_WYAiYuy1vRFR4jnBnbeSg,9766
12
+ fastgenerateapi/api_view/get_relation_view.py,sha256=coVqhD29WW7SzdAeqM5LFtNzMulzzJyELT2En-56CF4,9780
13
13
  fastgenerateapi/api_view/get_tree_view.py,sha256=8BQomoOU954bXrqGzeFrKS8ydHL9VPxQfwvhV59rQxg,9312
14
14
  fastgenerateapi/api_view/sql_get_view.py,sha256=wxYI0JuH8Gw99LfMMwA4rQ_a_tBrKYxYhA7MNGQOx3A,6691
15
15
  fastgenerateapi/api_view/switch_view.py,sha256=M_GSgnziz1vhrvNSwT_8I2oRy4zJnnFHh9HzUJBuy68,3317
16
- fastgenerateapi/api_view/update_relation_view.py,sha256=Z77KgRE85Nkz3Y513l10CVQLcR0phhfIBCyI7LpV-hY,3762
16
+ fastgenerateapi/api_view/update_relation_view.py,sha256=Lt_ckQiX8J-RIJP9qhU2QUjOzepi3wiCWpaiHgdZOek,3776
17
17
  fastgenerateapi/api_view/update_view.py,sha256=Y9cZwgQIl88-Gz6IhyufCB8cdVRMZ6NwhGUTUtDV5VA,4106
18
18
  fastgenerateapi/api_view/mixin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  fastgenerateapi/api_view/mixin/base_mixin.py,sha256=qho7YCd4C1FtzTjsCU7Ax5uRx5-ryLwPEG0i_1IcTvI,6877
20
- fastgenerateapi/api_view/mixin/dbmodel_mixin.py,sha256=T09Ydqr9Mt75CW6imxyNa8FsZ3wHaVS8WRmViGBmDSc,4757
20
+ fastgenerateapi/api_view/mixin/dbmodel_mixin.py,sha256=zdMZw5TD1fExPATANWb-T7Lmm88XNZC8RFW2LNYspLo,4763
21
21
  fastgenerateapi/api_view/mixin/get_mixin.py,sha256=cpyTHaKFNsAhbtnLkz057rGcaKJXipNS-m9ftITsz1I,266
22
22
  fastgenerateapi/api_view/mixin/response_mixin.py,sha256=cTKmrPAxjG-28Ls94-YWCl-YgvGB_0VLdYyR6t_RIhA,4404
23
23
  fastgenerateapi/api_view/mixin/save_mixin.py,sha256=inRppAov9ruKqTgGhxPto84ETp1T1WP62n6OgEBIgyU,317
@@ -36,9 +36,9 @@ fastgenerateapi/channel/connection_manager.py,sha256=Z59pFnQSsFWSPvdH0b_8m1KTFVY
36
36
  fastgenerateapi/channel/consumer.py,sha256=9zZ3ctN88ncMHRrWndVSRTeqvMExyU3O3hq38ku7lzw,3209
37
37
  fastgenerateapi/channel/websocket_view.py,sha256=lG9rYMO_FTdULi--oEdqCtdguR5ZM8Uzrk6f3z-86zo,2656
38
38
  fastgenerateapi/controller/__init__.py,sha256=eM5a3k_G0bf-k_WcwfcBbI-M3kLFJIITBWX85lVyClE,316
39
- fastgenerateapi/controller/filter_controller.py,sha256=PX-2oOo7WGZWePjm318RCbIlLIdeYwHKG-u1onpjB24,5030
39
+ fastgenerateapi/controller/filter_controller.py,sha256=pnHNy1pzlYGdZ9e9KGaR7CG3Uwugq2TVXRYpMXs3Wls,4944
40
40
  fastgenerateapi/controller/router_controller.py,sha256=HnvQgFXv2EPmzeiEPjcCyy6pZL2e7s5hB9TW1fRtZvM,5364
41
- fastgenerateapi/controller/rpc_controller.py,sha256=HIW6V5vte2TW1UbetyHGDTQAPjHP93s_B9UVI4chDtQ,2300
41
+ fastgenerateapi/controller/rpc_controller.py,sha256=qX0K4oWeNdgcoXj2-k2MPPIb-ikr92DrqMnRAVGyCVg,2306
42
42
  fastgenerateapi/controller/search_controller.py,sha256=7L4aOF6s6XAVk7swP7KYS57fXiSu8VCBOibzgPlczrc,873
43
43
  fastgenerateapi/controller/ws_controller.py,sha256=xgKDYqw9OWKsupnROk2OSYKUQW_QKAWm9fRE4LTiFs0,1662
44
44
  fastgenerateapi/data_type/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -46,8 +46,8 @@ fastgenerateapi/data_type/data_type.py,sha256=mWxnXck-QkjmdkhFxjvr7GOQtyzuMIlSJf
46
46
  fastgenerateapi/data_type/mysql_data_type.py,sha256=DOa-9DdyzG_Pvg1ESmSFa-e_fP_SP5KzDu9JLr1b2vw,233
47
47
  fastgenerateapi/deps/__init__.py,sha256=E-BByiMvNRYXCJXePGW7aFan6jsxTGAQQJnm-qMBvY0,160
48
48
  fastgenerateapi/deps/filter_params_deps.py,sha256=yynwWRQlRgY1cTQEpkd1_BX0Gr0XT1Ta7ngC5zccJpo,1753
49
- fastgenerateapi/deps/paginator_deps.py,sha256=EZWh11v2XAHVICYe-MNqlWeUuYrnYULnD-eX7B2N8Dc,3167
50
- fastgenerateapi/deps/tree_params_deps.py,sha256=yVenKx5X3MAOrUNe_dE94L7RzGfGyVxawF_VE1jbNck,1304
49
+ fastgenerateapi/deps/paginator_deps.py,sha256=Zx2wFNFPJ3x7a3hQA2--vtFj4YqNEKGUnDG30F8rjOE,3326
50
+ fastgenerateapi/deps/tree_params_deps.py,sha256=TwnqnwGg78DK-dkc84y8nKGWxCpPxc4uWHRq6bgMr-Y,1463
51
51
  fastgenerateapi/example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  fastgenerateapi/example/models.py,sha256=QGRt6OUTP4eGRXuSX_1F9q0C_yn7RUF3fkQBk6e94Gw,2207
53
53
  fastgenerateapi/example/routers.py,sha256=gsmViGNqO1JbVc0M8tZPvD46kReOYJ5I457WwBHt4l4,437
@@ -55,7 +55,7 @@ fastgenerateapi/example/schemas.py,sha256=8UjQxy0lAvQ-nY2-PPNcsmzfg5TZJe0bVyhuIo
55
55
  fastgenerateapi/example/views.py,sha256=eYy5jgcc-IVwKREMA3U4RNDku27Nn9NJU_Flwbp3R-4,3258
56
56
  fastgenerateapi/fastapi_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  fastgenerateapi/fastapi_utils/all.py,sha256=QO-VcNGKFbpP7OfAl9EUtZYIjSvqSrHoyFjrQGfm8hc,79
58
- fastgenerateapi/fastapi_utils/param_utils.py,sha256=ja_3VRJyWQrOfxlbVrUHZtqDw18MfJ3iRs43IEfoOFY,1091
58
+ fastgenerateapi/fastapi_utils/param_utils.py,sha256=npBUkSgaLxPGqS9OkqjmvlIndVLKzZa3PSsi87Trb6o,1591
59
59
  fastgenerateapi/fastapi_utils/response_utils.py,sha256=dqQHIeAe6N1zA5diUfDdGBQkyzZ82b-8GrgWzqrkw18,15922
60
60
  fastgenerateapi/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  fastgenerateapi/model/base_model.py,sha256=EdPxjm0Nfpaj6-GzYISOvwWuexZzlqHAm2JD-3h6x4E,1869
@@ -67,14 +67,14 @@ fastgenerateapi/my_fields/pwd_field.py,sha256=eUnarxEyHgpOzTBmsl0KxsI8lR7FzUDjxy
67
67
  fastgenerateapi/my_fields/soft_delete_field.py,sha256=taB05-gif79EAfrueqSfFb-xOep5uZ25vfdc4D4aAqM,1450
68
68
  fastgenerateapi/my_fields/validator.py,sha256=0mPsV4tOIw1YYuBCN7YJPYCWstIsCsy9K3b38ih1_JY,1981
69
69
  fastgenerateapi/pydantic_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- fastgenerateapi/pydantic_utils/base_model.py,sha256=uZejyLi1KL1uNC9TlOVXVPGrxG0DWXedZVtvDYu3LlU,2239
70
+ fastgenerateapi/pydantic_utils/base_model.py,sha256=kHFcx48UbpMgLfKdNT351p74PZCdPxx3vVs3ho0qrgs,2600
71
71
  fastgenerateapi/pydantic_utils/base_settings.py,sha256=JydmNHS_vl3ys7yiXwkZuRZ-4tIgf0a_kfft7WNf4kY,533
72
72
  fastgenerateapi/pydantic_utils/json_encoders.py,sha256=NPvaYDHu9GBtYNnNpbh35VUd1JWy4Mx4nAzOK4cvVo0,2868
73
73
  fastgenerateapi/schemas_factory/__init__.py,sha256=X9U96fiyRfCY0u6SzaCYG62RdpEGFX7yOZh_cJl6R2E,472
74
- fastgenerateapi/schemas_factory/common_function.py,sha256=kwEQeGIA9rw4NHUVuXl9iZ2ijlHGwZVv08p5Gy3Mfcc,5224
74
+ fastgenerateapi/schemas_factory/common_function.py,sha256=EfLLuS2fbwGy87LaP4pDDggigUE0EdzYgmLmp7Oo9xI,5538
75
75
  fastgenerateapi/schemas_factory/common_schema_factory.py,sha256=ac_tYOcBqpnGVSkx4NCAZz3Hd1PHmwSocBRld5Jxro4,2904
76
76
  fastgenerateapi/schemas_factory/create_schema_factory.py,sha256=rkah8geyfMkfqA6IhHDxq-lFomn8DA3bca1AtFcrLpQ,3733
77
- fastgenerateapi/schemas_factory/filter_schema_factory.py,sha256=emCfhL99Y7wi8-f3FgIZXJgG1iMd9u2ItmxA6E7m8DI,1396
77
+ fastgenerateapi/schemas_factory/filter_schema_factory.py,sha256=T4Kpv8G9VAOOZKnRDh2oD3tE_xhsjw2FtEmncJa_MYM,1531
78
78
  fastgenerateapi/schemas_factory/get_all_schema_factory.py,sha256=gM2pYAGxNiqy3cmwW5lYcZHucilhI1aqCVRj2nt0EWw,5177
79
79
  fastgenerateapi/schemas_factory/get_one_schema_factory.py,sha256=cgKoCOSK-4Lky8xUoZHIMAZmVSyWOW5-DmxaM6RAQEY,3431
80
80
  fastgenerateapi/schemas_factory/get_relation_schema_factory.py,sha256=VvzWaxAwOnMdtaUYxmWw1tOw3KP0KBwmR6J3UAld2x0,3111
@@ -84,7 +84,7 @@ fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py,sha256=dhgMvXZIq4a
84
84
  fastgenerateapi/schemas_factory/update_schema_factory.py,sha256=E-86vF98Ed92Q2VFqtS35xqxr_c34du9ok42JBfnj1g,3729
85
85
  fastgenerateapi/settings/__init__.py,sha256=dlyJb7BNh8Svau-UOrV4pxfoSYnNTA6eE41fu43vlT8,173
86
86
  fastgenerateapi/settings/all_settings.py,sha256=ylABCKJzh_US4ZfZQgDEYFYm75Zz-0mL8pqziFdgudY,3795
87
- fastgenerateapi/settings/app_settings.py,sha256=FgRVIrWUmfvfDohP2pP4JO7nFevUPEG3MNuUyfjM9BA,7294
87
+ fastgenerateapi/settings/app_settings.py,sha256=kq0O4FZMveiLdzwRkkH1E1byccoNGlLyz7G4fNTZm6w,7357
88
88
  fastgenerateapi/settings/db_settings.py,sha256=duTgLjMHO6MTDfEZ2tkAGiSXrTKuHSLBJW00l5_rv7g,1570
89
89
  fastgenerateapi/settings/file_settings.py,sha256=8Ra5H0nxRp1r_Ib_RGbNO0rUFaxqYMjuJT9A4fHE3Oo,857
90
90
  fastgenerateapi/settings/jwt_settings.py,sha256=mRtzLZz1bntrl6UXAnIq6xilEEN8NS8oJSv62CGXOEs,971
@@ -103,8 +103,8 @@ fastgenerateapi/utils/snowflake.py,sha256=GiFVkE10sPiqJ094sMfrPsaV7Y9Y3c1djrSfgs
103
103
  fastgenerateapi/utils/str_util.py,sha256=c-jUlCFw-Dz4W1W9Jc1TqGZw3JXu-qN5ovnE6fjc9j0,3445
104
104
  fastgenerateapi/utils/swagger_to_js.py,sha256=pPPTag6TYtxdbKMHD3m8lJvc8Gv9HC97CGHt4esU1-E,530
105
105
  script/__init__.py,sha256=26UWatnbm6ZIwQMuu9NNzQ0IW1ACO4Oe9caModuTpWM,4
106
- fastgenerateapi-1.1.13.dist-info/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
107
- fastgenerateapi-1.1.13.dist-info/METADATA,sha256=219VndvGuoJ8InOYf6nMR_Brk2tLAD8hioW0GWrKN14,5964
108
- fastgenerateapi-1.1.13.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
109
- fastgenerateapi-1.1.13.dist-info/top_level.txt,sha256=CW2SlpYjTRdacF-5ufnPMtwpYcR0XYn_bDxa2ZrrTBI,23
110
- fastgenerateapi-1.1.13.dist-info/RECORD,,
106
+ fastgenerateapi-1.1.14.dist-info/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
107
+ fastgenerateapi-1.1.14.dist-info/METADATA,sha256=e7F1RULx1S9eqyTD9Z1hqkuWwT-m7LJYUaKl5qh4ZD0,6025
108
+ fastgenerateapi-1.1.14.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
109
+ fastgenerateapi-1.1.14.dist-info/top_level.txt,sha256=CW2SlpYjTRdacF-5ufnPMtwpYcR0XYn_bDxa2ZrrTBI,23
110
+ fastgenerateapi-1.1.14.dist-info/RECORD,,