fastgenerateapi 1.1.19__py2.py3-none-any.whl → 1.1.22__py2.py3-none-any.whl

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.

@@ -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
@@ -1,5 +1,5 @@
1
1
  fastgenerateapi/__init__.py,sha256=eh2qtp7FbjrgaRX5b3H3UWpasFdNHbVFqLUhpqVbaTU,1287
2
- fastgenerateapi/__version__.py,sha256=knlKMzCfw9ErnDn0y4qMhdDXeUN1ZBOqpcDlImD8LrU,497
2
+ fastgenerateapi/__version__.py,sha256=shfuqz22SiTQwU5_GhrMLxwaEq4RmoPKMAcWsxvOny4,497
3
3
  fastgenerateapi/api_view/__init__.py,sha256=zkaTX5JxsNfjF-dFeEbHfUB58vhPMjm6Iiqx9HgJOrY,14
4
4
  fastgenerateapi/api_view/api_view.py,sha256=mfD8GB-hnyI2XO3tkSOlEa2FfBLdq0_Wqvp8gFrXFKU,1160
5
5
  fastgenerateapi/api_view/base_view.py,sha256=AUWMd2Ys5mVwifN5iOs7BjpBqCF_ktv23oEp7sHR1g0,9984
@@ -7,8 +7,8 @@ fastgenerateapi/api_view/create_view.py,sha256=NvJ0ocD2UMHcdipA4W7MYamxAw8sYeXAc
7
7
  fastgenerateapi/api_view/delete_filter_view.py,sha256=ZP9pmRNeCTu_Go4ErfnDPnkPMShEh_Ql18iNCfMNJ3s,2838
8
8
  fastgenerateapi/api_view/delete_tree_view.py,sha256=oqkWQNlA7TNZHHRTJJwxidOHxOgmvUpcnu81cT3oTA0,4083
9
9
  fastgenerateapi/api_view/delete_view.py,sha256=FvaltPR1ttLfUvBoRoSHP-dGb79LRZlEMSEbYzE_W1E,3497
10
- fastgenerateapi/api_view/get_all_view.py,sha256=KnbjEZZ6FxxoVDbIqkgL4DoVmzqVjelmeLOZCcg-FOI,9721
11
- fastgenerateapi/api_view/get_one_view.py,sha256=N54M5F_vtjDlB7XlnPNhIbzEJ-KHyN5q4_jnIGkZ5eo,4201
10
+ fastgenerateapi/api_view/get_all_view.py,sha256=Wg8NxFU61BuJz2kicaTXcPSUR1oJZ8lrWIVvFCdV-5k,9871
11
+ fastgenerateapi/api_view/get_one_view.py,sha256=gCzkoJsBMxdD-bUwNtJvv2I2c5tpUtE2B_MY2BkjRqY,4351
12
12
  fastgenerateapi/api_view/get_relation_view.py,sha256=coVqhD29WW7SzdAeqM5LFtNzMulzzJyELT2En-56CF4,9780
13
13
  fastgenerateapi/api_view/get_tree_view.py,sha256=8BQomoOU954bXrqGzeFrKS8ydHL9VPxQfwvhV59rQxg,9312
14
14
  fastgenerateapi/api_view/sql_get_view.py,sha256=wxYI0JuH8Gw99LfMMwA4rQ_a_tBrKYxYhA7MNGQOx3A,6691
@@ -82,11 +82,11 @@ fastgenerateapi/schemas_factory/get_tree_schema_factory.py,sha256=v0DAf7kwB-17rH
82
82
  fastgenerateapi/schemas_factory/response_factory.py,sha256=C-E3lqIdfIJCIZhvmSaAiNJpYVOs6AGVyl90B5KRo4M,1655
83
83
  fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py,sha256=dhgMvXZIq4av7puIMiQOTuVqNOuBoMvBZVd98GWJTRg,1810
84
84
  fastgenerateapi/schemas_factory/update_schema_factory.py,sha256=E-86vF98Ed92Q2VFqtS35xqxr_c34du9ok42JBfnj1g,3729
85
- fastgenerateapi/settings/__init__.py,sha256=dtmXBz-s2BXpaDa8bZN4aHyJHZOJpTelSWC2STa6yJ0,201
86
- fastgenerateapi/settings/all_settings.py,sha256=X-qzZ3bkZhgILDk4l6y7fQkT83D4ZBwbaa5HCezIdZI,4913
85
+ fastgenerateapi/settings/__init__.py,sha256=n6ZGy9R99ln330mshMqav6XRTAfDR1SP5eV8LshI6OQ,169
86
+ fastgenerateapi/settings/all_settings.py,sha256=Ae3BfCJaG64lCf5fiDJYcGTJN2ylIBDIjBvOZS2wXSo,5663
87
87
  fastgenerateapi/settings/app_settings.py,sha256=kq0O4FZMveiLdzwRkkH1E1byccoNGlLyz7G4fNTZm6w,7357
88
- fastgenerateapi/settings/db_settings.py,sha256=duTgLjMHO6MTDfEZ2tkAGiSXrTKuHSLBJW00l5_rv7g,1570
89
- fastgenerateapi/settings/etcd_settings.py,sha256=z93EoutIrrbc0ZMae-6lA2Vik1z3D_hO9OXtjtfRV5I,1205
88
+ fastgenerateapi/settings/db_settings.py,sha256=uVUbhUQxhbMkwhU5UDG8eE4nf_Blg8bPxLCIEDSMTO4,1570
89
+ fastgenerateapi/settings/etcd_settings.py,sha256=agPHJmIp_w_3iWCKKLIWSdp22cbJtc6kBSoa8fB5IXM,1526
90
90
  fastgenerateapi/settings/file_settings.py,sha256=8Ra5H0nxRp1r_Ib_RGbNO0rUFaxqYMjuJT9A4fHE3Oo,857
91
91
  fastgenerateapi/settings/jwt_settings.py,sha256=mRtzLZz1bntrl6UXAnIq6xilEEN8NS8oJSv62CGXOEs,971
92
92
  fastgenerateapi/settings/otlp_settings.py,sha256=4haWpSdJBeor-rq_rBOgQl6oYRv9eppdwm1yWGt6GyE,3161
@@ -104,8 +104,8 @@ fastgenerateapi/utils/snowflake.py,sha256=GiFVkE10sPiqJ094sMfrPsaV7Y9Y3c1djrSfgs
104
104
  fastgenerateapi/utils/str_util.py,sha256=c-jUlCFw-Dz4W1W9Jc1TqGZw3JXu-qN5ovnE6fjc9j0,3445
105
105
  fastgenerateapi/utils/swagger_to_js.py,sha256=pPPTag6TYtxdbKMHD3m8lJvc8Gv9HC97CGHt4esU1-E,530
106
106
  script/__init__.py,sha256=26UWatnbm6ZIwQMuu9NNzQ0IW1ACO4Oe9caModuTpWM,4
107
- fastgenerateapi-1.1.19.dist-info/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
108
- fastgenerateapi-1.1.19.dist-info/METADATA,sha256=TqA0bM4wJ0_Md9V-ryYeJTlhSl4_rYQhfPulmnpKpWw,6025
109
- fastgenerateapi-1.1.19.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
110
- fastgenerateapi-1.1.19.dist-info/top_level.txt,sha256=CW2SlpYjTRdacF-5ufnPMtwpYcR0XYn_bDxa2ZrrTBI,23
111
- fastgenerateapi-1.1.19.dist-info/RECORD,,
107
+ fastgenerateapi-1.1.22.dist-info/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
108
+ fastgenerateapi-1.1.22.dist-info/METADATA,sha256=akTyebWekFxkmarVcDnSHoxsFh0Rpk0jnKf7-83uBOM,6025
109
+ fastgenerateapi-1.1.22.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
110
+ fastgenerateapi-1.1.22.dist-info/top_level.txt,sha256=CW2SlpYjTRdacF-5ufnPMtwpYcR0XYn_bDxa2ZrrTBI,23
111
+ fastgenerateapi-1.1.22.dist-info/RECORD,,