jararaca 0.2.32__tar.gz → 0.2.34__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.32 → jararaca-0.2.34}/PKG-INFO +1 -1
  2. {jararaca-0.2.32 → jararaca-0.2.34}/pyproject.toml +1 -1
  3. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/persistence/sort_filter.py +26 -17
  4. {jararaca-0.2.32 → jararaca-0.2.34}/LICENSE +0 -0
  5. {jararaca-0.2.32 → jararaca-0.2.34}/README.md +0 -0
  6. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/Message Bus/Decorators.md +0 -0
  7. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/Message Bus/Interceptors.md +0 -0
  8. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/Observability/Decorators.md +0 -0
  9. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/Observability/Interceptors.md +0 -0
  10. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/Presentation/Decorators.md +0 -0
  11. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/RPC/RestClients/Decorators.md +0 -0
  12. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/RPC/RestClients/Middlewared.md +0 -0
  13. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/Schedule/Decorators.md +0 -0
  14. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/Websocket/Decorators.md +0 -0
  15. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Architecture/Websocket/Interceptors.md +0 -0
  16. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Concept/Adapters.md +0 -0
  17. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Concept/Hexagonal Architecture.md +0 -0
  18. {jararaca-0.2.32 → jararaca-0.2.34}/docs/Concept/Ports.md +0 -0
  19. {jararaca-0.2.32 → jararaca-0.2.34}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
  20. {jararaca-0.2.32 → jararaca-0.2.34}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
  21. {jararaca-0.2.32 → jararaca-0.2.34}/docs/assets/tracing_example.png +0 -0
  22. {jararaca-0.2.32 → jararaca-0.2.34}/docs/index.md +0 -0
  23. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/__init__.py +0 -0
  24. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/__main__.py +0 -0
  25. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/cli.py +0 -0
  26. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/common/__init__.py +0 -0
  27. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/core/__init__.py +0 -0
  28. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/core/providers.py +0 -0
  29. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/core/uow.py +0 -0
  30. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/di.py +0 -0
  31. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/files/entity.py.mako +0 -0
  32. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/lifecycle.py +0 -0
  33. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/messagebus/__init__.py +0 -0
  34. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/messagebus/decorators.py +0 -0
  35. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
  36. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
  37. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/messagebus/publisher.py +0 -0
  38. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/messagebus/types.py +0 -0
  39. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/messagebus/worker.py +0 -0
  40. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/microservice.py +0 -0
  41. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/observability/decorators.py +0 -0
  42. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/observability/interceptor.py +0 -0
  43. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/observability/providers/__init__.py +0 -0
  44. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/observability/providers/otel.py +0 -0
  45. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/persistence/base.py +0 -0
  46. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/persistence/exports.py +0 -0
  47. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/persistence/interceptors/__init__.py +0 -0
  48. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
  49. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/persistence/session.py +0 -0
  50. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/persistence/utilities.py +0 -0
  51. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/__init__.py +0 -0
  52. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/decorators.py +0 -0
  53. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/hooks.py +0 -0
  54. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/http_microservice.py +0 -0
  55. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/server.py +0 -0
  56. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/websocket/__init__.py +0 -0
  57. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/websocket/base_types.py +0 -0
  58. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/websocket/context.py +0 -0
  59. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/websocket/decorators.py +0 -0
  60. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/websocket/redis.py +0 -0
  61. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/websocket/types.py +0 -0
  62. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
  63. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/py.typed +0 -0
  64. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/rpc/__init__.py +0 -0
  65. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/rpc/http/__init__.py +0 -0
  66. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/rpc/http/backends/__init__.py +0 -0
  67. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/rpc/http/backends/httpx.py +0 -0
  68. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/rpc/http/backends/otel.py +0 -0
  69. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/rpc/http/decorators.py +0 -0
  70. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/rpc/http/httpx.py +0 -0
  71. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/scheduler/__init__.py +0 -0
  72. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/scheduler/decorators.py +0 -0
  73. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/scheduler/scheduler.py +0 -0
  74. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/tools/app_config/__init__.py +0 -0
  75. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/tools/app_config/decorators.py +0 -0
  76. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/tools/app_config/interceptor.py +0 -0
  77. {jararaca-0.2.32 → jararaca-0.2.34}/src/jararaca/tools/metadata.py +0 -0
  78. {jararaca-0.2.32 → jararaca-0.2.34}/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.32
3
+ Version: 0.2.34
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.32"
3
+ version = "0.2.34"
4
4
  description = "A simple and fast API framework for Python"
5
5
  authors = ["Lucas S <me@luscasleo.dev>"]
6
6
  readme = "README.md"
@@ -69,6 +69,8 @@ class FilterRuleApplier:
69
69
  if field is None:
70
70
  raise ValueError(f"Unsupported field: {filter.field}")
71
71
  field_type = field.property.columns[0].type.python_type
72
+ if not filter.value: # Is empty string or empty list
73
+ return query
72
74
 
73
75
  if field_type is str:
74
76
  match filter.operator:
@@ -138,14 +140,29 @@ class FilterRuleApplier:
138
140
  case _:
139
141
  raise ValueError(f"Unsupported bool operator: {filter.operator}")
140
142
  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):
143
+
144
+ if isinstance(filter.value, list):
145
+ match filter.operator:
146
+ case "isAnyOf":
147
+ if not len(filter.value):
148
+ return query
149
+
150
+ number_values = [
151
+ int(v) for v in filter.value if re.match(r"^-?\d+$", v)
152
+ ]
153
+ return query.filter(field.in_(number_values))
154
+ case _:
155
+ raise ValueError(
156
+ f"Unsupported int operator: {filter.operator} for list"
157
+ )
158
+
159
+ if not re.match(r"^-?\d+$", filter.value):
145
160
  raise ValueError(
146
- f"Unsupported value type for int field: {type(__value)}"
161
+ f"Invalid integer value: {filter.value} for field {field}"
147
162
  )
148
- number_value = int(__value)
163
+
164
+ number_value = int(filter.value)
165
+
149
166
  match filter.operator:
150
167
  case "=":
151
168
  return query.filter(field == number_value)
@@ -163,18 +180,10 @@ class FilterRuleApplier:
163
180
  return query.filter(field == None) # noqa
164
181
  case "isNotEmpty":
165
182
  return query.filter(field != None) # noqa
166
- case "isAnyOf":
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))
176
183
  case _:
177
- raise ValueError(f"Unsupported int operator: {filter.operator}")
184
+ raise ValueError(
185
+ f"Unsupported int operator: {filter.operator} for single value"
186
+ )
178
187
 
179
188
  raise ValueError(f"Unsupported field type: {field_type}")
180
189
 
File without changes
File without changes
File without changes
File without changes
File without changes