fastgenerateapi 1.2.12__tar.gz → 1.2.13__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 (119) hide show
  1. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/PKG-INFO +1 -1
  2. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/__version__.py +1 -1
  3. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/create_schema_factory.py +50 -51
  4. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +57 -58
  5. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +58 -59
  6. fastgenerateapi-1.2.13/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +101 -0
  7. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +34 -35
  8. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/update_schema_factory.py +50 -51
  9. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/validator/validator.py +1 -1
  10. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi.egg-info/PKG-INFO +1 -1
  11. fastgenerateapi-1.2.12/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -102
  12. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/LICENSE +0 -0
  13. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/README.md +0 -0
  14. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/__init__.py +0 -0
  15. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/__init__.py +0 -0
  16. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/api_view.py +0 -0
  17. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/base_view.py +0 -0
  18. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/create_view.py +0 -0
  19. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
  20. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
  21. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/delete_view.py +0 -0
  22. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/get_all_view.py +0 -0
  23. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/get_one_view.py +0 -0
  24. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/get_relation_view.py +0 -0
  25. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/get_tree_view.py +0 -0
  26. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
  27. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
  28. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
  29. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
  30. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
  31. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
  32. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
  33. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
  34. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
  35. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
  36. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
  37. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +0 -0
  38. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
  39. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/sql_get_view.py +0 -0
  40. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/switch_view.py +0 -0
  41. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/update_relation_view.py +0 -0
  42. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/api_view/update_view.py +0 -0
  43. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/cache/__init__.py +0 -0
  44. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/cache/cache_decorator.py +0 -0
  45. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/cache/key_builder.py +0 -0
  46. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/channel/__init__.py +0 -0
  47. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/channel/connection_manager.py +0 -0
  48. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/channel/consumer.py +0 -0
  49. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/channel/websocket_view.py +0 -0
  50. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/controller/__init__.py +0 -0
  51. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/controller/filter_controller.py +0 -0
  52. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/controller/router_controller.py +0 -0
  53. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/controller/rpc_controller.py +0 -0
  54. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/controller/search_controller.py +0 -0
  55. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/controller/ws_controller.py +0 -0
  56. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/data_type/__init__.py +0 -0
  57. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/data_type/data_type.py +0 -0
  58. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
  59. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/deps/__init__.py +0 -0
  60. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/deps/filter_params_deps.py +0 -0
  61. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/deps/paginator_deps.py +0 -0
  62. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/deps/tree_params_deps.py +0 -0
  63. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/example/__init__.py +0 -0
  64. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/example/models.py +0 -0
  65. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/example/routers.py +0 -0
  66. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/example/schemas.py +0 -0
  67. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/example/views.py +0 -0
  68. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
  69. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/fastapi_utils/all.py +0 -0
  70. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
  71. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
  72. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/fastapi_utils/tortoise_utils.py +0 -0
  73. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/model/__init__.py +0 -0
  74. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/model/base_model.py +0 -0
  75. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/my_fields/__init__.py +0 -0
  76. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/my_fields/aes_field.py +0 -0
  77. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/my_fields/enum_field.py +0 -0
  78. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/my_fields/pk_field.py +0 -0
  79. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/my_fields/pwd_field.py +0 -0
  80. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
  81. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/my_fields/validator.py +0 -0
  82. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
  83. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
  84. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
  85. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
  86. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/__init__.py +0 -0
  87. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/common_function.py +0 -0
  88. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
  89. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
  90. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
  91. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
  92. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/__init__.py +0 -0
  93. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/all_settings.py +0 -0
  94. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/app_settings.py +0 -0
  95. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/db_settings.py +0 -0
  96. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/etcd_settings.py +0 -0
  97. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/file_settings.py +0 -0
  98. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/jwt_settings.py +0 -0
  99. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/otlp_settings.py +0 -0
  100. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/redis_settings.py +0 -0
  101. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/sms_settings.py +0 -0
  102. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/settings/system_settings.py +0 -0
  103. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/__init__.py +0 -0
  104. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/aes.py +0 -0
  105. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/auto_discover.py +0 -0
  106. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/exception.py +0 -0
  107. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/file_utils.py +0 -0
  108. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/pwd_utils.py +0 -0
  109. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/ramdom_utils.py +0 -0
  110. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/snowflake.py +0 -0
  111. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/str_util.py +0 -0
  112. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/utils/swagger_to_js.py +0 -0
  113. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi/validator/__init__.py +0 -0
  114. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
  115. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
  116. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/fastgenerateapi.egg-info/top_level.txt +0 -0
  117. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/script/__init__.py +0 -0
  118. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/setup.cfg +0 -0
  119. {fastgenerateapi-1.2.12 → fastgenerateapi-1.2.13}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.2.12
3
+ Version: 1.2.13
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, 12)
11
+ VERSION = (1, 2, 13)
12
12
 
13
13
  __version__ = '.'.join(map(str, VERSION))
14
14
 
@@ -17,6 +17,7 @@ def create_schema_factory(
17
17
  extra_include: Union[list, tuple, set] = None,
18
18
  exclude: Union[list, tuple, set] = None,
19
19
  frozen_exclude: Union[list, tuple, set] = ("created_at", "updated_at", "modified_at"),
20
+ pydantic_meta: Optional[bool] = True,
20
21
  pydantic_meta_include: Union[list, tuple, set] = None,
21
22
  pydantic_meta_exclude: Optional[bool] = True,
22
23
  pydantic_meta_save_include: Optional[bool] = True,
@@ -84,59 +85,57 @@ def create_schema_factory(
84
85
  include_fields_dict = get_dict_from_pydanticmeta(model_class, include)
85
86
  all_fields_info.update(include_fields_dict)
86
87
  include_fields.update(include_fields_dict.keys())
87
- else:
88
- if hasattr(model_class, "PydanticMeta"):
89
- if pydantic_meta_include:
90
- include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
91
- all_fields_info.update(include_fields_dict)
92
- include_fields.update(include_fields_dict.keys())
93
- else:
94
- if hasattr(model_class.PydanticMeta, "include"):
95
- include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
96
- all_fields_info.update(include_fields_dict)
97
- include_fields.update(include_fields_dict.keys())
98
- else:
99
- include_fields.update(all_fields_info.keys())
100
- if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
101
- exclude_fields.update(model_class.PydanticMeta.exclude)
102
- if pydantic_meta_save_include and hasattr(model_class.PydanticMeta, "save_include"):
103
- save_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.save_include)
104
- all_fields_info.update(save_include_fields_dict)
105
- include_fields.update(save_include_fields_dict.keys())
106
- if pydantic_meta_create_include and hasattr(model_class.PydanticMeta, "create_include"):
107
- create_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.create_include)
108
- all_fields_info.update(create_include_fields_dict)
109
- include_fields.update(create_include_fields_dict.keys())
110
- if pydantic_meta_save_exclude and hasattr(model_class.PydanticMeta, "save_exclude"):
111
- exclude_fields.update(model_class.PydanticMeta.save_exclude)
112
- if pydantic_meta_create_exclude and hasattr(model_class.PydanticMeta, "create_exclude"):
113
- exclude_fields.update(model_class.PydanticMeta.create_exclude)
114
- if pydantic_meta_save_validate and hasattr(model_class.PydanticMeta, "save_validate"):
115
- for validate in model_class.PydanticMeta.save_validate:
116
- file_type, file_info = all_fields_info.get(validate[0])
117
- validate_field_info.append(FieldValidateInfo(
118
- name=validate[0],
119
- is_required=file_info.is_required(),
120
- description=file_info.description,
121
- func=validate[1],
122
- ))
123
- if pydantic_meta_create_validate and hasattr(model_class.PydanticMeta, "create_validate"):
124
- for validate in model_class.PydanticMeta.create_validate:
125
- file_type, file_info = all_fields_info.get(validate[0])
126
- validate_field_info.append(FieldValidateInfo(
127
- name=validate[0],
128
- is_required=file_info.is_required(),
129
- description=file_info.description,
130
- func=validate[1],
131
- ))
132
- if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
133
- text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
134
- for field in text_to_list_fields:
135
- field_info = all_fields_info.get(field)[1]
136
- field_type = Union[List[str], str] if field_info.is_required() else Union[List[str], str, None]
137
- all_fields_info.update({field: (field_type, field_info)})
88
+ elif pydantic_meta and hasattr(model_class, "PydanticMeta"):
89
+ if pydantic_meta_include:
90
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
91
+ all_fields_info.update(include_fields_dict)
92
+ include_fields.update(include_fields_dict.keys())
93
+ elif hasattr(model_class.PydanticMeta, "include"):
94
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
95
+ all_fields_info.update(include_fields_dict)
96
+ include_fields.update(include_fields_dict.keys())
138
97
  else:
139
98
  include_fields.update(all_fields_info.keys())
99
+ if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
100
+ exclude_fields.update(model_class.PydanticMeta.exclude)
101
+ if pydantic_meta_save_include and hasattr(model_class.PydanticMeta, "save_include"):
102
+ save_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.save_include)
103
+ all_fields_info.update(save_include_fields_dict)
104
+ include_fields.update(save_include_fields_dict.keys())
105
+ if pydantic_meta_create_include and hasattr(model_class.PydanticMeta, "create_include"):
106
+ create_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.create_include)
107
+ all_fields_info.update(create_include_fields_dict)
108
+ include_fields.update(create_include_fields_dict.keys())
109
+ if pydantic_meta_save_exclude and hasattr(model_class.PydanticMeta, "save_exclude"):
110
+ exclude_fields.update(model_class.PydanticMeta.save_exclude)
111
+ if pydantic_meta_create_exclude and hasattr(model_class.PydanticMeta, "create_exclude"):
112
+ exclude_fields.update(model_class.PydanticMeta.create_exclude)
113
+ if pydantic_meta_save_validate and hasattr(model_class.PydanticMeta, "save_validate"):
114
+ for validate in model_class.PydanticMeta.save_validate:
115
+ file_type, file_info = all_fields_info.get(validate[0])
116
+ validate_field_info.append(FieldValidateInfo(
117
+ name=validate[0],
118
+ is_required=file_info.is_required(),
119
+ description=file_info.description,
120
+ func=validate[1],
121
+ ))
122
+ if pydantic_meta_create_validate and hasattr(model_class.PydanticMeta, "create_validate"):
123
+ for validate in model_class.PydanticMeta.create_validate:
124
+ file_type, file_info = all_fields_info.get(validate[0])
125
+ validate_field_info.append(FieldValidateInfo(
126
+ name=validate[0],
127
+ is_required=file_info.is_required(),
128
+ description=file_info.description,
129
+ func=validate[1],
130
+ ))
131
+ if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
132
+ text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
133
+ for field in text_to_list_fields:
134
+ field_info = all_fields_info.get(field)[1]
135
+ field_type = Union[List[str], str] if field_info.is_required() else Union[List[str], str, None]
136
+ all_fields_info.update({field: (field_type, field_info)})
137
+ else:
138
+ include_fields.update(all_fields_info.keys())
140
139
 
141
140
  if extra_include:
142
141
  include_fields_dict = get_dict_from_pydanticmeta(model_class, extra_include)
@@ -24,6 +24,7 @@ def get_all_schema_factory(
24
24
  include: Union[list, tuple, set] = None,
25
25
  extra_include: Union[list, tuple, set] = None,
26
26
  exclude: Union[list, tuple, set] = None,
27
+ pydantic_meta: Optional[bool] = True,
27
28
  pydantic_meta_include: Union[list, tuple, set] = None,
28
29
  pydantic_meta_exclude: Optional[bool] = True,
29
30
  pydantic_meta_get_include: Optional[bool] = True,
@@ -93,67 +94,65 @@ def get_all_schema_factory(
93
94
  include_fields_dict = get_dict_from_pydanticmeta(model_class, include)
94
95
  all_fields_info = {**include_fields_dict, **all_fields_info}
95
96
  include_fields.update(include_fields_dict.keys())
96
- else:
97
- if hasattr(model_class, "PydanticMeta"):
98
- if pydantic_meta_include:
99
- include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
100
- all_fields_info.update(include_fields_dict)
101
- include_fields.update(include_fields_dict.keys())
102
- else:
103
- if hasattr(model_class.PydanticMeta, "include"):
104
- include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
105
- all_fields_info.update(include_fields_dict)
106
- include_fields.update(include_fields_dict.keys())
107
- else:
108
- include_fields.update(all_fields_info.keys())
109
- if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
110
- exclude_fields.update(model_class.PydanticMeta.exclude)
111
-
112
- if pydantic_meta_get_include and hasattr(model_class.PydanticMeta, "get_include"):
113
- get_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_include)
114
- all_fields_info.update(get_include_fields_dict)
115
- include_fields.update(get_include_fields_dict.keys())
116
- if pydantic_meta_get_exclude and hasattr(model_class.PydanticMeta, "get_exclude"):
117
- exclude_fields.update(model_class.PydanticMeta.get_exclude)
118
-
119
- if pydantic_meta_get_all_include and hasattr(model_class.PydanticMeta, "get_all_include"):
120
- get_all_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_all_include)
121
- all_fields_info.update(get_all_include_fields_dict)
122
- include_fields.update(get_all_include_fields_dict.keys())
123
- if pydantic_meta_get_all_exclude and hasattr(model_class.PydanticMeta, "get_all_exclude"):
124
- exclude_fields.update(model_class.PydanticMeta.get_all_exclude)
125
- if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
126
- text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
127
- for field in text_to_list_fields:
128
- field_info = all_fields_info.get(field)[1]
129
- field_type = List[str] if field_info.is_required() else Optional[List[str]]
130
- all_fields_info.update({field: (field_type, field_info)})
97
+ elif pydantic_meta and hasattr(model_class, "PydanticMeta"):
98
+ if pydantic_meta_include:
99
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
100
+ all_fields_info.update(include_fields_dict)
101
+ include_fields.update(include_fields_dict.keys())
102
+ elif hasattr(model_class.PydanticMeta, "include"):
103
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
104
+ all_fields_info.update(include_fields_dict)
105
+ include_fields.update(include_fields_dict.keys())
131
106
  else:
132
107
  include_fields.update(all_fields_info.keys())
108
+ if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
109
+ exclude_fields.update(model_class.PydanticMeta.exclude)
110
+
111
+ if pydantic_meta_get_include and hasattr(model_class.PydanticMeta, "get_include"):
112
+ get_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_include)
113
+ all_fields_info.update(get_include_fields_dict)
114
+ include_fields.update(get_include_fields_dict.keys())
115
+ if pydantic_meta_get_exclude and hasattr(model_class.PydanticMeta, "get_exclude"):
116
+ exclude_fields.update(model_class.PydanticMeta.get_exclude)
117
+
118
+ if pydantic_meta_get_all_include and hasattr(model_class.PydanticMeta, "get_all_include"):
119
+ get_all_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_all_include)
120
+ all_fields_info.update(get_all_include_fields_dict)
121
+ include_fields.update(get_all_include_fields_dict.keys())
122
+ if pydantic_meta_get_all_exclude and hasattr(model_class.PydanticMeta, "get_all_exclude"):
123
+ exclude_fields.update(model_class.PydanticMeta.get_all_exclude)
124
+ if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
125
+ text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
126
+ for field in text_to_list_fields:
127
+ field_info = all_fields_info.get(field)[1]
128
+ field_type = List[str] if field_info.is_required() else Optional[List[str]]
129
+ all_fields_info.update({field: (field_type, field_info)})
130
+ else:
131
+ include_fields.update(all_fields_info.keys())
133
132
 
134
- if extra_include:
135
- include_fields_dict = get_dict_from_pydanticmeta(model_class, extra_include)
136
- all_fields_info.update(include_fields_dict)
137
- include_fields.update(include_fields_dict.keys())
138
- if exclude:
139
- exclude_fields.update(exclude)
140
-
141
- all_fields = include_fields.difference(exclude_fields)
142
- if settings.app_settings.GET_EXCLUDE_ACTIVE_VALUE:
143
- try:
144
- all_fields.remove(settings.app_settings.WHETHER_DELETE_FIELD)
145
- except Exception:
146
- ...
147
-
148
- schema_name = name if name else model_class.__name__ + "GetAllSchema"
149
- text_to_list_validators_dict = get_model_validate_text_to_list(text_to_list_fields)
150
- schema: Type[T] = create_model(
151
- schema_name,
152
- **{field: all_fields_info[field] for field in all_fields},
153
- __config__=model_config,
154
- __validators__={**text_to_list_validators_dict},
155
- )
156
- return schema
133
+ if extra_include:
134
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, extra_include)
135
+ all_fields_info.update(include_fields_dict)
136
+ include_fields.update(include_fields_dict.keys())
137
+ if exclude:
138
+ exclude_fields.update(exclude)
139
+
140
+ all_fields = include_fields.difference(exclude_fields)
141
+ if settings.app_settings.GET_EXCLUDE_ACTIVE_VALUE:
142
+ try:
143
+ all_fields.remove(settings.app_settings.WHETHER_DELETE_FIELD)
144
+ except Exception:
145
+ ...
146
+
147
+ schema_name = name if name else model_class.__name__ + "GetAllSchema"
148
+ text_to_list_validators_dict = get_model_validate_text_to_list(text_to_list_fields)
149
+ schema: Type[T] = create_model(
150
+ schema_name,
151
+ **{field: all_fields_info[field] for field in all_fields},
152
+ __config__=model_config,
153
+ __validators__={**text_to_list_validators_dict},
154
+ )
155
+ return schema
157
156
 
158
157
 
159
158
  def get_list_schema_factory(schema_cls: Type[T] = None, response_field: Optional[str] = None, name: str = "") -> Type[T]:
@@ -25,6 +25,7 @@ def get_one_schema_factory(
25
25
  include: Union[list, tuple, set] = None,
26
26
  extra_include: Union[list, tuple, set] = None,
27
27
  exclude: Union[list, tuple, set] = None,
28
+ pydantic_meta: Optional[bool] = True,
28
29
  pydantic_meta_include: Union[list, tuple, set] = None,
29
30
  pydantic_meta_exclude: Optional[bool] = True,
30
31
  pydantic_meta_get_include: Optional[bool] = True,
@@ -91,68 +92,66 @@ def get_one_schema_factory(
91
92
  include_fields_dict = get_dict_from_pydanticmeta(model_class, include)
92
93
  all_fields_info = {**include_fields_dict, **all_fields_info}
93
94
  include_fields.update(include_fields_dict.keys())
94
- else:
95
- if hasattr(model_class, "PydanticMeta"):
96
- if pydantic_meta_include:
97
- include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
98
- all_fields_info.update(include_fields_dict)
99
- include_fields.update(include_fields_dict.keys())
100
- else:
101
- if hasattr(model_class.PydanticMeta, "include"):
102
- include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
103
- all_fields_info.update(include_fields_dict)
104
- include_fields.update(include_fields_dict.keys())
105
- else:
106
- include_fields.update(all_fields_info.keys())
107
- if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
108
- exclude_fields.update(model_class.PydanticMeta.exclude)
109
-
110
- if pydantic_meta_get_include and hasattr(model_class.PydanticMeta, "get_include"):
111
- get_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_include)
112
- all_fields_info.update(get_include_fields_dict)
113
- include_fields.update(get_include_fields_dict.keys())
114
- if pydantic_meta_get_exclude and hasattr(model_class.PydanticMeta, "get_exclude"):
115
- exclude_fields.update(model_class.PydanticMeta.get_exclude)
116
-
117
- if pydantic_meta_get_one_include and hasattr(model_class.PydanticMeta, "get_one_include"):
118
- get_one_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_one_include)
119
- all_fields_info.update(get_one_include_fields_dict)
120
- include_fields.update(get_one_include_fields_dict.keys())
121
- if pydantic_meta_get_one_exclude and hasattr(model_class.PydanticMeta, "get_one_exclude"):
122
- exclude_fields.update(model_class.PydanticMeta.get_one_exclude)
123
- if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
124
- text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
125
- for field in text_to_list_fields:
126
- field_info = all_fields_info.get(field)[1]
127
- field_type = List[str] if field_info.is_required() else Optional[List[str]]
128
- all_fields_info.update({field: (field_type, field_info)})
95
+ elif pydantic_meta and hasattr(model_class, "PydanticMeta"):
96
+ if pydantic_meta_include:
97
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
98
+ all_fields_info.update(include_fields_dict)
99
+ include_fields.update(include_fields_dict.keys())
100
+ elif hasattr(model_class.PydanticMeta, "include"):
101
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
102
+ all_fields_info.update(include_fields_dict)
103
+ include_fields.update(include_fields_dict.keys())
129
104
  else:
130
105
  include_fields.update(all_fields_info.keys())
106
+ if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
107
+ exclude_fields.update(model_class.PydanticMeta.exclude)
108
+
109
+ if pydantic_meta_get_include and hasattr(model_class.PydanticMeta, "get_include"):
110
+ get_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_include)
111
+ all_fields_info.update(get_include_fields_dict)
112
+ include_fields.update(get_include_fields_dict.keys())
113
+ if pydantic_meta_get_exclude and hasattr(model_class.PydanticMeta, "get_exclude"):
114
+ exclude_fields.update(model_class.PydanticMeta.get_exclude)
115
+
116
+ if pydantic_meta_get_one_include and hasattr(model_class.PydanticMeta, "get_one_include"):
117
+ get_one_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_one_include)
118
+ all_fields_info.update(get_one_include_fields_dict)
119
+ include_fields.update(get_one_include_fields_dict.keys())
120
+ if pydantic_meta_get_one_exclude and hasattr(model_class.PydanticMeta, "get_one_exclude"):
121
+ exclude_fields.update(model_class.PydanticMeta.get_one_exclude)
122
+ if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
123
+ text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
124
+ for field in text_to_list_fields:
125
+ field_info = all_fields_info.get(field)[1]
126
+ field_type = List[str] if field_info.is_required() else Optional[List[str]]
127
+ all_fields_info.update({field: (field_type, field_info)})
128
+ else:
129
+ include_fields.update(all_fields_info.keys())
131
130
 
132
- if extra_include:
133
- include_fields_dict = get_dict_from_pydanticmeta(model_class, extra_include)
134
- all_fields_info.update(include_fields_dict)
135
- include_fields.update(include_fields_dict.keys())
136
- if exclude:
137
- exclude_fields.update(exclude)
138
-
139
- all_fields = include_fields.difference(exclude_fields)
140
-
141
- if settings.app_settings.GET_EXCLUDE_ACTIVE_VALUE:
142
- try:
143
- all_fields.remove(settings.app_settings.WHETHER_DELETE_FIELD)
144
- except Exception:
145
- ...
146
-
147
- schema_name = name if name else model_class.__name__ + "GetOneSchema"
148
- text_to_list_validators_dict = get_model_validate_text_to_list(text_to_list_fields)
149
- schema: Type[T] = create_model(
150
- schema_name,
151
- **{field: all_fields_info[field] for field in all_fields},
152
- __config__=model_config,
153
- __validators__={**text_to_list_validators_dict},
154
- )
155
- return schema
131
+ if extra_include:
132
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, extra_include)
133
+ all_fields_info.update(include_fields_dict)
134
+ include_fields.update(include_fields_dict.keys())
135
+ if exclude:
136
+ exclude_fields.update(exclude)
137
+
138
+ all_fields = include_fields.difference(exclude_fields)
139
+
140
+ if settings.app_settings.GET_EXCLUDE_ACTIVE_VALUE:
141
+ try:
142
+ all_fields.remove(settings.app_settings.WHETHER_DELETE_FIELD)
143
+ except Exception:
144
+ ...
145
+
146
+ schema_name = name if name else model_class.__name__ + "GetOneSchema"
147
+ text_to_list_validators_dict = get_model_validate_text_to_list(text_to_list_fields)
148
+ schema: Type[T] = create_model(
149
+ schema_name,
150
+ **{field: all_fields_info[field] for field in all_fields},
151
+ __config__=model_config,
152
+ __validators__={**text_to_list_validators_dict},
153
+ )
154
+ return schema
156
155
 
157
156
 
158
157
 
@@ -0,0 +1,101 @@
1
+ from typing import Type, Optional, Union, List
2
+
3
+ from tortoise import Model
4
+ from pydantic import create_model
5
+
6
+ from fastgenerateapi.data_type.data_type import T
7
+ from fastgenerateapi.pydantic_utils.base_model import model_config
8
+ from fastgenerateapi.schemas_factory.common_function import get_dict_from_model_fields, get_dict_from_pydanticmeta, \
9
+ get_model_validate_text_to_list
10
+ from fastgenerateapi.settings.all_settings import settings
11
+
12
+
13
+ def get_relation_schema_factory(
14
+ model_class: Type[Model],
15
+ include: Union[list, tuple, set] = None,
16
+ extra_include: Union[list, tuple, set] = None,
17
+ exclude: Union[list, tuple, set] = None,
18
+ pydantic_meta: Optional[bool] = True,
19
+ pydantic_meta_include: Union[list, tuple, set] = None,
20
+ pydantic_meta_exclude: Optional[bool] = True,
21
+ pydantic_meta_get_relation_include: Optional[bool] = True,
22
+ pydantic_meta_get_relation_exclude: Optional[bool] = True,
23
+ pydantic_meta_text_to_list: Optional[bool] = True,
24
+ name: Optional[str] = None
25
+ ) -> Optional[Type[T]]:
26
+ """
27
+ Is used to create a GetRelationSchema
28
+ """
29
+ all_fields_info: dict = get_dict_from_model_fields(model_class)
30
+
31
+ include_fields = set()
32
+ exclude_fields = set()
33
+ text_to_list_fields = set()
34
+ if include:
35
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, include)
36
+ all_fields_info.update(include_fields_dict)
37
+ include_fields.update(include_fields_dict.keys())
38
+ elif pydantic_meta and hasattr(model_class, "PydanticMeta"):
39
+ if pydantic_meta_include:
40
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
41
+ all_fields_info.update(include_fields_dict)
42
+ include_fields.update(include_fields_dict.keys())
43
+ elif hasattr(model_class.PydanticMeta, "include"):
44
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
45
+ all_fields_info.update(include_fields_dict)
46
+ include_fields.update(include_fields_dict.keys())
47
+ else:
48
+ include_fields.update(all_fields_info.keys())
49
+ if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
50
+ exclude_fields.update(model_class.PydanticMeta.exclude)
51
+
52
+ if pydantic_meta_get_relation_include and hasattr(model_class.PydanticMeta, "get_relation_include"):
53
+ get_tree_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_tree_include)
54
+ all_fields_info.update(get_tree_include_fields_dict)
55
+ include_fields.update(get_tree_include_fields_dict.keys())
56
+ if pydantic_meta_get_relation_exclude and hasattr(model_class.PydanticMeta, "get_relation_exclude"):
57
+ exclude_fields.update(model_class.PydanticMeta.get_tree_exclude)
58
+ if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
59
+ text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
60
+ for field in text_to_list_fields:
61
+ field_info = all_fields_info.get(field)[1]
62
+ field_type = List[str] if field_info.is_required() else Optional[List[str]]
63
+ all_fields_info.update({field: (field_type, field_info)})
64
+ else:
65
+ include_fields.update(all_fields_info.keys())
66
+
67
+ if extra_include:
68
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, extra_include)
69
+ all_fields_info.update(include_fields_dict)
70
+ include_fields.update(include_fields_dict.keys())
71
+ if exclude:
72
+ exclude_fields.update(exclude)
73
+
74
+ all_fields = include_fields.difference(exclude_fields)
75
+
76
+ if settings.app_settings.GET_EXCLUDE_ACTIVE_VALUE:
77
+ try:
78
+ all_fields.remove(settings.app_settings.WHETHER_DELETE_FIELD)
79
+ except Exception:
80
+ ...
81
+
82
+ schema_name = name if name else model_class.__name__ + "GetRelationSchema"
83
+ text_to_list_validators_dict = get_model_validate_text_to_list(text_to_list_fields)
84
+ schema: Type[T] = create_model(
85
+ schema_name,
86
+ **{field: all_fields_info[field] for field in all_fields},
87
+ __config__=model_config,
88
+ __validators__={**text_to_list_validators_dict},
89
+ )
90
+
91
+ return schema
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
@@ -16,6 +16,7 @@ def get_tree_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
+ pydantic_meta: Optional[bool] = True,
19
20
  pydantic_meta_include: Union[list, tuple, set] = None,
20
21
  pydantic_meta_exclude: Optional[bool] = True,
21
22
  pydantic_meta_get_include: Optional[bool] = True,
@@ -37,43 +38,41 @@ def get_tree_schema_factory(
37
38
  include_fields_dict = get_dict_from_pydanticmeta(model_class, include)
38
39
  all_fields_info.update(include_fields_dict)
39
40
  include_fields.update(include_fields_dict.keys())
40
- else:
41
- if hasattr(model_class, "PydanticMeta"):
42
- if pydantic_meta_include:
43
- include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
44
- all_fields_info.update(include_fields_dict)
45
- include_fields.update(include_fields_dict.keys())
46
- else:
47
- if hasattr(model_class.PydanticMeta, "include"):
48
- include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
49
- all_fields_info.update(include_fields_dict)
50
- include_fields.update(include_fields_dict.keys())
51
- else:
52
- include_fields.update(all_fields_info.keys())
53
- if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
54
- exclude_fields.update(model_class.PydanticMeta.exclude)
55
-
56
- if pydantic_meta_get_include and hasattr(model_class.PydanticMeta, "get_include"):
57
- get_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_include)
58
- all_fields_info.update(get_include_fields_dict)
59
- include_fields.update(get_include_fields_dict.keys())
60
- if pydantic_meta_get_exclude and hasattr(model_class.PydanticMeta, "get_exclude"):
61
- exclude_fields.update(model_class.PydanticMeta.get_exclude)
62
-
63
- if pydantic_meta_get_tree_include and hasattr(model_class.PydanticMeta, "get_tree_include"):
64
- get_tree_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_tree_include)
65
- all_fields_info.update(get_tree_include_fields_dict)
66
- include_fields.update(get_tree_include_fields_dict.keys())
67
- if pydantic_meta_get_tree_exclude and hasattr(model_class.PydanticMeta, "get_tree_exclude"):
68
- exclude_fields.update(model_class.PydanticMeta.get_tree_exclude)
69
- if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
70
- text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
71
- for field in text_to_list_fields:
72
- field_info = all_fields_info.get(field)[1]
73
- field_type = List[str] if field_info.is_required() else Optional[List[str]]
74
- all_fields_info.update({field: (field_type, field_info)})
41
+ elif pydantic_meta and hasattr(model_class, "PydanticMeta"):
42
+ if pydantic_meta_include:
43
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, pydantic_meta_include)
44
+ all_fields_info.update(include_fields_dict)
45
+ include_fields.update(include_fields_dict.keys())
46
+ elif hasattr(model_class.PydanticMeta, "include"):
47
+ include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.include)
48
+ all_fields_info.update(include_fields_dict)
49
+ include_fields.update(include_fields_dict.keys())
75
50
  else:
76
51
  include_fields.update(all_fields_info.keys())
52
+ if pydantic_meta_exclude and hasattr(model_class.PydanticMeta, "exclude"):
53
+ exclude_fields.update(model_class.PydanticMeta.exclude)
54
+
55
+ if pydantic_meta_get_include and hasattr(model_class.PydanticMeta, "get_include"):
56
+ get_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_include)
57
+ all_fields_info.update(get_include_fields_dict)
58
+ include_fields.update(get_include_fields_dict.keys())
59
+ if pydantic_meta_get_exclude and hasattr(model_class.PydanticMeta, "get_exclude"):
60
+ exclude_fields.update(model_class.PydanticMeta.get_exclude)
61
+
62
+ if pydantic_meta_get_tree_include and hasattr(model_class.PydanticMeta, "get_tree_include"):
63
+ get_tree_include_fields_dict = get_dict_from_pydanticmeta(model_class, model_class.PydanticMeta.get_tree_include)
64
+ all_fields_info.update(get_tree_include_fields_dict)
65
+ include_fields.update(get_tree_include_fields_dict.keys())
66
+ if pydantic_meta_get_tree_exclude and hasattr(model_class.PydanticMeta, "get_tree_exclude"):
67
+ exclude_fields.update(model_class.PydanticMeta.get_tree_exclude)
68
+ if pydantic_meta_text_to_list and hasattr(model_class.PydanticMeta, "text_to_list"):
69
+ text_to_list_fields = getattr(model_class.PydanticMeta, "text_to_list")
70
+ for field in text_to_list_fields:
71
+ field_info = all_fields_info.get(field)[1]
72
+ field_type = List[str] if field_info.is_required() else Optional[List[str]]
73
+ all_fields_info.update({field: (field_type, field_info)})
74
+ else:
75
+ include_fields.update(all_fields_info.keys())
77
76
 
78
77
  if extra_include:
79
78
  include_fields_dict = get_dict_from_pydanticmeta(model_class, extra_include)