jararaca 0.2.22__tar.gz → 0.2.24__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 (77) hide show
  1. {jararaca-0.2.22 → jararaca-0.2.24}/PKG-INFO +1 -1
  2. {jararaca-0.2.22 → jararaca-0.2.24}/pyproject.toml +1 -1
  3. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/persistence/base.py +4 -0
  4. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/persistence/sort_filter.py +7 -4
  5. {jararaca-0.2.22 → jararaca-0.2.24}/LICENSE +0 -0
  6. {jararaca-0.2.22 → jararaca-0.2.24}/README.md +0 -0
  7. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/Message Bus/Decorators.md +0 -0
  8. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/Message Bus/Interceptors.md +0 -0
  9. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/Observability/Decorators.md +0 -0
  10. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/Observability/Interceptors.md +0 -0
  11. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/Presentation/Decorators.md +0 -0
  12. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/RPC/RestClients/Decorators.md +0 -0
  13. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/RPC/RestClients/Middlewared.md +0 -0
  14. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/Schedule/Decorators.md +0 -0
  15. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/Websocket/Decorators.md +0 -0
  16. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Architecture/Websocket/Interceptors.md +0 -0
  17. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Concept/Adapters.md +0 -0
  18. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Concept/Hexagonal Architecture.md +0 -0
  19. {jararaca-0.2.22 → jararaca-0.2.24}/docs/Concept/Ports.md +0 -0
  20. {jararaca-0.2.22 → jararaca-0.2.24}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg +0 -0
  21. {jararaca-0.2.22 → jararaca-0.2.24}/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.webp +0 -0
  22. {jararaca-0.2.22 → jararaca-0.2.24}/docs/assets/tracing_example.png +0 -0
  23. {jararaca-0.2.22 → jararaca-0.2.24}/docs/index.md +0 -0
  24. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/__init__.py +0 -0
  25. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/__main__.py +0 -0
  26. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/cli.py +0 -0
  27. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/common/__init__.py +0 -0
  28. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/core/__init__.py +0 -0
  29. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/core/providers.py +0 -0
  30. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/core/uow.py +0 -0
  31. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/di.py +0 -0
  32. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/files/entity.py.mako +0 -0
  33. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/lifecycle.py +0 -0
  34. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/messagebus/__init__.py +0 -0
  35. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/messagebus/decorators.py +0 -0
  36. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/messagebus/interceptors/__init__.py +0 -0
  37. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/messagebus/interceptors/publisher_interceptor.py +0 -0
  38. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/messagebus/publisher.py +0 -0
  39. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/messagebus/types.py +0 -0
  40. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/messagebus/worker.py +0 -0
  41. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/microservice.py +0 -0
  42. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/observability/decorators.py +0 -0
  43. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/observability/interceptor.py +0 -0
  44. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/observability/providers/__init__.py +0 -0
  45. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/observability/providers/otel.py +0 -0
  46. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/persistence/exports.py +0 -0
  47. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/persistence/interceptors/__init__.py +0 -0
  48. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/persistence/interceptors/aiosqa_interceptor.py +0 -0
  49. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/persistence/session.py +0 -0
  50. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/__init__.py +0 -0
  51. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/decorators.py +0 -0
  52. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/hooks.py +0 -0
  53. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/http_microservice.py +0 -0
  54. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/server.py +0 -0
  55. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/websocket/__init__.py +0 -0
  56. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/websocket/base_types.py +0 -0
  57. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/websocket/context.py +0 -0
  58. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/websocket/decorators.py +0 -0
  59. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/websocket/redis.py +0 -0
  60. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/websocket/types.py +0 -0
  61. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/presentation/websocket/websocket_interceptor.py +0 -0
  62. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/py.typed +0 -0
  63. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/rpc/__init__.py +0 -0
  64. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/rpc/http/__init__.py +0 -0
  65. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/rpc/http/backends/__init__.py +0 -0
  66. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/rpc/http/backends/httpx.py +0 -0
  67. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/rpc/http/backends/otel.py +0 -0
  68. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/rpc/http/decorators.py +0 -0
  69. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/rpc/http/httpx.py +0 -0
  70. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/scheduler/__init__.py +0 -0
  71. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/scheduler/decorators.py +0 -0
  72. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/scheduler/scheduler.py +0 -0
  73. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/tools/app_config/__init__.py +0 -0
  74. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/tools/app_config/decorators.py +0 -0
  75. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/tools/app_config/interceptor.py +0 -0
  76. {jararaca-0.2.22 → jararaca-0.2.24}/src/jararaca/tools/metadata.py +0 -0
  77. {jararaca-0.2.22 → jararaca-0.2.24}/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.22
3
+ Version: 0.2.24
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.22"
3
+ version = "0.2.24"
4
4
  description = "A simple and fast API framework for Python"
5
5
  authors = ["Lucas S <me@luscasleo.dev>"]
6
6
  readme = "README.md"
@@ -23,6 +23,8 @@ from sqlalchemy import DateTime, Result, Select, delete, func, select, update
23
23
  from sqlalchemy.ext.asyncio import AsyncSession
24
24
  from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
25
25
 
26
+ from jararaca.persistence.sort_filter import FilterModel, SortModel
27
+
26
28
  IDENTIFIABLE_SCHEMA_T = TypeVar("IDENTIFIABLE_SCHEMA_T")
27
29
  logger = logging.getLogger(__name__)
28
30
 
@@ -205,6 +207,8 @@ class CRUDOperations(Generic[IDENTIFIABLE_T]):
205
207
  class PaginatedFilter(BaseModel):
206
208
  page: Annotated[int, Field(gt=-1)] = 1
207
209
  page_size: int = 10
210
+ sort_models: list[SortModel] = []
211
+ filter_model: list[FilterModel] = []
208
212
 
209
213
 
210
214
  class QueryInjector(Protocol):
@@ -94,6 +94,12 @@ class SortFilterRunner:
94
94
  case _:
95
95
  raise ValueError(f"Unsupported string operator: {filter.operator}")
96
96
  elif field_type in [date, datetime]:
97
+ match filter.operator:
98
+ case "isEmpty":
99
+ return query.filter(field == None) # noqa
100
+ case "isNotEmpty":
101
+ return query.filter(field != None) # noqa
102
+
97
103
  __value = (
98
104
  filter.value[0] if isinstance(filter.value, list) else filter.value
99
105
  )
@@ -114,10 +120,7 @@ class SortFilterRunner:
114
120
  return query.filter(field < value)
115
121
  case "onOrBefore":
116
122
  return query.filter(field <= value)
117
- case "isEmpty":
118
- return query.filter(field == None) # noqa
119
- case "isNotEmpty":
120
- return query.filter(field != None) # noqa
123
+
121
124
  case _:
122
125
  raise ValueError(
123
126
  f"Unsupported data/datetime operator: {filter.operator}"
File without changes
File without changes
File without changes
File without changes
File without changes