fastgenerateapi 1.1.19__tar.gz → 1.1.22__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.19 → fastgenerateapi-1.1.22}/PKG-INFO +1 -1
  2. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/__version__.py +1 -1
  3. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/get_all_view.py +4 -1
  4. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/get_one_view.py +4 -1
  5. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/__init__.py +0 -2
  6. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/all_settings.py +26 -9
  7. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/db_settings.py +1 -1
  8. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/etcd_settings.py +9 -1
  9. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi.egg-info/PKG-INFO +1 -1
  10. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/LICENSE +0 -0
  11. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/README.md +0 -0
  12. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/__init__.py +0 -0
  13. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/__init__.py +0 -0
  14. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/api_view.py +0 -0
  15. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/base_view.py +0 -0
  16. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/create_view.py +0 -0
  17. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
  18. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
  19. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/delete_view.py +0 -0
  20. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/get_relation_view.py +0 -0
  21. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/get_tree_view.py +0 -0
  22. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
  23. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
  24. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
  25. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
  26. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
  27. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
  28. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
  29. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
  30. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
  31. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
  32. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
  33. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +0 -0
  34. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
  35. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/sql_get_view.py +0 -0
  36. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/switch_view.py +0 -0
  37. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/update_relation_view.py +0 -0
  38. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/api_view/update_view.py +0 -0
  39. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/cache/__init__.py +0 -0
  40. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/cache/cache_decorator.py +0 -0
  41. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/cache/key_builder.py +0 -0
  42. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/channel/__init__.py +0 -0
  43. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/channel/connection_manager.py +0 -0
  44. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/channel/consumer.py +0 -0
  45. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/channel/websocket_view.py +0 -0
  46. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/controller/__init__.py +0 -0
  47. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/controller/filter_controller.py +0 -0
  48. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/controller/router_controller.py +0 -0
  49. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/controller/rpc_controller.py +0 -0
  50. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/controller/search_controller.py +0 -0
  51. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/controller/ws_controller.py +0 -0
  52. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/data_type/__init__.py +0 -0
  53. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/data_type/data_type.py +0 -0
  54. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
  55. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/deps/__init__.py +0 -0
  56. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/deps/filter_params_deps.py +0 -0
  57. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/deps/paginator_deps.py +0 -0
  58. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/deps/tree_params_deps.py +0 -0
  59. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/example/__init__.py +0 -0
  60. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/example/models.py +0 -0
  61. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/example/routers.py +0 -0
  62. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/example/schemas.py +0 -0
  63. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/example/views.py +0 -0
  64. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
  65. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/fastapi_utils/all.py +0 -0
  66. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
  67. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
  68. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/model/__init__.py +0 -0
  69. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/model/base_model.py +0 -0
  70. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/my_fields/__init__.py +0 -0
  71. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/my_fields/aes_field.py +0 -0
  72. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/my_fields/enum_field.py +0 -0
  73. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/my_fields/pk_field.py +0 -0
  74. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/my_fields/pwd_field.py +0 -0
  75. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
  76. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/my_fields/validator.py +0 -0
  77. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
  78. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
  79. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
  80. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
  81. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/__init__.py +0 -0
  82. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/common_function.py +0 -0
  83. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
  84. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/create_schema_factory.py +0 -0
  85. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
  86. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +0 -0
  87. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +0 -0
  88. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -0
  89. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +0 -0
  90. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
  91. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
  92. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/schemas_factory/update_schema_factory.py +0 -0
  93. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/app_settings.py +0 -0
  94. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/file_settings.py +0 -0
  95. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/jwt_settings.py +0 -0
  96. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/otlp_settings.py +0 -0
  97. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/redis_settings.py +0 -0
  98. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/sms_settings.py +0 -0
  99. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/settings/system_settings.py +0 -0
  100. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/__init__.py +0 -0
  101. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/aes.py +0 -0
  102. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/auto_discover.py +0 -0
  103. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/exception.py +0 -0
  104. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/file_utils.py +0 -0
  105. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/pwd_utils.py +0 -0
  106. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/ramdom_utils.py +0 -0
  107. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/snowflake.py +0 -0
  108. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/str_util.py +0 -0
  109. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi/utils/swagger_to_js.py +0 -0
  110. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
  111. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
  112. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/fastgenerateapi.egg-info/top_level.txt +0 -0
  113. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/script/__init__.py +0 -0
  114. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/setup.cfg +0 -0
  115. {fastgenerateapi-1.1.19 → fastgenerateapi-1.1.22}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.19
3
+ Version: 1.1.22
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, 19)
11
+ VERSION = (1, 1, 22)
12
12
 
13
13
  __version__ = '.'.join(map(str, VERSION))
14
14
 
@@ -174,7 +174,10 @@ class GetAllView(BaseView, GetMixin):
174
174
  for key, value in self.prefetch_related_fields.items():
175
175
  if value and type(value) in [list, tuple, set]:
176
176
  for val in value:
177
- get_all_schema_include.append(key + "__" + val)
177
+ val_str = val
178
+ if type(val) in [list, tuple, set]:
179
+ val_str = val[0]
180
+ get_all_schema_include.append(key + "__" + val_str)
178
181
  self.get_all_schema = self.get_all_schema or get_all_schema_factory(
179
182
  self.model_class, include=get_all_schema_include
180
183
  ) or self.get_one_schema if hasattr(self, "get_one_schema") else get_one_schema_factory(self.model_class)
@@ -71,7 +71,10 @@ class GetOneView(BaseView, GetMixin):
71
71
  for key, value in self.prefetch_related_fields.items():
72
72
  if value and type(value) in [list, tuple, set]:
73
73
  for val in value:
74
- get_one_schema_include.append(key + "__" + val)
74
+ val_str = val
75
+ if type(val) in [list, tuple, set]:
76
+ val_str = val[0]
77
+ get_one_schema_include.append(key + "__" + val_str)
75
78
  self.get_one_schema = self.schema or self.get_one_schema or get_one_schema_factory(
76
79
  model_class=self.model_class,
77
80
  include=get_one_schema_include,
@@ -4,6 +4,4 @@ from .db_settings import *
4
4
  from .file_settings import *
5
5
  from .jwt_settings import *
6
6
  from .sms_settings import *
7
- from .etcd_settings import *
8
-
9
7
 
@@ -66,9 +66,7 @@ class SettingsModel(BaseModel):
66
66
  content += f" # {v.description}\n"
67
67
  content += "\n"
68
68
  if etcd_settings and etcd_settings.ETCD_SETTING_KEY:
69
- import etcd3
70
- etcd = etcd3.client(**etcd_settings.model_dump(exclude_unset=True))
71
- etcd.put(etcd_settings.ETCD_SETTING_KEY, content)
69
+ etcd_settings.client.put(etcd_settings.ETCD_SETTING_KEY, content)
72
70
  else:
73
71
  with open(file=path, mode='w', encoding='utf-8') as f:
74
72
  f.writelines(content)
@@ -94,19 +92,30 @@ class SettingsModel(BaseModel):
94
92
  if isinstance(v, FieldInfo):
95
93
  setting_dict[k] = v.annotation(_env_file=str(path))
96
94
  elif str(path).__contains__('.yaml'):
95
+ data_dict = None
97
96
  if os.path.isfile(path):
98
97
  with open(path, 'r', encoding='utf-8') as file:
99
98
  data_dict = yaml.safe_load(file)
100
- elif etcd_settings and etcd_settings.ETCD_SETTING_KEY:
101
- import etcd3
102
- etcd = etcd3.client(**etcd_settings.model_dump(exclude_unset=True))
103
- res, metadata = etcd.get(etcd_settings.ETCD_SETTING_KEY)
104
- data_dict = yaml.safe_load(res)
105
99
  else:
100
+ if not etcd_settings:
101
+ etcd_settings = EtcdSettings()
102
+ if etcd_settings.ETCD_SETTING_KEY:
103
+ res, metadata = etcd_settings.client.get(etcd_settings.ETCD_SETTING_KEY)
104
+ data_dict = yaml.safe_load(res)
105
+ if not data_dict:
106
106
  raise ValidationException(errors="配置错误")
107
107
  for k, v in setting_models.items():
108
108
  if isinstance(v, FieldInfo):
109
- setting_dict[k] = v.annotation(**data_dict.get(v.annotation.__name__, {}))
109
+ env_prefix = None
110
+ if hasattr(v.annotation, "Config") and v.annotation.Config.env_prefix:
111
+ env_prefix = v.annotation.Config.env_prefix
112
+ if not env_prefix and hasattr(v.annotation, "model_config"):
113
+ env_prefix = v.annotation.model_config.get("env_prefix")
114
+ if env_prefix:
115
+ annotation_dict = {k_i.removeprefix(env_prefix): v_i for k_i, v_i in data_dict.get(v.annotation.__name__, {}).items()}
116
+ else:
117
+ annotation_dict = data_dict.get(v.annotation.__name__, {})
118
+ setting_dict[k] = v.annotation(**annotation_dict)
110
119
 
111
120
  setting_data = cls(**setting_dict)
112
121
  global settings
@@ -115,6 +124,14 @@ class SettingsModel(BaseModel):
115
124
  settings.redis_settings = setting_data.redis_settings
116
125
  return setting_data
117
126
 
127
+ def watch(self):
128
+ """
129
+ 监听文件或这etcd变化,待完善
130
+ 借用 etcd.watch(target)
131
+ :return:
132
+ """
133
+ ...
134
+
118
135
 
119
136
  settings = SettingsModel()
120
137
 
@@ -11,7 +11,7 @@ class DBSettings(BaseSettings):
11
11
 
12
12
  DB_TYPE: Optional[str] = Field(default='mysql', description="数据库类型")
13
13
  DB_HOST: Optional[str] = Field(default='127.0.0.1', description="数据库域名")
14
- DB_PORT: Optional[str] = Field(default='3306', description="数据库端口")
14
+ DB_PORT: Optional[int] = Field(default='3306', description="数据库端口")
15
15
  DB_DATABASE: Optional[str] = Field(default='admin', description="数据库名")
16
16
  DB_USERNAME: Optional[str] = Field(default='root', description="数据库用户名")
17
17
  DB_PASSWORD: Optional[str] = Field(default='', description="数据库密码")
@@ -23,9 +23,17 @@ class EtcdSettings(BaseSettings):
23
23
  env_prefix="",
24
24
  env_file=".env",
25
25
  case_sensitive=True,
26
- extra='ignore'
26
+ extra='ignore',
27
+ frozen=True,
27
28
  )
28
29
 
30
+ @property
31
+ def client(self):
32
+ import etcd3
33
+ etcd_dict = self.model_dump(exclude_unset=True, by_alias=True, exclude={"ETCD_SETTING_KEY", })
34
+ etcd = etcd3.client(**{key.removeprefix("ETCD_").lower(): value for key, value in etcd_dict.items()})
35
+
36
+ return etcd
29
37
 
30
38
 
31
39
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.19
3
+ Version: 1.1.22
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com