fastgenerateapi 1.1.9__tar.gz → 1.1.11__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.
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/PKG-INFO +1 -1
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/__version__.py +1 -1
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/channel/connection_manager.py +8 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/channel/consumer.py +2 -2
- fastgenerateapi-1.1.11/fastgenerateapi/settings/all_settings.py +98 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/db_settings.py +0 -1
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/file_settings.py +1 -2
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi.egg-info/PKG-INFO +1 -1
- fastgenerateapi-1.1.9/fastgenerateapi/settings/all_settings.py +0 -91
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/LICENSE +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/README.md +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/api_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/base_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/create_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/delete_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/get_all_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/get_one_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/get_relation_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/get_tree_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/sql_get_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/switch_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/update_relation_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/update_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/cache/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/cache/cache_decorator.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/cache/key_builder.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/channel/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/channel/websocket_view.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/filter_controller.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/router_controller.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/rpc_controller.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/search_controller.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/ws_controller.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/data_type/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/data_type/data_type.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/deps/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/deps/filter_params_deps.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/deps/paginator_deps.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/deps/tree_params_deps.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/example/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/example/models.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/example/routers.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/example/schemas.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/example/views.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/fastapi_utils/all.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/model/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/model/base_model.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/my_fields/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/my_fields/aes_field.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/my_fields/enum_field.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/my_fields/pk_field.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/my_fields/pwd_field.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/my_fields/validator.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/common_function.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/create_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/update_schema_factory.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/app_settings.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/jwt_settings.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/otlp_settings.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/redis_settings.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/sms_settings.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/system_settings.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/aes.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/auto_discover.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/exception.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/file_utils.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/pwd_utils.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/ramdom_utils.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/snowflake.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/str_util.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/utils/swagger_to_js.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi.egg-info/top_level.txt +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/script/__init__.py +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/setup.cfg +0 -0
- {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/setup.py +0 -0
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/channel/connection_manager.py
RENAMED
|
@@ -9,15 +9,22 @@ class ConnectionManager:
|
|
|
9
9
|
|
|
10
10
|
@classmethod
|
|
11
11
|
def add_connection(cls, user_id: str, websocket: WebSocket):
|
|
12
|
+
conn = cls.active_connections.get(user_id)
|
|
13
|
+
if conn:
|
|
14
|
+
conn.close()
|
|
12
15
|
cls.active_connections[user_id] = websocket
|
|
13
16
|
|
|
14
17
|
@classmethod
|
|
15
18
|
def del_connection(cls, user_id: str):
|
|
16
19
|
if user_id in cls.active_connections:
|
|
20
|
+
cls.active_connections[user_id].close()
|
|
17
21
|
del cls.active_connections[user_id]
|
|
18
22
|
|
|
19
23
|
@classmethod
|
|
20
24
|
def add_group_connection(cls, group_id: str, user_id: str, connection: WebSocket):
|
|
25
|
+
conn = cls.active_group_connections.get(group_id, {}).get(user_id)
|
|
26
|
+
if conn:
|
|
27
|
+
conn.close()
|
|
21
28
|
cls.active_group_connections.setdefault(group_id, {})[user_id] = connection
|
|
22
29
|
|
|
23
30
|
@classmethod
|
|
@@ -25,6 +32,7 @@ class ConnectionManager:
|
|
|
25
32
|
if group_id in cls.active_group_connections:
|
|
26
33
|
user_dict = cls.active_group_connections[group_id]
|
|
27
34
|
if user_id in user_dict:
|
|
35
|
+
user_dict[user_id].close()
|
|
28
36
|
del user_dict[user_id]
|
|
29
37
|
if not user_dict:
|
|
30
38
|
del cls.active_group_connections[group_id]
|
|
@@ -36,7 +36,7 @@ class Consumer(WebSocketEndpoint):
|
|
|
36
36
|
# 断开 删除
|
|
37
37
|
async def on_disconnect(self, websocket, close_code):
|
|
38
38
|
if self.group_id and self.user_id:
|
|
39
|
-
|
|
39
|
+
ConnectionManager.del_group_connection(self.group_id, self.user_id)
|
|
40
40
|
pass
|
|
41
41
|
|
|
42
42
|
async def check_args(self, group_id, user_id):
|
|
@@ -56,7 +56,7 @@ class Consumer(WebSocketEndpoint):
|
|
|
56
56
|
await self.error(websocket, code=422, msg="未获取到用户信息")
|
|
57
57
|
if not await self.check_args(group_id, user_key):
|
|
58
58
|
await self.error(websocket, code=422, msg="无连接权限")
|
|
59
|
-
|
|
59
|
+
ConnectionManager.add_group_connection(group_id, user_key, websocket)
|
|
60
60
|
|
|
61
61
|
# 群发消息
|
|
62
62
|
@classmethod
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
from functools import lru_cache
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from typing import Union
|
|
4
|
+
|
|
5
|
+
import yaml
|
|
6
|
+
from pydantic import BaseModel
|
|
7
|
+
from pydantic.fields import FieldInfo
|
|
8
|
+
|
|
9
|
+
from fastgenerateapi.settings.redis_settings import RedisSettings
|
|
10
|
+
from fastgenerateapi.settings.app_settings import AppSettings
|
|
11
|
+
from fastgenerateapi.settings.system_settings import SystemSettings
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SettingsModel(BaseModel):
|
|
15
|
+
# 应用配置
|
|
16
|
+
app_settings: AppSettings = AppSettings()
|
|
17
|
+
# 系统配置
|
|
18
|
+
system_settings: SystemSettings = SystemSettings()
|
|
19
|
+
# 缓存配置
|
|
20
|
+
redis_settings: RedisSettings = RedisSettings()
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def generate_file(cls, path='./.env'):
|
|
24
|
+
"""
|
|
25
|
+
生成配置文件
|
|
26
|
+
.env 会增加前缀
|
|
27
|
+
.yaml 忽略前缀
|
|
28
|
+
:param path: 可选 .env / application.yaml
|
|
29
|
+
:return:
|
|
30
|
+
"""
|
|
31
|
+
content = ''
|
|
32
|
+
setting_models = cls.model_fields.copy()
|
|
33
|
+
if path.__contains__('.env'):
|
|
34
|
+
for k, v in setting_models.items():
|
|
35
|
+
if isinstance(v, FieldInfo):
|
|
36
|
+
content += f"[{v.annotation.__name__}]\n"
|
|
37
|
+
env_prefix = v.annotation.model_config.get("env_prefix", "")
|
|
38
|
+
fields = v.annotation.model_fields.copy()
|
|
39
|
+
for k, v in fields.items():
|
|
40
|
+
field_name = f'{env_prefix}{k}'
|
|
41
|
+
if v.description is None:
|
|
42
|
+
content += f"{field_name}={v.default}\n"
|
|
43
|
+
else:
|
|
44
|
+
content += f"# {v.description}\n{field_name}={v.default}\n"
|
|
45
|
+
content += "\n"
|
|
46
|
+
elif path.__contains__('.yaml'):
|
|
47
|
+
for k, v in setting_models.items():
|
|
48
|
+
if isinstance(v, FieldInfo):
|
|
49
|
+
content += f"[{v.annotation.__name__}]\n"
|
|
50
|
+
env_prefix = v.annotation.model_config.get("env_prefix", "")
|
|
51
|
+
fields = v.annotation.model_fields.copy()
|
|
52
|
+
for k, v in fields.items():
|
|
53
|
+
field_name = f'{env_prefix}{k}'
|
|
54
|
+
content += f" {field_name}: {v.default}"
|
|
55
|
+
if v.description is None:
|
|
56
|
+
content += f"\n"
|
|
57
|
+
else:
|
|
58
|
+
content += f" # {v.description}\n"
|
|
59
|
+
content += "\n"
|
|
60
|
+
with open(file=path, mode='w', encoding='utf-8') as f:
|
|
61
|
+
f.writelines(content)
|
|
62
|
+
|
|
63
|
+
@classmethod
|
|
64
|
+
@lru_cache
|
|
65
|
+
def get_global_settings(cls, path: Union[Path, str, None] = '.env'):
|
|
66
|
+
"""
|
|
67
|
+
get global settings and set into cache
|
|
68
|
+
:param path: 可选 .env / application.yaml
|
|
69
|
+
:return:
|
|
70
|
+
"""
|
|
71
|
+
setting_models = cls.model_fields.copy()
|
|
72
|
+
|
|
73
|
+
setting_dict = {}
|
|
74
|
+
if str(path).__contains__('.env'):
|
|
75
|
+
for k, v in setting_models.items():
|
|
76
|
+
if isinstance(v, FieldInfo):
|
|
77
|
+
setting_dict[k] = v.annotation(_env_file=str(path))
|
|
78
|
+
elif str(path).__contains__('.yaml'):
|
|
79
|
+
with open(path, 'r', encoding='utf-8') as file:
|
|
80
|
+
data_dict = yaml.safe_load(file)
|
|
81
|
+
for k, v in setting_models.items():
|
|
82
|
+
if isinstance(v, FieldInfo):
|
|
83
|
+
setting_dict[k] = v.annotation(**data_dict.get(v.annotation.__name__, {}))
|
|
84
|
+
|
|
85
|
+
setting_data = cls(**setting_dict)
|
|
86
|
+
global settings
|
|
87
|
+
settings.app_settings = setting_data.app_settings
|
|
88
|
+
settings.system_settings = setting_data.system_settings
|
|
89
|
+
settings.redis_settings = setting_data.redis_settings
|
|
90
|
+
return setting_data
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
settings = SettingsModel()
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
if __name__ == '__main__':
|
|
97
|
+
settings.generate_file()
|
|
98
|
+
|
|
@@ -21,7 +21,6 @@ class DBSettings(BaseSettings):
|
|
|
21
21
|
return f"{self.DB_TYPE.lower()}://{self.DB_USERNAME}:{self.DB_PASSWORD}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_DATABASE}"
|
|
22
22
|
|
|
23
23
|
model_config = SettingsConfigDict(
|
|
24
|
-
env_prefix="",
|
|
25
24
|
env_file=".env",
|
|
26
25
|
case_sensitive=True,
|
|
27
26
|
extra='ignore'
|
|
@@ -4,7 +4,7 @@ from pydantic import Field
|
|
|
4
4
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
class
|
|
7
|
+
class FileSettings(BaseSettings):
|
|
8
8
|
"""
|
|
9
9
|
文件配置
|
|
10
10
|
"""
|
|
@@ -13,7 +13,6 @@ class FileServerSettings(BaseSettings):
|
|
|
13
13
|
FILE_ROOT: Optional[str] = Field(default='static', description="文件储存路径", title="file storage path")
|
|
14
14
|
|
|
15
15
|
model_config = SettingsConfigDict(
|
|
16
|
-
env_prefix="FILESERVER_",
|
|
17
16
|
env_file=".env",
|
|
18
17
|
case_sensitive=True,
|
|
19
18
|
extra='ignore'
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
from pydantic import BaseModel
|
|
3
|
-
|
|
4
|
-
from fastgenerateapi.settings.redis_settings import RedisSettings
|
|
5
|
-
from fastgenerateapi.settings.app_settings import AppSettings
|
|
6
|
-
from fastgenerateapi.settings.system_settings import SystemSettings
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class SettingsModel(BaseModel):
|
|
10
|
-
# 应用配置
|
|
11
|
-
app_settings: AppSettings = AppSettings()
|
|
12
|
-
# 系统配置
|
|
13
|
-
system_settings: SystemSettings = SystemSettings()
|
|
14
|
-
# 缓存配置
|
|
15
|
-
redis_settings: RedisSettings = RedisSettings()
|
|
16
|
-
|
|
17
|
-
# pydantic v2 不支持 ModelField, v.type_
|
|
18
|
-
# @classmethod
|
|
19
|
-
# def generate_file(cls, path='./.env'):
|
|
20
|
-
# """
|
|
21
|
-
# 生成配置文件
|
|
22
|
-
# .env 会增加前缀
|
|
23
|
-
# .yaml 忽略前缀
|
|
24
|
-
# :param path: 可选 .env / application.yaml
|
|
25
|
-
# :return:
|
|
26
|
-
# """
|
|
27
|
-
# content = ''
|
|
28
|
-
# setting_models = cls.__fields__.copy()
|
|
29
|
-
# if path.__contains__('.env'):
|
|
30
|
-
# for k, v in setting_models.items():
|
|
31
|
-
# if issubclass(type(v), ModelField):
|
|
32
|
-
# sub_setting_class = v.type_
|
|
33
|
-
# content += f"[{sub_setting_class.__name__}]\n"
|
|
34
|
-
# fields = sub_setting_class.__fields__.copy()
|
|
35
|
-
# for k, v in fields.items():
|
|
36
|
-
# field_name = f'{sub_setting_class.Config.env_prefix}{k}'
|
|
37
|
-
# if v.field_info.description is None:
|
|
38
|
-
# content += f"{field_name}={v.default}\n"
|
|
39
|
-
# else:
|
|
40
|
-
# content += f"# {v.field_info.description}\n{field_name}={v.default}\n"
|
|
41
|
-
# content += "\n"
|
|
42
|
-
# elif path.__contains__('.yaml'):
|
|
43
|
-
# for k, v in setting_models.items():
|
|
44
|
-
# if issubclass(type(v), ModelField):
|
|
45
|
-
# sub_setting_class = v.type_
|
|
46
|
-
# content += f"{sub_setting_class.__name__}:\n"
|
|
47
|
-
# fields = sub_setting_class.__fields__.copy()
|
|
48
|
-
# for k, v in fields.items():
|
|
49
|
-
# content += f" {k}: {v.default}"
|
|
50
|
-
# if v.field_info.description is None:
|
|
51
|
-
# content += f"\n"
|
|
52
|
-
# else:
|
|
53
|
-
# content += f" # {v.field_info.description}\n"
|
|
54
|
-
# content += "\n"
|
|
55
|
-
# with open(file=path, mode='w', encoding='utf-8') as f:
|
|
56
|
-
# f.writelines(content)
|
|
57
|
-
#
|
|
58
|
-
# @classmethod
|
|
59
|
-
# @lru_cache
|
|
60
|
-
# def get_global_settings(cls, path: Union[types.Path, str, None] = '.env'):
|
|
61
|
-
# """
|
|
62
|
-
# get global settings and set into cache
|
|
63
|
-
# :param path: 可选 .env / application.yaml
|
|
64
|
-
# :return:
|
|
65
|
-
# """
|
|
66
|
-
# setting_models = cls.__fields__.copy()
|
|
67
|
-
#
|
|
68
|
-
# setting_dict = {}
|
|
69
|
-
# if str(path).__contains__('.env'):
|
|
70
|
-
# for k, v in setting_models.items():
|
|
71
|
-
# if issubclass(type(v), ModelField):
|
|
72
|
-
# sub_setting_class = v.type_
|
|
73
|
-
# setting_dict[k] = sub_setting_class(_env_file=str(path))
|
|
74
|
-
# elif str(path).__contains__('.yaml'):
|
|
75
|
-
# with open(path, 'r', encoding='utf-8') as file:
|
|
76
|
-
# data_dict = yaml.safe_load(file)
|
|
77
|
-
# for k, v in setting_models.items():
|
|
78
|
-
# if issubclass(type(v), ModelField):
|
|
79
|
-
# sub_setting_class = v.type_
|
|
80
|
-
# setting_dict[k] = sub_setting_class(**data_dict.get(sub_setting_class.__name__, {}))
|
|
81
|
-
#
|
|
82
|
-
# setting_data = cls(**setting_dict)
|
|
83
|
-
# global settings
|
|
84
|
-
# settings.app_settings = setting_data.app_settings
|
|
85
|
-
# settings.system_settings = setting_data.system_settings
|
|
86
|
-
# settings.redis_settings = setting_data.redis_settings
|
|
87
|
-
# return setting_data
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
settings = SettingsModel()
|
|
91
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/delete_filter_view.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/delete_tree_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/get_relation_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/base_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/get_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/response_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/save_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/tool_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/docx_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/file_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/pdf_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/mixin/utils/zip_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/api_view/update_relation_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/filter_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/router_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/rpc_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/search_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/controller/ws_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/data_type/mysql_data_type.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/fastapi_utils/param_utils.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/fastapi_utils/response_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/my_fields/soft_delete_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/pydantic_utils/base_model.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/pydantic_utils/base_settings.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/pydantic_utils/json_encoders.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/common_function.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/schemas_factory/response_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi/settings/system_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.1.9 → fastgenerateapi-1.1.11}/fastgenerateapi.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|