cadwyn 5.4.4__py3-none-any.whl → 5.4.5__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 cadwyn might be problematic. Click here for more details.

cadwyn/changelogs.py CHANGED
@@ -2,14 +2,8 @@ import copy
2
2
  import sys
3
3
  from enum import auto
4
4
  from logging import getLogger
5
- from typing import Any, Literal, TypeVar, Union, cast, get_args
5
+ from typing import TYPE_CHECKING, Any, Literal, TypeVar, Union, cast, get_args
6
6
 
7
- from fastapi._compat import (
8
- GenerateJsonSchema,
9
- ModelField,
10
- get_compat_model_name_map,
11
- get_definitions,
12
- )
13
7
  from fastapi.openapi.constants import REF_TEMPLATE
14
8
  from fastapi.openapi.utils import (
15
9
  get_fields_from_routes,
@@ -41,6 +35,9 @@ from .structure.schemas import (
41
35
  ValidatorExistedInstruction,
42
36
  )
43
37
 
38
+ if TYPE_CHECKING:
39
+ from fastapi._compat import ModelField
40
+
44
41
  if sys.version_info >= (3, 11): # pragma: no cover
45
42
  from enum import StrEnum
46
43
  else: # pragma: no cover
@@ -120,7 +117,7 @@ def _get_affected_model_names(
120
117
  FieldDidntHaveInstruction,
121
118
  ],
122
119
  generator_from_newer_version: SchemaGenerator,
123
- schemas_from_last_version: list[ModelField],
120
+ schemas_from_last_version: "list[ModelField]",
124
121
  ):
125
122
  changed_model = generator_from_newer_version._get_wrapper_for_model(instruction.schema)
126
123
  annotations = [model.field_info.annotation for model in schemas_from_last_version]
@@ -156,6 +153,13 @@ def _get_all_pydantic_models_from_generic(annotation: Any) -> list[type[BaseMode
156
153
 
157
154
 
158
155
  def _get_openapi_representation_of_a_field(model: type[BaseModel], field_name: str) -> dict:
156
+ from fastapi._compat import (
157
+ GenerateJsonSchema,
158
+ ModelField,
159
+ get_compat_model_name_map,
160
+ get_definitions,
161
+ )
162
+
159
163
  class CadwynDummyModelForRepresentation(BaseModel):
160
164
  my_field: model
161
165
 
@@ -315,7 +319,7 @@ def _convert_version_change_instruction_to_changelog_entry( # noqa: C901
315
319
  version_change: type[VersionChange],
316
320
  generator_from_newer_version: SchemaGenerator,
317
321
  generator_from_older_version: SchemaGenerator,
318
- schemas_from_older_version: list[ModelField],
322
+ schemas_from_older_version: "list[ModelField]",
319
323
  routes_from_newer_version: list[APIRoute],
320
324
  ):
321
325
  if isinstance(instruction, EndpointDidntExistInstruction):
@@ -541,7 +541,7 @@ class _AsyncGeneratorCallableWrapper(_CallableWrapper):
541
541
  class _AnnotationTransformer:
542
542
  def __init__(self, generator: "SchemaGenerator") -> None:
543
543
  # This cache is not here for speeding things up. It's for preventing the creation of copies of the same object
544
- # because such copies could produce weird behaviors at runtime, especially if you/fastapi do any comparisons.
544
+ # because such copies could produce weird behaviors at runtime, especially if you/FastAPI do any comparisons.
545
545
  # It's defined here and not on the method because of this: https://youtu.be/sVjtp6tGo0g
546
546
  self.generator = generator
547
547
  # TODO: Rewrite this to memoize
@@ -18,7 +18,7 @@ HTTP_METHODS = {"GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"}
18
18
 
19
19
  @dataclass(**DATACLASS_SLOTS)
20
20
  class EndpointAttributesPayload:
21
- # Fastapi API routes also have "endpoint" and "dependency_overrides_provider" fields.
21
+ # FastAPI API routes also have "endpoint" and "dependency_overrides_provider" fields.
22
22
  # We do not use them because:
23
23
  # 1. "endpoint" must not change -- otherwise this versioning is doomed
24
24
  # 2. "dependency_overrides_provider" is taken from router's attributes
@@ -694,7 +694,7 @@ class VersionBundle:
694
694
  # We use this instead of `.body()` to automatically guess body type and load the correct body, even if it's a form
695
695
  async def _get_body(
696
696
  request: FastapiRequest, body_field: Union[ModelField, None], exit_stack: AsyncExitStack
697
- ): # pragma: no cover # This is from fastapi
697
+ ): # pragma: no cover # This is from FastAPI
698
698
  is_body_form = body_field and isinstance(body_field.field_info, params.Form)
699
699
  try:
700
700
  body: Any = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cadwyn
3
- Version: 5.4.4
3
+ Version: 5.4.5
4
4
  Summary: Production-ready community-driven modern Stripe-like API versioning in FastAPI
5
5
  Project-URL: Source code, https://github.com/zmievsa/cadwyn
6
6
  Project-URL: Documentation, https://docs.cadwyn.dev
@@ -88,26 +88,3 @@ The [documentation](https://docs.cadwyn.dev) has everything you need to succeed.
88
88
  ## Sponsors
89
89
 
90
90
  These are our gorgeous sponsors. They are using Cadwyn and are sponsoring it through various means. Contact [me](https://github.com/zmievsa) if you would like to become one, too!
91
-
92
- ## Contributors
93
-
94
- <details>
95
-
96
- <summary>Thanks goes to these wonderful people:</summary>
97
- <a href="https://allcontributors.org/docs/en/emoji-key">Emoji Key </a>
98
-
99
- <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
100
- <!-- prettier-ignore-start -->
101
- <!-- markdownlint-disable -->
102
-
103
- <!-- markdownlint-restore -->
104
- <!-- prettier-ignore-end -->
105
-
106
- <!-- ALL-CONTRIBUTORS-LIST:END -->
107
-
108
- This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
109
- Contributions are welcome!
110
-
111
- </details>
112
-
113
- <!-- contributors-end -->
@@ -5,14 +5,14 @@ cadwyn/_importer.py,sha256=QV6HqODCG9K2oL4Vc15fAqL2-plMvUWw_cgaj4Ln4C8,1075
5
5
  cadwyn/_render.py,sha256=VAY2Twd_MfKaC8_X22AMIQd72_UHy87icdAbKL8hd90,5526
6
6
  cadwyn/_utils.py,sha256=q_mTtMKTNTDzqCza67XST-jaPSfuTgnFLmOe0dlGeYY,2295
7
7
  cadwyn/applications.py,sha256=FALDl4v_8dJWdrpHEuvG34C_vfnKKh01rAOiyg5wVak,21200
8
- cadwyn/changelogs.py,sha256=5S0yt94LAi2ani_uk-BGR_rK247IYWbZ3NvGmwnL7es,19632
8
+ cadwyn/changelogs.py,sha256=gJnK2Rtl2svVZYQ_J2F6kkfzdmXNgsKmI3MzuXS9dKQ,19738
9
9
  cadwyn/dependencies.py,sha256=phUJ4Fy3UTegpOfDfHMjxsvASWo-1NQgwqphNnPdoVQ,241
10
10
  cadwyn/exceptions.py,sha256=8D1G7ewLrMF5jq7leald1g0ulcH9zQl8ufEK3b7HHAE,1749
11
11
  cadwyn/middleware.py,sha256=4Ziq1ysnc8j5KmeZpsr9VJKllEFC8uYwXnG01I2FPR4,4853
12
12
  cadwyn/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  cadwyn/route_generation.py,sha256=conoTBtsOtjyiV2NdUxwGQX-h1zLyIjDQjD5bT2YSgg,27185
14
14
  cadwyn/routing.py,sha256=Ii6Qbgm9lGks1IAk-kDuIu_dX3FXsA77KSfGOFmLbgc,7604
15
- cadwyn/schema_generation.py,sha256=2_b-PKRma07Rvefpc-bQNNjh3SVFot8ZAtrEgRaI4AY,48848
15
+ cadwyn/schema_generation.py,sha256=Q0Ma_2XA5plPcZ7sxNK1jZxubGDNcc-XMka3TkvFgEI,48848
16
16
  cadwyn/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  cadwyn/_internal/context_vars.py,sha256=VcM8eAoSlvrIMFQhjZmjflV5o1yrPSEZZGkwOK4OSf4,378
18
18
  cadwyn/static/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -20,12 +20,12 @@ cadwyn/static/docs.html,sha256=WNm5ANJVy51TcIUFOaqKf1Z8eF86CC85TTHPxACtkzw,3455
20
20
  cadwyn/structure/__init__.py,sha256=Wgvjdq3vfl9Yhe-BkcFGAMi_Co11YOfTmJQqgF5Gzx4,655
21
21
  cadwyn/structure/common.py,sha256=YuyfYMxkJcj2c5SFh9teBoEC2xLO5_2QjPzYjwdZcTs,478
22
22
  cadwyn/structure/data.py,sha256=eb4HlGTu3V_G5vJuQ4GLEaGd4LmPmFX3L8CXwJKzfOE,7795
23
- cadwyn/structure/endpoints.py,sha256=zUgzglNhBPnmWdJ03A8pFT4zPs_lj8nQ7c7Uo2d-ejU,6246
23
+ cadwyn/structure/endpoints.py,sha256=OYNaZ76VidtSutQfteFMba5nNIXtEjwCAvgpy3fRBT4,6246
24
24
  cadwyn/structure/enums.py,sha256=4FCc9aniLE3VuWAVIacrNP_FWxTIUm9JkeeHA_zZdwQ,1254
25
25
  cadwyn/structure/schemas.py,sha256=kuQJg60VpWHZkSPvrbvd9pe-Zetq8as5YYrERsG3IE8,10785
26
- cadwyn/structure/versions.py,sha256=IrtX8sGswjNc8z_6HsU9Im-U7-agZB_pFaqSHz_0SMk,34710
27
- cadwyn-5.4.4.dist-info/METADATA,sha256=mkLkjQKFnbx0HCXAWQOywo05HurIxanWa49fg6iHk3k,5076
28
- cadwyn-5.4.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
29
- cadwyn-5.4.4.dist-info/entry_points.txt,sha256=mGX8wl-Xfhpr5M93SUmkykaqinUaYAvW9rtDSX54gx0,47
30
- cadwyn-5.4.4.dist-info/licenses/LICENSE,sha256=KeCWewiDQYpmSnzF-p_0YpoWiyDcUPaCuG8OWQs4ig4,1072
31
- cadwyn-5.4.4.dist-info/RECORD,,
26
+ cadwyn/structure/versions.py,sha256=3ZDKewBHHWmAwhOQbIR5p17ANzqglMDTvYUGKTAqXyk,34710
27
+ cadwyn-5.4.5.dist-info/METADATA,sha256=mgh_IMJ36E6I5rV8cyGSUR3e2QrEbYyUskWpimCbFLo,4504
28
+ cadwyn-5.4.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
29
+ cadwyn-5.4.5.dist-info/entry_points.txt,sha256=mGX8wl-Xfhpr5M93SUmkykaqinUaYAvW9rtDSX54gx0,47
30
+ cadwyn-5.4.5.dist-info/licenses/LICENSE,sha256=KeCWewiDQYpmSnzF-p_0YpoWiyDcUPaCuG8OWQs4ig4,1072
31
+ cadwyn-5.4.5.dist-info/RECORD,,
File without changes