django-ninja-aio-crud 2.15.0__tar.gz → 2.15.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.

Potentially problematic release.


This version of django-ninja-aio-crud might be problematic. Click here for more details.

Files changed (103) hide show
  1. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/PKG-INFO +1 -1
  2. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/__init__.py +1 -1
  3. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/auth.py +0 -5
  4. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/models/serializers.py +6 -8
  5. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_auth.py +2 -3
  6. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/views/test_viewset.py +1 -1
  7. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/dependabot.yml +0 -0
  8. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/workflows/coverage.yml +0 -0
  9. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/workflows/docs.yml +0 -0
  10. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/workflows/publish.yml +0 -0
  11. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.gitignore +0 -0
  12. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.pre-commit-config.yaml +0 -0
  13. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/LICENSE +0 -0
  14. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/README.md +0 -0
  15. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/CNAME +0 -0
  16. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/authentication.md +0 -0
  17. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/models/model_serializer.md +0 -0
  18. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/models/model_util.md +0 -0
  19. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/models/serializers.md +0 -0
  20. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/pagination.md +0 -0
  21. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/renderers/orjson_renderer.md +0 -0
  22. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/api_view.md +0 -0
  23. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/api_view_set.md +0 -0
  24. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/decorators.md +0 -0
  25. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/mixins.md +0 -0
  26. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/auth.md +0 -0
  27. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/contributing.md +0 -0
  28. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/extra.css +0 -0
  29. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-create-swagger.png +0 -0
  30. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-delete-swagger.png +0 -0
  31. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-list-swagger.png +0 -0
  32. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-retrieve-swagger.png +0 -0
  33. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-swagger.png +0 -0
  34. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-update-swagger.png +0 -0
  35. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/installation.md +0 -0
  36. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/quick_start.md +0 -0
  37. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/bar-swagger.png +0 -0
  38. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/favicon.ico +0 -0
  39. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/foo-swagger.png +0 -0
  40. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/logo.png +0 -0
  41. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/model_util/foo-reverse-relations-swagger.png +0 -0
  42. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/index.md +0 -0
  43. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/release_notes.md +0 -0
  44. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/requirements.txt +0 -0
  45. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/authentication.md +0 -0
  46. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/crud.md +0 -0
  47. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/filtering.md +0 -0
  48. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/model.md +0 -0
  49. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/main.py +0 -0
  50. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/mkdocs.yml +0 -0
  51. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/api.py +0 -0
  52. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/decorators/__init__.py +0 -0
  53. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/decorators/operations.py +0 -0
  54. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/decorators/views.py +0 -0
  55. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/exceptions.py +0 -0
  56. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/factory/__init__.py +0 -0
  57. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/factory/operations.py +0 -0
  58. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/helpers/__init__.py +0 -0
  59. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/helpers/api.py +0 -0
  60. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/helpers/query.py +0 -0
  61. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/models/__init__.py +0 -0
  62. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/models/utils.py +0 -0
  63. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/parsers.py +0 -0
  64. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/renders.py +0 -0
  65. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/__init__.py +0 -0
  66. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/api.py +0 -0
  67. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/filters.py +0 -0
  68. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/generics.py +0 -0
  69. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/helpers.py +0 -0
  70. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/types.py +0 -0
  71. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/views/__init__.py +0 -0
  72. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/views/api.py +0 -0
  73. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/views/mixins.py +0 -0
  74. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/pyproject.toml +0 -0
  75. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/requirements.dev.txt +0 -0
  76. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/run-local-coverage.sh +0 -0
  77. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/__init__.py +0 -0
  78. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/__init__.py +0 -0
  79. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/test_decorators.py +0 -0
  80. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/test_exceptions_api.py +0 -0
  81. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/test_renderer_parser.py +0 -0
  82. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/__init__.py +0 -0
  83. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/literals.py +0 -0
  84. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/models.py +0 -0
  85. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/request.py +0 -0
  86. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/views.py +0 -0
  87. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/helpers/__init__.py +0 -0
  88. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/helpers/test_many_to_many_api.py +0 -0
  89. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/models/__init__.py +0 -0
  90. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/models/test_model_util.py +0 -0
  91. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/models/test_models_extra.py +0 -0
  92. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/__init__.py +0 -0
  93. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/models.py +0 -0
  94. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/schema.py +0 -0
  95. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/serializers.py +0 -0
  96. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/views.py +0 -0
  97. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_decorators.py +0 -0
  98. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_exceptions.py +0 -0
  99. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_query_util.py +0 -0
  100. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_serializers.py +0 -0
  101. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_settings.py +0 -0
  102. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/views/__init__.py +0 -0
  103. {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/views/test_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-ninja-aio-crud
3
- Version: 2.15.0
3
+ Version: 2.15.1
4
4
  Summary: Django Ninja AIO CRUD - Rest Framework
5
5
  Author: Giuseppe Casillo
6
6
  Requires-Python: >=3.10, <3.15
@@ -1,6 +1,6 @@
1
1
  """Django Ninja AIO CRUD - Rest Framework"""
2
2
 
3
- __version__ = "2.15.0"
3
+ __version__ = "2.15.1"
4
4
 
5
5
  from .api import NinjaAIO
6
6
 
@@ -107,11 +107,6 @@ class AsyncJwtBearer(HttpBearer):
107
107
  """
108
108
  try:
109
109
  self.dcd = jwt.decode(token, self.jwt_public, algorithms=self.algorithms)
110
- except ValueError:
111
- # raise AuthError(", ".join(exc.args), 401)
112
- return False
113
-
114
- try:
115
110
  self.validate_claims(self.dcd.claims)
116
111
  except errors.JoseError:
117
112
  return False
@@ -305,9 +305,8 @@ class BaseSerializer:
305
305
  """
306
306
  # Auto-resolve ModelSerializer with readable fields
307
307
  if isinstance(rel_model, ModelSerializerMeta):
308
- if rel_model.get_fields("read") or rel_model.get_custom_fields("read"):
309
- return rel_model.generate_related_s()
310
- return None
308
+ has_readable_fields = rel_model.get_fields("read") or rel_model.get_custom_fields("read")
309
+ return rel_model.generate_related_s() if has_readable_fields else None
311
310
 
312
311
  # Resolve from explicit serializer mapping
313
312
  rel_serializers = cls._get_relations_serializers() or {}
@@ -478,11 +477,10 @@ class BaseSerializer:
478
477
  return (field_name, PkFromModel[pk_field_type] | None, None)
479
478
 
480
479
  # Special case: ModelSerializer with no readable fields should be skipped entirely
481
- if isinstance(rel_model, ModelSerializerMeta):
482
- if not (
483
- rel_model.get_fields("read") or rel_model.get_custom_fields("read")
484
- ):
485
- return None
480
+ if isinstance(rel_model, ModelSerializerMeta) and not (
481
+ rel_model.get_fields("read") or rel_model.get_custom_fields("read")
482
+ ):
483
+ return None
486
484
 
487
485
  schema = cls._resolve_relation_schema(field_name, rel_model)
488
486
  if not schema:
@@ -138,12 +138,11 @@ class JwtAuthTests(TestCase):
138
138
  return "should-not-happen"
139
139
 
140
140
  bearer = TB()
141
- # The ValueError branch at 110-112 is for when jwt.decode raises ValueError
142
- # Mock jwt.decode to raise ValueError to test that branch
141
+
143
142
  import unittest.mock as mock
144
143
 
145
144
  with mock.patch("ninja_aio.auth.jwt.decode") as mock_decode:
146
- mock_decode.side_effect = ValueError("invalid token")
145
+ mock_decode.side_effect = errors.JoseError("invalid token")
147
146
  result = async_to_sync(bearer.authenticate)(HttpRequest(), "fake-token")
148
147
  self.assertFalse(result)
149
148
 
@@ -890,7 +890,7 @@ class DetailSchemaModelSerializerTestCase(TestCase):
890
890
  """Test that get_schemas returns a 4-tuple with detail schema."""
891
891
  result = self.viewset.get_schemas()
892
892
  self.assertEqual(len(result), 4)
893
- schema_out, schema_detail, schema_in, schema_update = result
893
+ schema_out, schema_detail, _, _ = result
894
894
  self.assertIsNotNone(schema_out)
895
895
  self.assertIsNotNone(schema_detail)
896
896