fastgenerateapi 1.1.21__py2.py3-none-any.whl → 1.1.23__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.
@@ -8,7 +8,7 @@
8
8
  # d8888P
9
9
 
10
10
 
11
- VERSION = (1, 1, 21)
11
+ VERSION = (1, 1, 23)
12
12
 
13
13
  __version__ = '.'.join(map(str, VERSION))
14
14
 
@@ -161,7 +161,7 @@ class BaseView(BaseMixin, ResponseMixin, ToolMixin, DBModelMixin):
161
161
  model_class: Type[Model], # 数据库模型
162
162
  model: Union[Model, None] = None
163
163
  ):
164
- check_unique_fields = cls._get_unique_fields(model_class) + cls._get_foreign_key_fields(model_class)
164
+ check_unique_fields = cls._get_unique_fields(model_class)
165
165
  check_unique_together_fields = cls._get_unique_together_fields(model_class)
166
166
  for unique_field in check_unique_fields:
167
167
  if hasattr(request_data, unique_field):
@@ -4,4 +4,5 @@ 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 *
7
8
 
@@ -76,7 +76,6 @@ class SettingsModel(BaseModel):
76
76
  def get_global_settings(
77
77
  cls,
78
78
  path: Union[Path, str, None] = '.env',
79
- etcd_settings: Optional[EtcdSettings] = None,
80
79
  ):
81
80
  """
82
81
  get global settings and set into cache
@@ -92,22 +91,25 @@ class SettingsModel(BaseModel):
92
91
  if isinstance(v, FieldInfo):
93
92
  setting_dict[k] = v.annotation(_env_file=str(path))
94
93
  elif str(path).__contains__('.yaml'):
95
- data_dict = None
94
+ data_dict = {}
96
95
  if os.path.isfile(path):
97
96
  with open(path, 'r', encoding='utf-8') as file:
98
- data_dict = yaml.safe_load(file)
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)
97
+ data_dict = yaml.safe_load(file) or {}
98
+ etcd_settings = EtcdSettings(**data_dict.get("EtcdSettings", {}))
99
+ if etcd_settings.ETCD_SETTING_KEY:
100
+ res, metadata = etcd_settings.client.get(etcd_settings.ETCD_SETTING_KEY)
101
+ data_dict.update(yaml.safe_load(res))
105
102
  if not data_dict:
106
103
  raise ValidationException(errors="配置错误")
107
104
  for k, v in setting_models.items():
108
105
  if isinstance(v, FieldInfo):
106
+ env_prefix = None
109
107
  if hasattr(v.annotation, "Config") and v.annotation.Config.env_prefix:
110
- 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()}
108
+ env_prefix = v.annotation.Config.env_prefix
109
+ if not env_prefix and hasattr(v.annotation, "model_config"):
110
+ env_prefix = v.annotation.model_config.get("env_prefix")
111
+ if env_prefix:
112
+ annotation_dict = {k_i.removeprefix(env_prefix): v_i for k_i, v_i in data_dict.get(v.annotation.__name__, {}).items()}
111
113
  else:
112
114
  annotation_dict = data_dict.get(v.annotation.__name__, {})
113
115
  setting_dict[k] = v.annotation(**annotation_dict)
@@ -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="数据库密码")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.1.21
3
+ Version: 1.1.23
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com
@@ -1,8 +1,8 @@
1
1
  fastgenerateapi/__init__.py,sha256=eh2qtp7FbjrgaRX5b3H3UWpasFdNHbVFqLUhpqVbaTU,1287
2
- fastgenerateapi/__version__.py,sha256=0xRZ1CfqeRcMqpMktZAkQScpQ6OE77bWp9qqmkahXwg,497
2
+ fastgenerateapi/__version__.py,sha256=rxR86pkbhyudSZXJXI3wmTqeK6UREj7Ggkn4Il4jVF4,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
- fastgenerateapi/api_view/base_view.py,sha256=AUWMd2Ys5mVwifN5iOs7BjpBqCF_ktv23oEp7sHR1g0,9984
5
+ fastgenerateapi/api_view/base_view.py,sha256=dx9f_lM51gBVT1ESLBcmuSwi6jIhZAdiaWpG7QK9kHo,9941
6
6
  fastgenerateapi/api_view/create_view.py,sha256=NvJ0ocD2UMHcdipA4W7MYamxAw8sYeXAc176VAdkLek,4621
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
@@ -82,10 +82,10 @@ 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=n6ZGy9R99ln330mshMqav6XRTAfDR1SP5eV8LshI6OQ,169
86
- fastgenerateapi/settings/all_settings.py,sha256=bPUrQSZkwtREMfwcTb656u8tcXQn_rHqNhU5HqoQa1w,5375
85
+ fastgenerateapi/settings/__init__.py,sha256=AOvd7RM_jdrtw7jazw_IoGV5tPOXw2t0OOG1rZU36XI,199
86
+ fastgenerateapi/settings/all_settings.py,sha256=fXWZZBgx35OMSVJVtw4l_mM-WCXwGNrrl2Bwivb8idw,5571
87
87
  fastgenerateapi/settings/app_settings.py,sha256=kq0O4FZMveiLdzwRkkH1E1byccoNGlLyz7G4fNTZm6w,7357
88
- fastgenerateapi/settings/db_settings.py,sha256=duTgLjMHO6MTDfEZ2tkAGiSXrTKuHSLBJW00l5_rv7g,1570
88
+ fastgenerateapi/settings/db_settings.py,sha256=uVUbhUQxhbMkwhU5UDG8eE4nf_Blg8bPxLCIEDSMTO4,1570
89
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
@@ -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.21.dist-info/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
108
- fastgenerateapi-1.1.21.dist-info/METADATA,sha256=VOKh5AZkjuZodjO2trRXxsLP2RM5J9vk7CEgi42ScMg,6025
109
- fastgenerateapi-1.1.21.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
110
- fastgenerateapi-1.1.21.dist-info/top_level.txt,sha256=CW2SlpYjTRdacF-5ufnPMtwpYcR0XYn_bDxa2ZrrTBI,23
111
- fastgenerateapi-1.1.21.dist-info/RECORD,,
107
+ fastgenerateapi-1.1.23.dist-info/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
108
+ fastgenerateapi-1.1.23.dist-info/METADATA,sha256=89tFNft4ma3cHgww8HNemD0gRCzkGyjkuil9mEhQF-U,6025
109
+ fastgenerateapi-1.1.23.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
110
+ fastgenerateapi-1.1.23.dist-info/top_level.txt,sha256=CW2SlpYjTRdacF-5ufnPMtwpYcR0XYn_bDxa2ZrrTBI,23
111
+ fastgenerateapi-1.1.23.dist-info/RECORD,,