easyapi-django 1.2.0__tar.gz → 1.2.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.
Files changed (100) hide show
  1. {easyapi_django-1.2.0/easyapi_django.egg-info → easyapi_django-1.2.2}/PKG-INFO +1 -1
  2. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/base.py +7 -1
  3. {easyapi_django-1.2.0 → easyapi_django-1.2.2/easyapi_django.egg-info}/PKG-INFO +1 -1
  4. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/pyproject.toml +1 -1
  5. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/LICENSE +0 -0
  6. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/MANIFEST.in +0 -0
  7. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/README.md +0 -0
  8. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/__init__.py +0 -0
  9. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/auth.py +0 -0
  10. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/bearer.py +0 -0
  11. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/blocking.py +0 -0
  12. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/calc.py +0 -0
  13. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/calc_resource.py +0 -0
  14. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/client_ip.py +0 -0
  15. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/constants.py +0 -0
  16. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/core/__init__.py +0 -0
  17. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/core/endpoint.py +0 -0
  18. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/core/resource.py +0 -0
  19. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/dates.py +0 -0
  20. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/exception.py +0 -0
  21. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/filters.py +0 -0
  22. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/__init__.py +0 -0
  23. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/cli.py +0 -0
  24. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/config.py +0 -0
  25. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/generator.py +0 -0
  26. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/inspector/__init__.py +0 -0
  27. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/inspector/base.py +0 -0
  28. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/inspector/mysql.py +0 -0
  29. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/inspector/postgres.py +0 -0
  30. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/README.md.j2 +0 -0
  31. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/asgi.py.j2 +0 -0
  32. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/env.example.j2 +0 -0
  33. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/gitignore.j2 +0 -0
  34. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/manage.py.j2 +0 -0
  35. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/module/models.py.j2 +0 -0
  36. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/module/resources.py.j2 +0 -0
  37. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/requirements.txt.j2 +0 -0
  38. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/router/endpoints.py.j2 +0 -0
  39. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/router/urls.py.j2 +0 -0
  40. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/run.sh.j2 +0 -0
  41. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/settings/env.py.j2 +0 -0
  42. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/settings/settings.py.j2 +0 -0
  43. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/helpers.py +0 -0
  44. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/management/__init__.py +0 -0
  45. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/management/commands/__init__.py +0 -0
  46. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/management/commands/mcp_serve.py +0 -0
  47. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/__init__.py +0 -0
  48. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/protocol.py +0 -0
  49. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/schema.py +0 -0
  50. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/server.py +0 -0
  51. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/testing.py +0 -0
  52. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/tool.py +0 -0
  53. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/tools.py +0 -0
  54. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/middleware.py +0 -0
  55. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/__init__.py +0 -0
  56. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/_common.py +0 -0
  57. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/apps.py +0 -0
  58. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/clients.py +0 -0
  59. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/codes.py +0 -0
  60. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/constants.py +0 -0
  61. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/devices.py +0 -0
  62. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/discovery.py +0 -0
  63. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/migrations/0001_initial.py +0 -0
  64. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/migrations/__init__.py +0 -0
  65. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/models.py +0 -0
  66. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resolver.py +0 -0
  67. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/__init__.py +0 -0
  68. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/authorize.py +0 -0
  69. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/device.py +0 -0
  70. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/device_authorization.py +0 -0
  71. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/register.py +0 -0
  72. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/revoke.py +0 -0
  73. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/token.py +0 -0
  74. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/routes.py +0 -0
  75. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/session.py +0 -0
  76. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/settings_helper.py +0 -0
  77. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/templates/zeromcp_oauth/consent.html +0 -0
  78. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/templates/zeromcp_oauth/device.html +0 -0
  79. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/tokens.py +0 -0
  80. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/openapi.py +0 -0
  81. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/orm/__init__.py +0 -0
  82. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/rate_limit.py +0 -0
  83. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/redis_config.py +0 -0
  84. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/routes.py +0 -0
  85. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/schemas.py +0 -0
  86. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/security.py +0 -0
  87. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/sensitive.py +0 -0
  88. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/serializer.py +0 -0
  89. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/settings_helper.py +0 -0
  90. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/tenant/__init__.py +0 -0
  91. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/tenant/db_router.py +0 -0
  92. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/tenant/registry.py +0 -0
  93. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/tenant/tenant.py +0 -0
  94. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/util.py +0 -0
  95. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/SOURCES.txt +0 -0
  96. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/dependency_links.txt +0 -0
  97. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/entry_points.txt +0 -0
  98. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/requires.txt +0 -0
  99. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/top_level.txt +0 -0
  100. {easyapi_django-1.2.0 → easyapi_django-1.2.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easyapi-django
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: Zero-effort MCP server (and REST API) generator from Django models.
5
5
  Author-email: Stamatios Stamou Jr <bushier.outsets.0c@icloud.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,7 @@
1
1
  import hashlib
2
2
  import json
3
3
  import logging
4
+ from decimal import InvalidOperation
4
5
  from functools import reduce
5
6
  from importlib import import_module
6
7
  from urllib import parse
@@ -14,7 +15,7 @@ from django.db.models import Q
14
15
  from django.forms.models import model_to_dict
15
16
  from django.http import HttpResponse, JsonResponse
16
17
  from .core import CoreResource
17
- from django.db.utils import IntegrityError
18
+ from django.db.utils import DataError, IntegrityError
18
19
  from django.utils import timezone
19
20
 
20
21
  import operator
@@ -761,6 +762,8 @@ class BaseResource(CoreResource):
761
762
  if is_pydantic_model(schema):
762
763
  self.body = validate_input(schema, self.body)
763
764
  await self.hydrate(self.body)
765
+ else:
766
+ raise HTTPException(400, 'Invalid body')
764
767
  else:
765
768
  self.body = None
766
769
 
@@ -1608,6 +1611,9 @@ class BaseResource(CoreResource):
1608
1611
  )
1609
1612
  raise HTTPException(409, 'Conflict creating item')
1610
1613
 
1614
+ except (ValueError, TypeError, FieldError, ValidationError, InvalidOperation, DataError) as exc:
1615
+ raise HTTPException(400, f'Invalid value: {exc}') from exc
1616
+
1611
1617
  return await self.get_obj(id)
1612
1618
 
1613
1619
  async def patch(self, request):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easyapi-django
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: Zero-effort MCP server (and REST API) generator from Django models.
5
5
  Author-email: Stamatios Stamou Jr <bushier.outsets.0c@icloud.com>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "easyapi-django"
7
- version = "1.2.0"
7
+ version = "1.2.2"
8
8
  authors = [
9
9
  { name="Stamatios Stamou Jr", email="bushier.outsets.0c@icloud.com" },
10
10
  ]
File without changes
File without changes
File without changes