cadwyn 3.15.0__tar.gz → 3.15.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.

Potentially problematic release.


This version of cadwyn might be problematic. Click here for more details.

Files changed (37) hide show
  1. {cadwyn-3.15.0 → cadwyn-3.15.2}/PKG-INFO +3 -3
  2. {cadwyn-3.15.0 → cadwyn-3.15.2}/README.md +2 -2
  3. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/applications.py +82 -3
  4. {cadwyn-3.15.0 → cadwyn-3.15.2}/pyproject.toml +1 -1
  5. {cadwyn-3.15.0 → cadwyn-3.15.2}/LICENSE +0 -0
  6. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/__init__.py +0 -0
  7. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/__main__.py +0 -0
  8. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/_asts.py +0 -0
  9. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/_compat.py +0 -0
  10. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/_package_utils.py +0 -0
  11. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/_utils.py +0 -0
  12. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/README.md +0 -0
  13. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/__init__.py +0 -0
  14. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/_common.py +0 -0
  15. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/_main.py +0 -0
  16. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/_plugins/__init__.py +0 -0
  17. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/_plugins/class_migrations.py +0 -0
  18. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/_plugins/class_rebuilding.py +0 -0
  19. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/_plugins/class_renaming.py +0 -0
  20. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/_plugins/import_auto_adding.py +0 -0
  21. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/codegen/_plugins/module_migrations.py +0 -0
  22. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/exceptions.py +0 -0
  23. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/main.py +0 -0
  24. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/middleware.py +0 -0
  25. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/py.typed +0 -0
  26. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/route_generation.py +0 -0
  27. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/routing.py +0 -0
  28. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/static/__init__.py +0 -0
  29. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/static/docs.html +0 -0
  30. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/structure/__init__.py +0 -0
  31. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/structure/common.py +0 -0
  32. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/structure/data.py +0 -0
  33. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/structure/endpoints.py +0 -0
  34. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/structure/enums.py +0 -0
  35. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/structure/modules.py +0 -0
  36. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/structure/schemas.py +0 -0
  37. {cadwyn-3.15.0 → cadwyn-3.15.2}/cadwyn/structure/versions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cadwyn
3
- Version: 3.15.0
3
+ Version: 3.15.2
4
4
  Summary: Production-ready community-driven modern Stripe-like API versioning in FastAPI
5
5
  Home-page: https://github.com/zmievsa/cadwyn
6
6
  License: MIT
@@ -54,8 +54,8 @@ Production-ready community-driven modern [Stripe-like](https://stripe.com/blog/a
54
54
  <a href="https://github.com/zmievsa/cadwyn/actions/workflows/ci.yaml?branch=main&event=push" target="_blank">
55
55
  <img src="https://github.com/zmievsa/cadwyn/actions/workflows/ci.yaml/badge.svg?branch=main&event=push" alt="Test">
56
56
  </a>
57
- <a href="https://codecov.io/gh/ovsyanka83/cadwyn" target="_blank">
58
- <img src="https://img.shields.io/codecov/c/github/ovsyanka83/cadwyn?color=%2334D058&logo=codecov" alt="Coverage">
57
+ <a href="https://codecov.io/gh/zmievsa/cadwyn" target="_blank">
58
+ <img src="https://img.shields.io/codecov/c/github/zmievsa/cadwyn?color=%2334D058&logo=codecov" alt="Coverage">
59
59
  </a>
60
60
  <a href="https://pypi.org/project/cadwyn/" target="_blank">
61
61
  <img alt="PyPI" src="https://img.shields.io/pypi/v/cadwyn?color=%2334D058&logo=pypi&label=PyPI package" alt="Package version">
@@ -8,8 +8,8 @@ Production-ready community-driven modern [Stripe-like](https://stripe.com/blog/a
8
8
  <a href="https://github.com/zmievsa/cadwyn/actions/workflows/ci.yaml?branch=main&event=push" target="_blank">
9
9
  <img src="https://github.com/zmievsa/cadwyn/actions/workflows/ci.yaml/badge.svg?branch=main&event=push" alt="Test">
10
10
  </a>
11
- <a href="https://codecov.io/gh/ovsyanka83/cadwyn" target="_blank">
12
- <img src="https://img.shields.io/codecov/c/github/ovsyanka83/cadwyn?color=%2334D058&logo=codecov" alt="Coverage">
11
+ <a href="https://codecov.io/gh/zmievsa/cadwyn" target="_blank">
12
+ <img src="https://img.shields.io/codecov/c/github/zmievsa/cadwyn?color=%2334D058&logo=codecov" alt="Coverage">
13
13
  </a>
14
14
  <a href="https://pypi.org/project/cadwyn/" target="_blank">
15
15
  <img alt="PyPI" src="https://img.shields.io/pypi/v/cadwyn?color=%2334D058&logo=pypi&label=PyPI package" alt="Package version">
@@ -24,6 +24,7 @@ from starlette.routing import BaseRoute, Route
24
24
  from starlette.types import Lifespan
25
25
  from typing_extensions import Self, deprecated
26
26
 
27
+ from cadwyn._utils import same_definition_as_in
27
28
  from cadwyn.middleware import HeaderVersioningMiddleware, _get_api_version_dependency
28
29
  from cadwyn.route_generation import generate_versioned_routers
29
30
  from cadwyn.routing import _RootHeaderAPIRouter
@@ -143,8 +144,6 @@ class Cadwyn(FastAPI):
143
144
  api_version_var=self.versions.api_version_var,
144
145
  )
145
146
 
146
- self.add_event_handler("startup", self.enrich_swagger)
147
-
148
147
  self.docs_url = docs_url
149
148
  self.redoc_url = redoc_url
150
149
  self.openapi_url = openapi_url
@@ -332,14 +331,94 @@ class Cadwyn(FastAPI):
332
331
  router,
333
332
  dependencies=[Depends(_get_api_version_dependency(self.router.api_version_header_name, header_value))],
334
333
  )
335
-
334
+ self.enrich_swagger()
336
335
  return added_routes
337
336
 
338
337
  def add_unversioned_routers(self, *routers: APIRouter):
339
338
  for router in routers:
340
339
  self.router.include_router(router)
340
+ self.enrich_swagger()
341
341
 
342
342
  @deprecated("Use add add_unversioned_routers instead")
343
343
  def add_unversioned_routes(self, *routes: Route):
344
344
  router = APIRouter(routes=list(routes))
345
345
  self.include_router(router)
346
+ self.enrich_swagger()
347
+
348
+ @same_definition_as_in(FastAPI.include_router)
349
+ def include_router(self, *args: Any, **kwargs: Any):
350
+ route = super().include_router(*args, **kwargs)
351
+ self.enrich_swagger()
352
+ return route
353
+
354
+ @same_definition_as_in(FastAPI.post)
355
+ def post(self, *args: Any, **kwargs: Any):
356
+ route = super().post(*args, **kwargs)
357
+ self.enrich_swagger()
358
+ return route
359
+
360
+ @same_definition_as_in(FastAPI.get)
361
+ def get(self, *args: Any, **kwargs: Any):
362
+ route = super().get(*args, **kwargs)
363
+ self.enrich_swagger()
364
+ return route
365
+
366
+ @same_definition_as_in(FastAPI.patch)
367
+ def patch(self, *args: Any, **kwargs: Any):
368
+ route = super().patch(*args, **kwargs)
369
+ self.enrich_swagger()
370
+ return route
371
+
372
+ @same_definition_as_in(FastAPI.delete)
373
+ def delete(self, *args: Any, **kwargs: Any):
374
+ route = super().delete(*args, **kwargs)
375
+ self.enrich_swagger()
376
+ return route
377
+
378
+ @same_definition_as_in(FastAPI.put)
379
+ def put(self, *args: Any, **kwargs: Any):
380
+ route = super().put(*args, **kwargs)
381
+ self.enrich_swagger()
382
+ return route
383
+
384
+ @same_definition_as_in(FastAPI.trace)
385
+ def trace(self, *args: Any, **kwargs: Any): # pragma: no cover
386
+ route = super().trace(*args, **kwargs)
387
+ self.enrich_swagger()
388
+ return route
389
+
390
+ @same_definition_as_in(FastAPI.options)
391
+ def options(self, *args: Any, **kwargs: Any):
392
+ route = super().options(*args, **kwargs)
393
+ self.enrich_swagger()
394
+ return route
395
+
396
+ @same_definition_as_in(FastAPI.head)
397
+ def head(self, *args: Any, **kwargs: Any):
398
+ route = super().head(*args, **kwargs)
399
+ self.enrich_swagger()
400
+ return route
401
+
402
+ @same_definition_as_in(FastAPI.add_api_route)
403
+ def add_api_route(self, *args: Any, **kwargs: Any):
404
+ route = super().add_api_route(*args, **kwargs)
405
+ self.enrich_swagger()
406
+ return route
407
+
408
+ @same_definition_as_in(FastAPI.api_route)
409
+ def api_route(self, *args: Any, **kwargs: Any):
410
+ route = super().api_route(*args, **kwargs)
411
+ self.enrich_swagger()
412
+ return route
413
+
414
+ @same_definition_as_in(FastAPI.add_api_websocket_route)
415
+ def add_api_websocket_route(self, *args: Any, **kwargs: Any): # pragma: no cover
416
+ route = super().add_api_websocket_route(*args, **kwargs)
417
+ self.enrich_swagger()
418
+ return route
419
+
420
+ @same_definition_as_in(FastAPI.websocket)
421
+ def websocket(self, *args: Any, **kwargs: Any): # pragma: no cover
422
+ route = super().websocket(*args, **kwargs)
423
+ self.enrich_swagger()
424
+ return route
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cadwyn"
3
- version = "3.15.0"
3
+ version = "3.15.2"
4
4
  description = "Production-ready community-driven modern Stripe-like API versioning in FastAPI"
5
5
  authors = ["Stanislav Zmiev <zmievsa@gmail.com>"]
6
6
  license = "MIT"
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