fastgenerateapi 1.1.15__tar.gz → 1.1.17__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.

Potentially problematic release.


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

Files changed (114) hide show
  1. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/PKG-INFO +1 -1
  2. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/__version__.py +1 -1
  3. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/get_all_view.py +14 -5
  4. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/get_one_view.py +10 -1
  5. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/common_function.py +6 -7
  6. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +2 -2
  7. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi.egg-info/PKG-INFO +1 -1
  8. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/LICENSE +0 -0
  9. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/README.md +0 -0
  10. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/__init__.py +0 -0
  11. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/__init__.py +0 -0
  12. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/api_view.py +0 -0
  13. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/base_view.py +0 -0
  14. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/create_view.py +0 -0
  15. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
  16. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
  17. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/delete_view.py +0 -0
  18. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/get_relation_view.py +0 -0
  19. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/get_tree_view.py +0 -0
  20. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
  21. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
  22. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
  23. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
  24. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
  25. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
  26. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
  27. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
  28. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
  29. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
  30. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
  31. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +0 -0
  32. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
  33. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/sql_get_view.py +0 -0
  34. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/switch_view.py +0 -0
  35. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/update_relation_view.py +0 -0
  36. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/api_view/update_view.py +0 -0
  37. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/cache/__init__.py +0 -0
  38. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/cache/cache_decorator.py +0 -0
  39. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/cache/key_builder.py +0 -0
  40. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/channel/__init__.py +0 -0
  41. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/channel/connection_manager.py +0 -0
  42. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/channel/consumer.py +0 -0
  43. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/channel/websocket_view.py +0 -0
  44. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/controller/__init__.py +0 -0
  45. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/controller/filter_controller.py +0 -0
  46. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/controller/router_controller.py +0 -0
  47. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/controller/rpc_controller.py +0 -0
  48. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/controller/search_controller.py +0 -0
  49. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/controller/ws_controller.py +0 -0
  50. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/data_type/__init__.py +0 -0
  51. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/data_type/data_type.py +0 -0
  52. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
  53. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/deps/__init__.py +0 -0
  54. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/deps/filter_params_deps.py +0 -0
  55. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/deps/paginator_deps.py +0 -0
  56. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/deps/tree_params_deps.py +0 -0
  57. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/example/__init__.py +0 -0
  58. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/example/models.py +0 -0
  59. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/example/routers.py +0 -0
  60. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/example/schemas.py +0 -0
  61. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/example/views.py +0 -0
  62. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
  63. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/fastapi_utils/all.py +0 -0
  64. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
  65. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
  66. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/model/__init__.py +0 -0
  67. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/model/base_model.py +0 -0
  68. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/my_fields/__init__.py +0 -0
  69. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/my_fields/aes_field.py +0 -0
  70. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/my_fields/enum_field.py +0 -0
  71. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/my_fields/pk_field.py +0 -0
  72. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/my_fields/pwd_field.py +0 -0
  73. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
  74. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/my_fields/validator.py +0 -0
  75. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
  76. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
  77. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
  78. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
  79. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/__init__.py +0 -0
  80. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
  81. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/create_schema_factory.py +0 -0
  82. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
  83. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +0 -0
  84. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -0
  85. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +0 -0
  86. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
  87. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
  88. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/schemas_factory/update_schema_factory.py +0 -0
  89. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/__init__.py +0 -0
  90. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/all_settings.py +0 -0
  91. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/app_settings.py +0 -0
  92. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/db_settings.py +0 -0
  93. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/file_settings.py +0 -0
  94. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/jwt_settings.py +0 -0
  95. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/otlp_settings.py +0 -0
  96. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/redis_settings.py +0 -0
  97. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/sms_settings.py +0 -0
  98. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/settings/system_settings.py +0 -0
  99. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/__init__.py +0 -0
  100. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/aes.py +0 -0
  101. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/auto_discover.py +0 -0
  102. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/exception.py +0 -0
  103. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/file_utils.py +0 -0
  104. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/pwd_utils.py +0 -0
  105. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/ramdom_utils.py +0 -0
  106. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/snowflake.py +0 -0
  107. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/str_util.py +0 -0
  108. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi/utils/swagger_to_js.py +0 -0
  109. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
  110. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
  111. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/fastgenerateapi.egg-info/top_level.txt +0 -0
  112. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/script/__init__.py +0 -0
  113. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/setup.cfg +0 -0
  114. {fastgenerateapi-1.1.15 → fastgenerateapi-1.1.17}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.15
3
+ Version: 1.1.17
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, 1, 15)
11
+ VERSION = (1, 1, 17)
12
12
 
13
13
  __version__ = '.'.join(map(str, VERSION))
14
14
 
@@ -33,6 +33,7 @@ class GetAllView(BaseView, GetMixin):
33
33
  filter_schema: Optional[Type[PYDANTIC_SCHEMA]] = None
34
34
  filter_fields: Union[None, list] = None
35
35
  order_by_fields: Union[None, list] = None
36
+ auto_add_id_order: bool = True
36
37
  """
37
38
  get_all_route: 获取详情路由开关,可以放依赖函数列表
38
39
  get_all_schema: 返回序列化
@@ -45,6 +46,7 @@ class GetAllView(BaseView, GetMixin):
45
46
  filter_fields: 筛选对应字段
46
47
  example: name__contains or (create_at__gt, datetime) or (create_at__gt, datetime, create_time)
47
48
  order_by_fields: 排序对应字段
49
+ auto_add_id_order: 是否自动在 order_by_fields 后面追加id排序
48
50
  """
49
51
 
50
52
  async def get_all(self, search: Optional[str], filters: dict, *args, **kwargs) -> Union[BaseModel, dict, None]:
@@ -60,10 +62,11 @@ class GetAllView(BaseView, GetMixin):
60
62
  queryset = await self.filter_queryset(queryset, filters, *args, **kwargs)
61
63
  queryset = self.filter_controller.query(queryset=queryset, values=filters)
62
64
  queryset = queryset.prefetch_related(*self.prefetch_related_fields.keys())
65
+ if self.auto_add_id_order:
66
+ self.order_by_fields = self.order_by_fields or []
67
+ self.order_by_fields.append("id")
63
68
  if self.order_by_fields:
64
- queryset = queryset.order_by(*self.order_by_fields, "id")
65
- else:
66
- queryset = queryset.order_by("id")
69
+ queryset = queryset.order_by(*self.order_by_fields)
67
70
 
68
71
  return queryset
69
72
 
@@ -166,9 +169,15 @@ class GetAllView(BaseView, GetMixin):
166
169
  return
167
170
  self.search_controller = SearchController(self.get_base_filter(self.search_fields))
168
171
  self.filter_controller = FilterController(self.get_base_filter(self.filter_fields, self.filter_schema))
172
+ get_all_schema_include = []
173
+ if self.prefetch_related_fields:
174
+ for key, value in self.prefetch_related_fields.items():
175
+ if value and type(value) in [list, tuple, set]:
176
+ for val in value:
177
+ get_all_schema_include.append(key + "__" + val)
169
178
  self.get_all_schema = self.get_all_schema or get_all_schema_factory(
170
- self.model_class) or self.get_one_schema if hasattr(self, "get_one_schema") else get_one_schema_factory(
171
- self.model_class)
179
+ self.model_class, include=get_all_schema_include
180
+ ) or self.get_one_schema if hasattr(self, "get_one_schema") else get_one_schema_factory(self.model_class)
172
181
  self.get_page_schema = get_page_schema_factory(self.get_all_schema)
173
182
  self.get_list_schema = get_list_schema_factory(self.get_all_schema)
174
183
  self.get_all_response_schema = response_factory(self.get_page_schema, name="GetPage")
@@ -66,7 +66,16 @@ class GetOneView(BaseView, GetMixin):
66
66
  def _handler_get_one_settings(self):
67
67
  if not self.get_one_route:
68
68
  return
69
- self.get_one_schema = self.schema or self.get_one_schema or get_one_schema_factory(model_class=self.model_class)
69
+ get_one_schema_include = []
70
+ if self.is_with_prefetch and self.prefetch_related_fields:
71
+ for key, value in self.prefetch_related_fields.items():
72
+ if value and type(value) in [list, tuple, set]:
73
+ for val in value:
74
+ get_one_schema_include.append(key + "__" + val)
75
+ self.get_one_schema = self.schema or self.get_one_schema or get_one_schema_factory(
76
+ model_class=self.model_class,
77
+ include=get_one_schema_include,
78
+ )
70
79
  self.get_one_response_schema = response_factory(self.get_one_schema, name="GetOne")
71
80
  doc = self.get_one.__doc__
72
81
  summary = doc.strip().split("\n")[0] if self.get_one.__doc__ else "Get One"
@@ -15,15 +15,14 @@ def get_field_info(value, description="", default_field_type=None) -> (Type, Fie
15
15
  required = False
16
16
  if value.field_type is None:
17
17
  if default_field_type:
18
- field_type = Optional[default_field_type]
18
+ value.field_type = default_field_type
19
19
  else:
20
- field_type = Optional[str]
20
+ value.field_type = str
21
+ if hasattr(value, "null") and value.null:
22
+ field_type = Optional[value.field_type]
21
23
  else:
22
- if hasattr(value, "null") and value.null:
23
- field_type = Optional[value.field_type]
24
- else:
25
- field_type = value.field_type
26
- required = True
24
+ field_type = value.field_type
25
+ required = True
27
26
  field_info_dict = {"required": required}
28
27
  if not required and hasattr(value, "default") and not hasattr(value.default, '__call__'):
29
28
  field_info_dict.setdefault("default", value.default)
@@ -16,14 +16,14 @@ def get_all_schema_factory(
16
16
  include: Union[list, tuple, set] = None,
17
17
  extra_include: Union[list, tuple, set] = None,
18
18
  exclude: Union[list, tuple, set] = None,
19
- name: Optional[str] = None
19
+ name: Optional[str] = None,
20
20
  ) -> Optional[Type[T]]:
21
21
  """
22
22
  Is used to create a GetAllSchema
23
23
  """
24
24
  if not hasattr(model_class, "PydanticMeta"):
25
25
  return None
26
- if not hasattr(model_class.PydanticMeta, "get_all_include") and not hasattr(model_class.PydanticMeta, "get_all_exclude"):
26
+ if not include and not extra_include and not exclude and not hasattr(model_class.PydanticMeta, "get_all_include") and not hasattr(model_class.PydanticMeta, "get_all_exclude"):
27
27
  return None
28
28
 
29
29
  all_fields_info = get_dict_from_model_fields(model_class)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.15
3
+ Version: 1.1.17
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com