fastgenerateapi 1.2.15__tar.gz → 1.2.16__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.
Files changed (116) hide show
  1. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/PKG-INFO +1 -1
  2. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/__version__.py +1 -1
  3. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/base_view.py +7 -4
  4. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_all_view.py +20 -4
  5. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/common_function.py +1 -1
  6. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/PKG-INFO +1 -1
  7. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/LICENSE +0 -0
  8. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/README.md +0 -0
  9. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/__init__.py +0 -0
  10. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/__init__.py +0 -0
  11. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/api_view.py +0 -0
  12. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/create_view.py +0 -0
  13. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
  14. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
  15. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/delete_view.py +0 -0
  16. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_one_view.py +0 -0
  17. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_relation_view.py +0 -0
  18. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_tree_view.py +0 -0
  19. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
  20. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
  21. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
  22. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
  23. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
  24. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
  25. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
  26. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
  27. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
  28. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
  29. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
  30. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +0 -0
  31. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
  32. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/switch_view.py +0 -0
  33. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/update_relation_view.py +0 -0
  34. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/update_view.py +0 -0
  35. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/cache/__init__.py +0 -0
  36. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/cache/cache_decorator.py +0 -0
  37. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/cache/key_builder.py +0 -0
  38. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/__init__.py +0 -0
  39. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/connection_manager.py +0 -0
  40. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/consumer.py +0 -0
  41. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/websocket_view.py +0 -0
  42. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/__init__.py +0 -0
  43. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/filter_controller.py +0 -0
  44. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/router_controller.py +0 -0
  45. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/rpc_controller.py +0 -0
  46. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/search_controller.py +0 -0
  47. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/ws_controller.py +0 -0
  48. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/data_type/__init__.py +0 -0
  49. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/data_type/data_type.py +0 -0
  50. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
  51. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/deps/__init__.py +0 -0
  52. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/deps/filter_params_deps.py +0 -0
  53. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/deps/tree_params_deps.py +0 -0
  54. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/example/__init__.py +0 -0
  55. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/example/models.py +0 -0
  56. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/example/routers.py +0 -0
  57. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/example/schemas.py +0 -0
  58. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/example/views.py +0 -0
  59. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
  60. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/all.py +0 -0
  61. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
  62. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
  63. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/tortoise_utils.py +0 -0
  64. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/model/__init__.py +0 -0
  65. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/model/base_model.py +0 -0
  66. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/__init__.py +0 -0
  67. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/aes_field.py +0 -0
  68. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/enum_field.py +0 -0
  69. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/pk_field.py +0 -0
  70. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/pwd_field.py +0 -0
  71. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
  72. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/validator.py +0 -0
  73. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
  74. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
  75. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
  76. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
  77. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/__init__.py +0 -0
  78. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
  79. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/create_schema_factory.py +0 -0
  80. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
  81. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +0 -0
  82. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +0 -0
  83. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -0
  84. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +0 -0
  85. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
  86. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
  87. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/update_schema_factory.py +0 -0
  88. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/__init__.py +0 -0
  89. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/all_settings.py +0 -0
  90. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/app_settings.py +0 -0
  91. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/db_settings.py +0 -0
  92. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/etcd_settings.py +0 -0
  93. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/file_settings.py +0 -0
  94. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/jwt_settings.py +0 -0
  95. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/otlp_settings.py +0 -0
  96. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/redis_settings.py +0 -0
  97. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/sms_settings.py +0 -0
  98. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/system_settings.py +0 -0
  99. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/__init__.py +0 -0
  100. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/aes.py +0 -0
  101. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/auto_discover.py +0 -0
  102. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/exception.py +0 -0
  103. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/file_utils.py +0 -0
  104. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/pwd_utils.py +0 -0
  105. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/ramdom_utils.py +0 -0
  106. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/snowflake.py +0 -0
  107. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/str_util.py +0 -0
  108. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/swagger_to_js.py +0 -0
  109. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/validator/__init__.py +0 -0
  110. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi/validator/validator.py +0 -0
  111. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
  112. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
  113. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/top_level.txt +0 -0
  114. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/script/__init__.py +0 -0
  115. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/setup.cfg +0 -0
  116. {fastgenerateapi-1.2.15 → fastgenerateapi-1.2.16}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.2.15
3
+ Version: 1.2.16
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com
@@ -8,7 +8,7 @@
8
8
  # d8888P
9
9
 
10
10
 
11
- VERSION = (1, 2, 15)
11
+ VERSION = (1, 2, 16)
12
12
 
13
13
  __version__ = '.'.join(map(str, VERSION))
14
14
 
@@ -5,6 +5,7 @@ from typing import Optional, Type, List, Union, Sequence, Dict, Any
5
5
  from urllib.parse import parse_qs
6
6
 
7
7
  from fastapi import params
8
+ from pydantic._internal._model_construction import ModelMetaclass
8
9
  from tortoise.queryset import QuerySet
9
10
 
10
11
  from pydantic import create_model, BaseModel
@@ -101,7 +102,7 @@ class BaseView(BaseMixin, ResponseMixin, ToolMixin, DBModelMixin):
101
102
  if not prefetch_related_fields:
102
103
  return model
103
104
  for key, value_list in prefetch_related_fields.items():
104
- if value_list is None:
105
+ if value_list is None or isinstance(value_list, ModelMetaclass):
105
106
  continue
106
107
  if isinstance(value_list, str):
107
108
  value_list = [value_list]
@@ -115,9 +116,9 @@ class BaseView(BaseMixin, ResponseMixin, ToolMixin, DBModelMixin):
115
116
  key = key.replace("__", "_")
116
117
  for value in value_list:
117
118
  if type(value) == str:
118
- setattr(model, key + "_" + value, getattr(attr_model, value, None) if attr_model else None)
119
+ setattr(model, key + "_" + value, getattr(attr_model, value, None))
119
120
  elif type(value) == tuple and len(value) == 2:
120
- setattr(model, value[1], getattr(attr_model, value[0], None) if attr_model else None)
121
+ setattr(model, value[1], getattr(attr_model, value[0], None))
121
122
  return model
122
123
 
123
124
  @staticmethod
@@ -239,7 +240,9 @@ class BaseView(BaseMixin, ResponseMixin, ToolMixin, DBModelMixin):
239
240
  schema_include = []
240
241
  for key, value in self.prefetch_related_fields.items():
241
242
  if not value:
242
- schema_include.append([key, Optional[Any]])
243
+ continue
244
+ if isinstance(value, ModelMetaclass):
245
+ schema_include.append((key, Optional[value]))
243
246
  elif type(value) in [list, tuple, set]:
244
247
  for val in value:
245
248
  val_str = val
@@ -88,6 +88,12 @@ class GetAllView(BaseView, GetMixin):
88
88
  """
89
89
  return queryset
90
90
 
91
+ async def set_get_all_model_list(self, model_list: List[Model], *args, **kwargs) -> List[Model]:
92
+ """
93
+ 对于查询的model,展示数据处理
94
+ """
95
+ return model_list
96
+
91
97
  async def set_get_all_model(self, model: Model, *args, **kwargs) -> Model:
92
98
  """
93
99
  对于查询的model,展示数据处理
@@ -99,6 +105,7 @@ class GetAllView(BaseView, GetMixin):
99
105
  queryset: QuerySet,
100
106
  schema: Type[BaseModel] = None,
101
107
  paginator: Optional[PagePydantic] = PagePydantic(),
108
+ model_handler: Optional[Callable] = None,
102
109
  model_handler_list: Optional[List[Callable]] = None,
103
110
  *args, **kwargs,
104
111
  ):
@@ -107,6 +114,7 @@ class GetAllView(BaseView, GetMixin):
107
114
  :param queryset:
108
115
  :param schema:
109
116
  :param paginator:
117
+ :param model_handler:
110
118
  :param model_handler_list:
111
119
  :param args:
112
120
  :param kwargs:
@@ -120,15 +128,23 @@ class GetAllView(BaseView, GetMixin):
120
128
  queryset = queryset.offset(cast(int, (paginator.page - 1) * paginator.page_size))
121
129
  model_list = await queryset.limit(paginator.page_size)
122
130
 
131
+ if model_handler:
132
+ if is_async_callable(model_handler):
133
+ model_list = await model_handler(model_list, paginator=paginator, *args, **kwargs)
134
+ else:
135
+ model_list = model_handler(model_list, paginator=paginator, *args, **kwargs)
136
+ if not schema:
137
+ model_list = await self.set_get_all_model_list(model_list, paginator=paginator, *args, **kwargs)
138
+
123
139
  data_list = []
124
140
  for model in model_list:
125
141
  await self.setattr_model(model,*args, **kwargs)
126
142
  if model_handler_list:
127
- for model_handler in model_handler_list:
128
- if is_async_callable(model_handler):
129
- model = await model_handler(model, paginator=paginator,*args, **kwargs)
143
+ for i_model_handler in model_handler_list:
144
+ if is_async_callable(i_model_handler):
145
+ model = await i_model_handler(model, paginator=paginator,*args, **kwargs)
130
146
  else:
131
- model = model_handler(model, paginator=paginator,*args, **kwargs)
147
+ model = i_model_handler(model, paginator=paginator,*args, **kwargs)
132
148
  if schema:
133
149
  data_list.append(schema.model_validate(model))
134
150
  else:
@@ -103,7 +103,7 @@ def get_dict_from_pydanticmeta(model_class: Type[Model], data: Union[list, tuple
103
103
  if settings.app_settings.SCHEMAS_UNDERLINE_WHETHER_DOUBLE_TO_SINGLE:
104
104
  key_field = key_field.replace("__", "_")
105
105
  fields_info.setdefault(key_field, (field_type, field_info))
106
- elif isinstance(field, tuple):
106
+ elif isinstance(field, (tuple, list)):
107
107
  key_field = field[0]
108
108
  field_type, field_info = get_field_info_from_model_class(model_class, field[0])
109
109
  if len(field) == 2:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.2.15
3
+ Version: 1.2.16
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com