fastapi_swagger2 0.3.0__tar.gz → 0.3.1__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.
Files changed (40) hide show
  1. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/PKG-INFO +3 -2
  2. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/README.md +1 -0
  3. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/pyproject.toml +1 -1
  4. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/src/fastapi_swagger2/__init__.py +1 -1
  5. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/src/fastapi_swagger2/utils.py +16 -7
  6. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/.flake8 +0 -0
  7. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/.gitignore +0 -0
  8. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/LICENSE +0 -0
  9. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/.git +0 -0
  10. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/.gitignore +0 -0
  11. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/LICENSE +0 -0
  12. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/README.md +0 -0
  13. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/pyproject.toml +0 -0
  14. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/requirements-dev.txt +0 -0
  15. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/requirements.txt +0 -0
  16. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/scripts/build.sh +0 -0
  17. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/scripts/clean.sh +0 -0
  18. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/scripts/format.sh +0 -0
  19. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/scripts/lint.sh +0 -0
  20. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/scripts/publish.sh +0 -0
  21. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/scripts/test.sh +0 -0
  22. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/setup.cfg +0 -0
  23. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/src/fastapi_swagger2/__init__.py +0 -0
  24. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/src/fastapi_swagger2/constants.py +0 -0
  25. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/src/fastapi_swagger2/models.py +0 -0
  26. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/fastapi_0.100.0/src/fastapi_swagger2/utils.py +0 -0
  27. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/requirements-dev.txt +0 -0
  28. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/requirements.txt +0 -0
  29. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/scripts/build.sh +0 -0
  30. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/scripts/clean.sh +0 -0
  31. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/scripts/format.sh +0 -0
  32. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/scripts/lint.sh +0 -0
  33. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/scripts/publish.sh +0 -0
  34. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/scripts/test.sh +0 -0
  35. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/setup.cfg +0 -0
  36. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/src/fastapi_swagger2/models.py +0 -0
  37. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/src/fastapi_swagger2_old/__init__.py +0 -0
  38. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/src/fastapi_swagger2_old/constants.py +0 -0
  39. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/src/fastapi_swagger2_old/models.py +0 -0
  40. {fastapi_swagger2-0.3.0 → fastapi_swagger2-0.3.1}/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.0
3
+ Version: 0.3.1
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<=0.123.8,>=0.119.0
56
+ Requires-Dist: fastapi<=0.127.1,>=0.123.9
57
57
  Provides-Extra: all
58
58
  Requires-Dist: httpx>=0.28.1; extra == 'all'
59
59
  Provides-Extra: dev
@@ -98,6 +98,7 @@ 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)
101
102
 
102
103
  ## Installation
103
104
 
@@ -28,6 +28,7 @@ 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)
31
32
 
32
33
  ## Installation
33
34
 
@@ -39,7 +39,7 @@ classifiers = [
39
39
  "Topic :: Internet :: WWW/HTTP",
40
40
  ]
41
41
  dependencies = [
42
- "fastapi >=0.119.0,<=0.123.8",
42
+ "fastapi >=0.123.9,<=0.127.1",
43
43
  ]
44
44
  dynamic = ["version"]
45
45
 
@@ -1,4 +1,4 @@
1
- __version__ = "0.3.0"
1
+ __version__ = "0.3.1"
2
2
 
3
3
  from typing import Any, Dict, List, Optional, TypeVar
4
4
 
@@ -209,10 +209,11 @@ def get_swagger2_security_definitions(
209
209
  }
210
210
 
211
211
  security_definitions = {}
212
- operation_security = []
213
- for security_requirement in flat_dependant.security_requirements:
212
+ # Use a dict to merge scopes for same security scheme
213
+ operation_security_dict: Dict[str, List[str]] = {}
214
+ for security_dependency in flat_dependant._security_dependencies:
214
215
  security_definition = jsonable_encoder(
215
- security_requirement.security_scheme.model,
216
+ security_dependency._security_scheme.model,
216
217
  by_alias=True,
217
218
  exclude_none=True,
218
219
  )
@@ -234,7 +235,7 @@ def get_swagger2_security_definitions(
234
235
  if not flows:
235
236
  continue
236
237
 
237
- security_name = security_requirement.security_scheme.scheme_name
238
+ security_name = security_dependency._security_scheme.scheme_name
238
239
 
239
240
  for flow_key, flow_data in flows.items():
240
241
  swagger2_flow_key = oauth2_flows_keys_map.get(flow_key)
@@ -246,14 +247,22 @@ def get_swagger2_security_definitions(
246
247
 
247
248
  suffixed_name = f"{security_name}_{swagger2_flow_key}"
248
249
  security_definitions[suffixed_name] = mapped_security
249
- operation_security.append({suffixed_name: security_requirement.scopes})
250
+ for scope in security_dependency.oauth_scopes or []:
251
+ if scope not in operation_security_dict.setdefault(suffixed_name, []):
252
+ operation_security_dict[suffixed_name].append(scope)
250
253
 
251
254
  continue
252
255
  # swagger2 logic - end
253
256
 
254
- security_name = security_requirement.security_scheme.scheme_name
257
+ security_name = security_dependency._security_scheme.scheme_name
255
258
  security_definitions[security_name] = security_definition
256
- operation_security.append({security_name: security_requirement.scopes})
259
+ # Merge scopes for the same security scheme
260
+ if security_name not in operation_security_dict:
261
+ operation_security_dict[security_name] = []
262
+ for scope in security_dependency.oauth_scopes or []:
263
+ if scope not in operation_security_dict[security_name]:
264
+ operation_security_dict[security_name].append(scope)
265
+ operation_security = [{name: scopes} for name, scopes in operation_security_dict.items()]
257
266
  return security_definitions, operation_security
258
267
 
259
268