core-framework 0.12.10__py3-none-any.whl → 0.12.11__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.
- core/__init__.py +1 -1
- core/auth/views.py +42 -2
- {core_framework-0.12.10.dist-info → core_framework-0.12.11.dist-info}/METADATA +1 -1
- {core_framework-0.12.10.dist-info → core_framework-0.12.11.dist-info}/RECORD +6 -6
- {core_framework-0.12.10.dist-info → core_framework-0.12.11.dist-info}/WHEEL +0 -0
- {core_framework-0.12.10.dist-info → core_framework-0.12.11.dist-info}/entry_points.txt +0 -0
core/__init__.py
CHANGED
core/auth/views.py
CHANGED
|
@@ -244,6 +244,43 @@ class AuthViewSet(ViewSet):
|
|
|
244
244
|
# Default to str
|
|
245
245
|
return str
|
|
246
246
|
|
|
247
|
+
def _get_extra_field_names(self) -> list[str]:
|
|
248
|
+
"""
|
|
249
|
+
Auto-detect extra fields from register_schema.
|
|
250
|
+
|
|
251
|
+
Compares register_schema fields with BaseRegisterInput to find
|
|
252
|
+
additional fields that need to be passed to create_user().
|
|
253
|
+
|
|
254
|
+
This allows users to define a custom register_schema without
|
|
255
|
+
also having to define extra_register_fields (DRY principle).
|
|
256
|
+
|
|
257
|
+
Returns:
|
|
258
|
+
List of field names that are in register_schema but not in BaseRegisterInput
|
|
259
|
+
|
|
260
|
+
Example:
|
|
261
|
+
class CustomRegisterInput(BaseRegisterInput):
|
|
262
|
+
name: str
|
|
263
|
+
phone: str | None = None
|
|
264
|
+
|
|
265
|
+
class MyAuthViewSet(AuthViewSet):
|
|
266
|
+
register_schema = CustomRegisterInput
|
|
267
|
+
# extra_register_fields not needed!
|
|
268
|
+
|
|
269
|
+
# _get_extra_field_names() returns ["name", "phone"]
|
|
270
|
+
"""
|
|
271
|
+
schema = self._get_register_schema()
|
|
272
|
+
|
|
273
|
+
# Get base fields (email, password)
|
|
274
|
+
base_fields = set(BaseRegisterInput.model_fields.keys())
|
|
275
|
+
|
|
276
|
+
# Get schema fields
|
|
277
|
+
schema_fields = set(schema.model_fields.keys())
|
|
278
|
+
|
|
279
|
+
# Return extra fields (fields in schema but not in base)
|
|
280
|
+
extra = schema_fields - base_fields
|
|
281
|
+
|
|
282
|
+
return list(extra)
|
|
283
|
+
|
|
247
284
|
def _create_tokens(self, user) -> dict:
|
|
248
285
|
"""
|
|
249
286
|
Bug #6 Fix: Create access and refresh tokens using current API.
|
|
@@ -328,9 +365,12 @@ class AuthViewSet(ViewSet):
|
|
|
328
365
|
detail="User with this email already exists"
|
|
329
366
|
)
|
|
330
367
|
|
|
331
|
-
#
|
|
368
|
+
# Extract extra fields for user creation
|
|
369
|
+
# Auto-detect from schema if extra_register_fields not explicitly defined
|
|
370
|
+
extra_field_names = self.extra_register_fields or self._get_extra_field_names()
|
|
371
|
+
|
|
332
372
|
extra_fields = {}
|
|
333
|
-
for field_name in
|
|
373
|
+
for field_name in extra_field_names:
|
|
334
374
|
value = getattr(validated, field_name, None)
|
|
335
375
|
if value is not None:
|
|
336
376
|
extra_fields[field_name] = value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: core-framework
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.11
|
|
4
4
|
Summary: Core Framework - Django-inspired, FastAPI-powered. Alta performance, baixo acoplamento, produtividade extrema.
|
|
5
5
|
Project-URL: Homepage, https://github.com/SorPuti/core-framework
|
|
6
6
|
Project-URL: Documentation, https://github.com/SorPuti/core-framework#readme
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
core/__init__.py,sha256=
|
|
1
|
+
core/__init__.py,sha256=tvZLlVpXoyS3BPdF0hivmXeVRomd2awBRg-ZeAxvyMg,12232
|
|
2
2
|
core/app.py,sha256=SsMC5Vlj6PNgACXlfeccOm6CQEKfgh3q3X2p9ubRDlQ,23092
|
|
3
3
|
core/choices.py,sha256=rhcL3p2dB7RK99zIilpmoTFVcibQEIaRpz0CY0kImCE,10502
|
|
4
4
|
core/config.py,sha256=dq4O7QBdrdwj-fZRe2yhX1fKyi_Uetb6sx9-RovJ-9c,14771
|
|
@@ -29,7 +29,7 @@ core/auth/models.py,sha256=aEE7deQKPS1aH0Btzzh3Z1Bwuqy8zvLZwu4JFEmiUNk,34058
|
|
|
29
29
|
core/auth/permissions.py,sha256=v3ykAgNpq5wJ0NkuC_FuveMctOkDfM9Xp11XEnUAuBg,12461
|
|
30
30
|
core/auth/schemas.py,sha256=L0W96dOD348rJDGeu1K5Rz3aJj-GdwMr2vbwwsYfo2g,3469
|
|
31
31
|
core/auth/tokens.py,sha256=jOF40D5O8WRG8klRwMBuSG-jOhdsp1irXn2aZ2puNSg,9149
|
|
32
|
-
core/auth/views.py,sha256=
|
|
32
|
+
core/auth/views.py,sha256=psL4g2Fe1saXn1eCnm6b18E2JCbALixVJahr2OIaLvI,18211
|
|
33
33
|
core/cli/__init__.py,sha256=EOYSATzRugHD2oJ1SPfTIMUygUoNJnO_dRt2yJrkQcU,542
|
|
34
34
|
core/cli/main.py,sha256=0WAO1deegd2Yja19ggDbX4j6p5S_p2KrmyAmale9HZs,124490
|
|
35
35
|
core/deployment/__init__.py,sha256=RNcBRO9oB3WRnhtTTwM6wzVEcUKpKF4XfRkGSbbykIc,794
|
|
@@ -87,7 +87,7 @@ example/auth.py,sha256=zBpLutb8lVKnGfQqQ2wnyygsSutHYZzeJBuhnFhxBaQ,4971
|
|
|
87
87
|
example/models.py,sha256=xKdx0kJ9n0tZ7sCce3KhV3BTvKvsh6m7G69eFm3ukf0,4549
|
|
88
88
|
example/schemas.py,sha256=wJ9QofnuHp4PjtM_IuMMBLVFVDJ4YlwcF6uQm1ooKiY,6139
|
|
89
89
|
example/views.py,sha256=GQwgQcW6yoeUIDbF7-lsaZV7cs8G1S1vGVtiwVpZIQE,14338
|
|
90
|
-
core_framework-0.12.
|
|
91
|
-
core_framework-0.12.
|
|
92
|
-
core_framework-0.12.
|
|
93
|
-
core_framework-0.12.
|
|
90
|
+
core_framework-0.12.11.dist-info/METADATA,sha256=VpC4knI1g1olWe8cq5H-A1M8W84N6ONhq9pLIp4wrrg,13021
|
|
91
|
+
core_framework-0.12.11.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
92
|
+
core_framework-0.12.11.dist-info/entry_points.txt,sha256=MJytamxHbn0CyH3HbxiP-PqOWekjYUo2CA6EWiKWuSI,78
|
|
93
|
+
core_framework-0.12.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|