fastgenerateapi 1.1.18__py2.py3-none-any.whl → 1.1.20__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, 18)
11
+ VERSION = (1, 1, 20)
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,
@@ -5,5 +5,3 @@ from .file_settings import *
5
5
  from .jwt_settings import *
6
6
  from .sms_settings import *
7
7
 
8
-
9
-
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  from functools import lru_cache
3
3
  from pathlib import Path
4
- from typing import Union, Optional
4
+ from typing import Union, Optional, Type
5
5
 
6
6
  import yaml
7
7
  from fastapi.exceptions import ValidationException
@@ -67,7 +67,8 @@ class SettingsModel(BaseModel):
67
67
  content += "\n"
68
68
  if etcd_settings and etcd_settings.ETCD_SETTING_KEY:
69
69
  import etcd3
70
- etcd = etcd3.client(**etcd_settings.model_dump(exclude_unset=True))
70
+ etcd_dict = etcd_settings.model_dump(exclude_unset=True, by_alias=True, exclude={"ETCD_SETTING_KEY", })
71
+ etcd = etcd3.client(**{key.removeprefix("ETCD_").lower(): value for key, value in etcd_dict.items()})
71
72
  etcd.put(etcd_settings.ETCD_SETTING_KEY, content)
72
73
  else:
73
74
  with open(file=path, mode='w', encoding='utf-8') as f:
@@ -94,19 +95,28 @@ class SettingsModel(BaseModel):
94
95
  if isinstance(v, FieldInfo):
95
96
  setting_dict[k] = v.annotation(_env_file=str(path))
96
97
  elif str(path).__contains__('.yaml'):
98
+ data_dict = None
97
99
  if os.path.isfile(path):
98
100
  with open(path, 'r', encoding='utf-8') as file:
99
101
  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
102
  else:
103
+ if not etcd_settings:
104
+ etcd_settings = EtcdSettings()
105
+ if etcd_settings.ETCD_SETTING_KEY:
106
+ import etcd3
107
+ etcd_dict = etcd_settings.model_dump(exclude_unset=True, by_alias=True, exclude={"ETCD_SETTING_KEY",})
108
+ etcd = etcd3.client(**{key.removeprefix("ETCD_").lower(): value for key, value in etcd_dict.items()})
109
+ res, metadata = etcd.get(etcd_settings.ETCD_SETTING_KEY)
110
+ data_dict = yaml.safe_load(res)
111
+ if not data_dict:
106
112
  raise ValidationException(errors="配置错误")
107
113
  for k, v in setting_models.items():
108
114
  if isinstance(v, FieldInfo):
109
- setting_dict[k] = v.annotation(**data_dict.get(v.annotation.__name__, {}))
115
+ if hasattr(v.annotation, "Config") and v.annotation.Config.env_prefix:
116
+ annotation_dict = {k_i.removeprefix(v.annotation.Config.env_prefix): v_i for k_i, v_i in data_dict.get(v.annotation.__name__, {}).items()}
117
+ else:
118
+ annotation_dict = data_dict.get(v.annotation.__name__, {})
119
+ setting_dict[k] = v.annotation(**annotation_dict)
110
120
 
111
121
  setting_data = cls(**setting_dict)
112
122
  global settings
@@ -23,7 +23,8 @@ 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
 
29
30
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.18
3
+ Version: 1.1.20
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=gGiH1aF2jZOpi5oIq-BQ3smPy88ykxJZykKfGpmDlVM,497
2
+ fastgenerateapi/__version__.py,sha256=QNo3XZoVenfKT2zPDgctAz2fmiW9JotUfzh2vxzLE9c,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=dlyJb7BNh8Svau-UOrV4pxfoSYnNTA6eE41fu43vlT8,173
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=T2DUL5bQk-8m4LD5pxhE-lmMLUPqbh-NqSe5vmDEh-I,5722
87
87
  fastgenerateapi/settings/app_settings.py,sha256=kq0O4FZMveiLdzwRkkH1E1byccoNGlLyz7G4fNTZm6w,7357
88
88
  fastgenerateapi/settings/db_settings.py,sha256=duTgLjMHO6MTDfEZ2tkAGiSXrTKuHSLBJW00l5_rv7g,1570
89
- fastgenerateapi/settings/etcd_settings.py,sha256=z93EoutIrrbc0ZMae-6lA2Vik1z3D_hO9OXtjtfRV5I,1205
89
+ fastgenerateapi/settings/etcd_settings.py,sha256=oSmC1IgyUKJ4jj5rCzVqvZWrQzY66VqRVnY8anqNW4g,1228
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.18.dist-info/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
108
- fastgenerateapi-1.1.18.dist-info/METADATA,sha256=oGrQjDP8H9tk33ek2X-_Q7fg3pfkZmyu5g3rAK3juh8,6025
109
- fastgenerateapi-1.1.18.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
110
- fastgenerateapi-1.1.18.dist-info/top_level.txt,sha256=CW2SlpYjTRdacF-5ufnPMtwpYcR0XYn_bDxa2ZrrTBI,23
111
- fastgenerateapi-1.1.18.dist-info/RECORD,,
107
+ fastgenerateapi-1.1.20.dist-info/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
108
+ fastgenerateapi-1.1.20.dist-info/METADATA,sha256=dusvEAUKiAgGjupbGdGYX9G2KmpV3uXIGEogvFmvbzY,6025
109
+ fastgenerateapi-1.1.20.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
110
+ fastgenerateapi-1.1.20.dist-info/top_level.txt,sha256=CW2SlpYjTRdacF-5ufnPMtwpYcR0XYn_bDxa2ZrrTBI,23
111
+ fastgenerateapi-1.1.20.dist-info/RECORD,,