fastgenerateapi 1.1.9__tar.gz → 1.1.10__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 (115) hide show
  1. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/PKG-INFO +1 -1
  2. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/__version__.py +1 -1
  3. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/channel/consumer.py +2 -2
  4. fastgenerateapi-1.1.10/fastgenerateapi/settings/all_settings.py +98 -0
  5. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/db_settings.py +0 -1
  6. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/file_settings.py +1 -2
  7. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi.egg-info/PKG-INFO +1 -1
  8. fastgenerateapi-1.1.9/fastgenerateapi/settings/all_settings.py +0 -91
  9. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/LICENSE +0 -0
  10. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/README.md +0 -0
  11. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/__init__.py +0 -0
  12. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/__init__.py +0 -0
  13. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/api_view.py +0 -0
  14. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/base_view.py +0 -0
  15. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/create_view.py +0 -0
  16. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
  17. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
  18. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/delete_view.py +0 -0
  19. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/get_all_view.py +0 -0
  20. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/get_one_view.py +0 -0
  21. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/get_relation_view.py +0 -0
  22. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/get_tree_view.py +0 -0
  23. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
  24. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
  25. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
  26. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
  27. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
  28. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
  29. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
  30. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
  31. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
  32. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
  33. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
  34. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +0 -0
  35. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
  36. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/sql_get_view.py +0 -0
  37. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/switch_view.py +0 -0
  38. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/update_relation_view.py +0 -0
  39. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/api_view/update_view.py +0 -0
  40. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/cache/__init__.py +0 -0
  41. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/cache/cache_decorator.py +0 -0
  42. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/cache/key_builder.py +0 -0
  43. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/channel/__init__.py +0 -0
  44. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/channel/connection_manager.py +0 -0
  45. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/channel/websocket_view.py +0 -0
  46. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/controller/__init__.py +0 -0
  47. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/controller/filter_controller.py +0 -0
  48. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/controller/router_controller.py +0 -0
  49. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/controller/rpc_controller.py +0 -0
  50. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/controller/search_controller.py +0 -0
  51. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/controller/ws_controller.py +0 -0
  52. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/data_type/__init__.py +0 -0
  53. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/data_type/data_type.py +0 -0
  54. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
  55. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/deps/__init__.py +0 -0
  56. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/deps/filter_params_deps.py +0 -0
  57. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/deps/paginator_deps.py +0 -0
  58. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/deps/tree_params_deps.py +0 -0
  59. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/example/__init__.py +0 -0
  60. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/example/models.py +0 -0
  61. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/example/routers.py +0 -0
  62. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/example/schemas.py +0 -0
  63. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/example/views.py +0 -0
  64. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
  65. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/fastapi_utils/all.py +0 -0
  66. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
  67. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
  68. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/model/__init__.py +0 -0
  69. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/model/base_model.py +0 -0
  70. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/my_fields/__init__.py +0 -0
  71. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/my_fields/aes_field.py +0 -0
  72. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/my_fields/enum_field.py +0 -0
  73. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/my_fields/pk_field.py +0 -0
  74. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/my_fields/pwd_field.py +0 -0
  75. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
  76. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/my_fields/validator.py +0 -0
  77. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
  78. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
  79. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
  80. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
  81. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/__init__.py +0 -0
  82. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/common_function.py +0 -0
  83. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
  84. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/create_schema_factory.py +0 -0
  85. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
  86. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +0 -0
  87. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +0 -0
  88. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -0
  89. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +0 -0
  90. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
  91. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
  92. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/schemas_factory/update_schema_factory.py +0 -0
  93. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/__init__.py +0 -0
  94. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/app_settings.py +0 -0
  95. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/jwt_settings.py +0 -0
  96. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/otlp_settings.py +0 -0
  97. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/redis_settings.py +0 -0
  98. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/sms_settings.py +0 -0
  99. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/settings/system_settings.py +0 -0
  100. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/__init__.py +0 -0
  101. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/aes.py +0 -0
  102. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/auto_discover.py +0 -0
  103. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/exception.py +0 -0
  104. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/file_utils.py +0 -0
  105. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/pwd_utils.py +0 -0
  106. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/ramdom_utils.py +0 -0
  107. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/snowflake.py +0 -0
  108. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/str_util.py +0 -0
  109. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi/utils/swagger_to_js.py +0 -0
  110. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
  111. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
  112. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/fastgenerateapi.egg-info/top_level.txt +0 -0
  113. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/script/__init__.py +0 -0
  114. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/setup.cfg +0 -0
  115. {fastgenerateapi-1.1.9 → fastgenerateapi-1.1.10}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.9
3
+ Version: 1.1.10
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, 9)
11
+ VERSION = (1, 1, 10)
12
12
 
13
13
  __version__ = '.'.join(map(str, VERSION))
14
14
 
@@ -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
- await ConnectionManager.del_group_connection(self.group_id, self.user_id)
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
- await ConnectionManager.add_group_connection(group_id, user_key, websocket)
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 FileServerSettings(BaseSettings):
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.9
3
+ Version: 1.1.10
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com
@@ -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
-