fastapi_swagger2 0.3.0__tar.gz → 0.3.2__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.
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/PKG-INFO +4 -2
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/README.md +2 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/pyproject.toml +1 -1
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/src/fastapi_swagger2/__init__.py +1 -1
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/src/fastapi_swagger2/utils.py +17 -9
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/.flake8 +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/.gitignore +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/LICENSE +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/.git +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/.gitignore +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/LICENSE +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/README.md +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/pyproject.toml +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/requirements-dev.txt +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/requirements.txt +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/scripts/build.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/scripts/clean.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/scripts/format.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/scripts/lint.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/scripts/publish.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/scripts/test.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/setup.cfg +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/src/fastapi_swagger2/__init__.py +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/src/fastapi_swagger2/constants.py +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/src/fastapi_swagger2/models.py +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/src/fastapi_swagger2/utils.py +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/requirements-dev.txt +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/requirements.txt +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/scripts/build.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/scripts/clean.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/scripts/format.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/scripts/lint.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/scripts/publish.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/scripts/test.sh +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/setup.cfg +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/src/fastapi_swagger2/models.py +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/src/fastapi_swagger2_old/__init__.py +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/src/fastapi_swagger2_old/constants.py +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/src/fastapi_swagger2_old/models.py +0 -0
- {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/src/fastapi_swagger2_old/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi_swagger2
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2
|
|
4
4
|
Summary: Swagger2 support for FastAPI framework
|
|
5
5
|
Project-URL: Homepage, https://github.com/virajkanwade/fastapi_swagger2
|
|
6
6
|
Project-URL: Documentation, https://github.com/virajkanwade/fastapi_swagger2
|
|
@@ -53,7 +53,7 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
53
53
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
54
54
|
Classifier: Typing :: Typed
|
|
55
55
|
Requires-Python: >=3.9
|
|
56
|
-
Requires-Dist: fastapi
|
|
56
|
+
Requires-Dist: fastapi>=0.128.0
|
|
57
57
|
Provides-Extra: all
|
|
58
58
|
Requires-Dist: httpx>=0.28.1; extra == 'all'
|
|
59
59
|
Provides-Extra: dev
|
|
@@ -98,6 +98,8 @@ Python 3.9+
|
|
|
98
98
|
* 0.2.4 - FastAPI >= 0.100.0
|
|
99
99
|
* 0.2.7 - FastAPI >= 0.100.0, < 0.119.0 + Pydantic v1/v2
|
|
100
100
|
* 0.3.0 - FastAPI >= 0.119.0, <= 0.123.8 + Pydantic v1/v2
|
|
101
|
+
* 0.3.1 - FastAPI >= 0.123.9, <= 0.127.1 + Pydantic v1/v2 (Since FastAPI 0.126.1, Pydantic v1 is deprecated)
|
|
102
|
+
* 0.3.2 - FastAPI >= 0.128.0
|
|
101
103
|
|
|
102
104
|
## Installation
|
|
103
105
|
|
|
@@ -28,6 +28,8 @@ Python 3.9+
|
|
|
28
28
|
* 0.2.4 - FastAPI >= 0.100.0
|
|
29
29
|
* 0.2.7 - FastAPI >= 0.100.0, < 0.119.0 + Pydantic v1/v2
|
|
30
30
|
* 0.3.0 - FastAPI >= 0.119.0, <= 0.123.8 + Pydantic v1/v2
|
|
31
|
+
* 0.3.1 - FastAPI >= 0.123.9, <= 0.127.1 + Pydantic v1/v2 (Since FastAPI 0.126.1, Pydantic v1 is deprecated)
|
|
32
|
+
* 0.3.2 - FastAPI >= 0.128.0
|
|
31
33
|
|
|
32
34
|
## Installation
|
|
33
35
|
|
|
@@ -4,7 +4,6 @@ from typing import Any, Dict, List, Optional, Sequence, Set, Tuple, Type, Union
|
|
|
4
4
|
|
|
5
5
|
from fastapi import routing
|
|
6
6
|
from fastapi._compat import (
|
|
7
|
-
JsonSchemaValue,
|
|
8
7
|
ModelField,
|
|
9
8
|
get_compat_model_name_map,
|
|
10
9
|
get_definitions,
|
|
@@ -209,10 +208,11 @@ def get_swagger2_security_definitions(
|
|
|
209
208
|
}
|
|
210
209
|
|
|
211
210
|
security_definitions = {}
|
|
212
|
-
|
|
213
|
-
|
|
211
|
+
# Use a dict to merge scopes for same security scheme
|
|
212
|
+
operation_security_dict: Dict[str, List[str]] = {}
|
|
213
|
+
for security_dependency in flat_dependant._security_dependencies:
|
|
214
214
|
security_definition = jsonable_encoder(
|
|
215
|
-
|
|
215
|
+
security_dependency._security_scheme.model,
|
|
216
216
|
by_alias=True,
|
|
217
217
|
exclude_none=True,
|
|
218
218
|
)
|
|
@@ -234,7 +234,7 @@ def get_swagger2_security_definitions(
|
|
|
234
234
|
if not flows:
|
|
235
235
|
continue
|
|
236
236
|
|
|
237
|
-
security_name =
|
|
237
|
+
security_name = security_dependency._security_scheme.scheme_name
|
|
238
238
|
|
|
239
239
|
for flow_key, flow_data in flows.items():
|
|
240
240
|
swagger2_flow_key = oauth2_flows_keys_map.get(flow_key)
|
|
@@ -246,14 +246,22 @@ def get_swagger2_security_definitions(
|
|
|
246
246
|
|
|
247
247
|
suffixed_name = f"{security_name}_{swagger2_flow_key}"
|
|
248
248
|
security_definitions[suffixed_name] = mapped_security
|
|
249
|
-
|
|
249
|
+
for scope in security_dependency.oauth_scopes or []:
|
|
250
|
+
if scope not in operation_security_dict.setdefault(suffixed_name, []):
|
|
251
|
+
operation_security_dict[suffixed_name].append(scope)
|
|
250
252
|
|
|
251
253
|
continue
|
|
252
254
|
# swagger2 logic - end
|
|
253
255
|
|
|
254
|
-
security_name =
|
|
256
|
+
security_name = security_dependency._security_scheme.scheme_name
|
|
255
257
|
security_definitions[security_name] = security_definition
|
|
256
|
-
|
|
258
|
+
# Merge scopes for the same security scheme
|
|
259
|
+
if security_name not in operation_security_dict:
|
|
260
|
+
operation_security_dict[security_name] = []
|
|
261
|
+
for scope in security_dependency.oauth_scopes or []:
|
|
262
|
+
if scope not in operation_security_dict[security_name]:
|
|
263
|
+
operation_security_dict[security_name].append(scope)
|
|
264
|
+
operation_security = [{name: scopes} for name, scopes in operation_security_dict.items()]
|
|
257
265
|
return security_definitions, operation_security
|
|
258
266
|
|
|
259
267
|
|
|
@@ -262,7 +270,7 @@ def get_swagger2_path(
|
|
|
262
270
|
route: routing.APIRoute,
|
|
263
271
|
operation_ids: Set[str],
|
|
264
272
|
model_name_map: ModelNameMap,
|
|
265
|
-
field_mapping: Dict[Tuple[ModelField, Literal["validation", "serialization"]],
|
|
273
|
+
field_mapping: Dict[Tuple[ModelField, Literal["validation", "serialization"]], dict[str, Any]],
|
|
266
274
|
separate_input_output_schemas: bool = True,
|
|
267
275
|
) -> Tuple[Dict[str, Any], Dict[str, Any], Dict[str, Any]]:
|
|
268
276
|
path: Dict[str, Any] = {}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/src/fastapi_swagger2/__init__.py
RENAMED
|
File without changes
|
{fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/src/fastapi_swagger2/constants.py
RENAMED
|
File without changes
|
{fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/src/fastapi_swagger2/models.py
RENAMED
|
File without changes
|
{fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.2}/fastapi_0.100.0/src/fastapi_swagger2/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|