jararaca 0.2.31__tar.gz → 0.2.32__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 jararaca might be problematic. Click here for more details.

Files changed (78) hide show
  1. {jararaca-0.2.31 → jararaca-0.2.32}/PKG-INFO +1 -1
  2. {jararaca-0.2.31 → jararaca-0.2.32}/pyproject.toml +1 -1
  3. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/persistence/sort_filter.py +24 -7
  4. {jararaca-0.2.31 → jararaca-0.2.32}/LICENSE +0 -0
  5. {jararaca-0.2.31 → jararaca-0.2.32}/README.md +0 -0
  6. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/Message Bus/Decorators.md +0 -0
  7. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/Message Bus/Interceptors.md +0 -0
  8. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/Observability/Decorators.md +0 -0
  9. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/Observability/Interceptors.md +0 -0
  10. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/Presentation/Decorators.md +0 -0
  11. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/RPC/RestClients/Decorators.md +0 -0
  12. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/RPC/RestClients/Middlewared.md +0 -0
  13. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/Schedule/Decorators.md +0 -0
  14. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/Websocket/Decorators.md +0 -0
  15. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Architecture/Websocket/Interceptors.md +0 -0
  16. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Concept/Adapters.md +0 -0
  17. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Concept/Hexagonal Architecture.md +0 -0
  18. {jararaca-0.2.31 → jararaca-0.2.32}/docs/Concept/Ports.md +0 -0
  19. {jararaca-0.2.31 → jararaca-0.2.32}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
  20. {jararaca-0.2.31 → jararaca-0.2.32}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
  21. {jararaca-0.2.31 → jararaca-0.2.32}/docs/assets/tracing_example.png +0 -0
  22. {jararaca-0.2.31 → jararaca-0.2.32}/docs/index.md +0 -0
  23. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/__init__.py +0 -0
  24. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/__main__.py +0 -0
  25. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/cli.py +0 -0
  26. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/common/__init__.py +0 -0
  27. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/core/__init__.py +0 -0
  28. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/core/providers.py +0 -0
  29. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/core/uow.py +0 -0
  30. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/di.py +0 -0
  31. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/files/entity.py.mako +0 -0
  32. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/lifecycle.py +0 -0
  33. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/messagebus/__init__.py +0 -0
  34. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/messagebus/decorators.py +0 -0
  35. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
  36. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
  37. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/messagebus/publisher.py +0 -0
  38. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/messagebus/types.py +0 -0
  39. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/messagebus/worker.py +0 -0
  40. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/microservice.py +0 -0
  41. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/observability/decorators.py +0 -0
  42. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/observability/interceptor.py +0 -0
  43. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/observability/providers/__init__.py +0 -0
  44. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/observability/providers/otel.py +0 -0
  45. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/persistence/base.py +0 -0
  46. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/persistence/exports.py +0 -0
  47. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/persistence/interceptors/__init__.py +0 -0
  48. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
  49. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/persistence/session.py +0 -0
  50. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/persistence/utilities.py +0 -0
  51. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/__init__.py +0 -0
  52. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/decorators.py +0 -0
  53. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/hooks.py +0 -0
  54. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/http_microservice.py +0 -0
  55. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/server.py +0 -0
  56. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/websocket/__init__.py +0 -0
  57. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/websocket/base_types.py +0 -0
  58. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/websocket/context.py +0 -0
  59. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/websocket/decorators.py +0 -0
  60. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/websocket/redis.py +0 -0
  61. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/websocket/types.py +0 -0
  62. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
  63. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/py.typed +0 -0
  64. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/rpc/__init__.py +0 -0
  65. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/rpc/http/__init__.py +0 -0
  66. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/rpc/http/backends/__init__.py +0 -0
  67. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/rpc/http/backends/httpx.py +0 -0
  68. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/rpc/http/backends/otel.py +0 -0
  69. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/rpc/http/decorators.py +0 -0
  70. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/rpc/http/httpx.py +0 -0
  71. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/scheduler/__init__.py +0 -0
  72. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/scheduler/decorators.py +0 -0
  73. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/scheduler/scheduler.py +0 -0
  74. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/tools/app_config/__init__.py +0 -0
  75. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/tools/app_config/decorators.py +0 -0
  76. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/tools/app_config/interceptor.py +0 -0
  77. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/tools/metadata.py +0 -0
  78. {jararaca-0.2.31 → jararaca-0.2.32}/src/jararaca/tools/typescript/interface_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jararaca
3
- Version: 0.2.31
3
+ Version: 0.2.32
4
4
  Summary: A simple and fast API framework for Python
5
5
  Home-page: https://github.com/LuscasLeo/jararaca
6
6
  Author: Lucas S
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "jararaca"
3
- version = "0.2.31"
3
+ version = "0.2.32"
4
4
  description = "A simple and fast API framework for Python"
5
5
  authors = ["Lucas S <me@luscasleo.dev>"]
6
6
  readme = "README.md"
@@ -1,3 +1,4 @@
1
+ import re
1
2
  from datetime import date, datetime
2
3
  from functools import reduce
3
4
  from typing import Literal, Tuple, TypeVar
@@ -137,25 +138,41 @@ class FilterRuleApplier:
137
138
  case _:
138
139
  raise ValueError(f"Unsupported bool operator: {filter.operator}")
139
140
  elif field_type is int:
141
+ __value = (
142
+ filter.value[0] if isinstance(filter.value, list) else filter.value
143
+ )
144
+ if not re.match(r"^-?\d+$", __value):
145
+ raise ValueError(
146
+ f"Unsupported value type for int field: {type(__value)}"
147
+ )
148
+ number_value = int(__value)
140
149
  match filter.operator:
141
150
  case "=":
142
- return query.filter(field == filter.value)
151
+ return query.filter(field == number_value)
143
152
  case "!=":
144
- return query.filter(field != filter.value)
153
+ return query.filter(field != number_value)
145
154
  case ">":
146
- return query.filter(field > filter.value)
155
+ return query.filter(field > number_value)
147
156
  case "<":
148
- return query.filter(field < filter.value)
157
+ return query.filter(field < number_value)
149
158
  case ">=":
150
- return query.filter(field >= filter.value)
159
+ return query.filter(field >= number_value)
151
160
  case "<=":
152
- return query.filter(field <= filter.value)
161
+ return query.filter(field <= number_value)
153
162
  case "isEmpty":
154
163
  return query.filter(field == None) # noqa
155
164
  case "isNotEmpty":
156
165
  return query.filter(field != None) # noqa
157
166
  case "isAnyOf":
158
- return query.filter(field.in_(filter.value))
167
+ if not isinstance(filter.value, list):
168
+ raise ValueError(
169
+ f"Unsupported value type for isAnyOf operator: {type(filter.value)}"
170
+ )
171
+
172
+ number_values = [
173
+ int(v) for v in filter.value if re.match(r"^-?\d+$", v)
174
+ ]
175
+ return query.filter(field.in_(number_values))
159
176
  case _:
160
177
  raise ValueError(f"Unsupported int operator: {filter.operator}")
161
178
 
File without changes
File without changes
File without changes
File without changes
File without changes