jararaca 0.2.22__py3-none-any.whl → 0.2.24__py3-none-any.whl

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.

@@ -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}"
@@ -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
  LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
2
2
  README.md,sha256=mte30I-ZEJJp-Oax-OganNgl6G9GaCZPL6JVFAvZGz4,7034
3
- pyproject.toml,sha256=D5zXLTKIzLtXRt3Pi1it1wvVnp_hiJ32ELtRpqX8hgM,1837
3
+ pyproject.toml,sha256=V0xrNYqY4Io-o3Ow1QZda7yc-8GG_qmCAEtrGcJEs8A,1837
4
4
  jararaca/__init__.py,sha256=fBLWY_hpImDrzD-81avNasZxAbZ8IImAkS3kl83_3Kc,13757
5
5
  jararaca/__main__.py,sha256=-O3vsB5lHdqNFjUtoELDF81IYFtR-DSiiFMzRaiSsv4,67
6
6
  jararaca/cli.py,sha256=fh7lp7rf5xbV5VaoSYWWehktel6BPcOXMjW7cw4wKms,5693
@@ -23,12 +23,12 @@ jararaca/observability/decorators.py,sha256=XffBinFXdiNkY6eo8_1nkr_GapM0RUGBg0ai
23
23
  jararaca/observability/interceptor.py,sha256=GHkuGKFWftN7MDjvYeGFGEPnuJETNhtxRK6yuPrCrpU,1462
24
24
  jararaca/observability/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  jararaca/observability/providers/otel.py,sha256=LgfoITdoQTCxKebfLcEfwMiG992wlWY_0AUTd2fo8hY,6065
26
- jararaca/persistence/base.py,sha256=dfZWM-ztN-JEzw8-or7g13XyJ4LwmfbF2d53YFT4dyg,12446
26
+ jararaca/persistence/base.py,sha256=rj_BeUiF_AiiLg0dMJcPzcxraukiL6tw3NNzymsg7wI,12594
27
27
  jararaca/persistence/exports.py,sha256=Ghx4yoFaB4QVTb9WxrFYgmcSATXMNvrOvT8ybPNKXCA,62
28
28
  jararaca/persistence/interceptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  jararaca/persistence/interceptors/aiosqa_interceptor.py,sha256=H6ZjOdosYGCZUzKjugiXQwJkAbnsL4HnkZLOEQhULEc,1986
30
30
  jararaca/persistence/session.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- jararaca/persistence/sort_filter.py,sha256=gG9tXJTNwQE5kqk5zP9kWe-cxCz3EypJmy5LC2v8Mlc,6769
31
+ jararaca/persistence/sort_filter.py,sha256=bUxUkFZ_W1Vuc0TyDzhA41P7Zjb-USWzcTD9kAimRq4,6806
32
32
  jararaca/presentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  jararaca/presentation/decorators.py,sha256=eL2YCgMSr19m4YCri5PQU46NRxf0QxsqDnz6MqKu0YQ,8389
34
34
  jararaca/presentation/hooks.py,sha256=WBbU5DG3-MAm2Ro2YraQyYG_HENfizYfyShL2ktHi6k,1980
@@ -57,8 +57,8 @@ jararaca/tools/app_config/decorators.py,sha256=-ckkMZ1dswOmECdo1rFrZ15UAku--txaN
57
57
  jararaca/tools/app_config/interceptor.py,sha256=nfFZiS80hrbnL7-XEYrwmp2rwaVYBqxvqu3Y-6o_ov4,2575
58
58
  jararaca/tools/metadata.py,sha256=7nlCDYgItNybentPSSCc2MLqN7IpBd0VyQzfjfQycVI,1402
59
59
  jararaca/tools/typescript/interface_parser.py,sha256=rvTlSGDffyxSwqoHDLxdXApwXDw0v8Tq6nOWPO033nQ,28382
60
- jararaca-0.2.22.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
61
- jararaca-0.2.22.dist-info/METADATA,sha256=kvq6B6CNCf70VC7LQtrrzmP-fI5RUvXY5TZpBT1I-DI,8552
62
- jararaca-0.2.22.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
63
- jararaca-0.2.22.dist-info/entry_points.txt,sha256=WIh3aIvz8LwUJZIDfs4EeH3VoFyCGEk7cWJurW38q0I,45
64
- jararaca-0.2.22.dist-info/RECORD,,
60
+ jararaca-0.2.24.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
61
+ jararaca-0.2.24.dist-info/METADATA,sha256=gywpebDMPl2EqEG4YJIA2LqBvFDxOZ3l-4Md1Zyxb_k,8552
62
+ jararaca-0.2.24.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
63
+ jararaca-0.2.24.dist-info/entry_points.txt,sha256=WIh3aIvz8LwUJZIDfs4EeH3VoFyCGEk7cWJurW38q0I,45
64
+ jararaca-0.2.24.dist-info/RECORD,,
pyproject.toml CHANGED
@@ -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"