rb-commons 0.4.4__py3-none-any.whl → 0.4.6__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.
@@ -166,18 +166,23 @@ class BaseManager(Generic[ModelType]):
166
166
  if not self._filtered:
167
167
  raise RuntimeError("You must call `filter()` before using this method.")
168
168
 
169
- async def all(self, load_all_relations: bool = False) -> List[ModelType]:
170
- self._ensure_filtered()
171
-
172
- stmt = select(self.model).filter(and_(*self.filters))
169
+ async def _execute_query_and_unique_data(self, stmt, load_all_relations: bool) -> List[ModelType]:
173
170
  stmt = self._apply_eager_loading(stmt, load_all_relations)
174
-
175
171
  result = await self.session.execute(stmt)
176
172
  rows = result.scalars().all()
177
-
178
173
  unique_by_pk = {obj.id: obj for obj in rows}
179
174
  return list(unique_by_pk.values())
180
175
 
176
+ async def all(self, load_all_relations: bool = False) -> List[ModelType]:
177
+ self._ensure_filtered()
178
+ stmt = select(self.model).filter(and_(*self.filters))
179
+ return await self._execute_query_and_unique_data(stmt, load_all_relations)
180
+
181
+ async def paginate(self, limit: int = 10, offset: int = 0, load_all_relations: bool = False) -> List[ModelType]:
182
+ self._ensure_filtered()
183
+ stmt = select(self.model).filter(and_(*self.filters)).limit(limit).offset(offset)
184
+ return await self._execute_query_and_unique_data(stmt, load_all_relations)
185
+
181
186
  async def first(self, load_relations: Sequence[str] = None) -> Optional[ModelType]:
182
187
  """Return the first matching object, or None."""
183
188
  self._ensure_filtered()
@@ -225,7 +230,7 @@ class BaseManager(Generic[ModelType]):
225
230
  return await self._smart_commit(obj)
226
231
 
227
232
  @with_transaction_error_handling
228
- async def delete(self, instance: ModelType) -> bool:
233
+ async def delete(self, instance: ModelType = None) -> bool:
229
234
  """
230
235
  Delete object(s) with flexible filtering options
231
236
  - If `instance` is provided, delete that single instance.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rb-commons
3
- Version: 0.4.4
3
+ Version: 0.4.6
4
4
  Summary: Commons of project and simplified orm based on sqlalchemy.
5
5
  Home-page: https://github.com/RoboSell-organization/rb-commons
6
6
  Author: Abdulvoris
@@ -11,7 +11,7 @@ rb_commons/http/consul.py,sha256=Ioq72VD1jGwoC96set7n2SgxN40olzI-myA2lwKkYi4,186
11
11
  rb_commons/http/exceptions.py,sha256=EGRMr1cRgiJ9Q2tkfANbf0c6-zzXf1CD6J3cmCaT_FA,1885
12
12
  rb_commons/orm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  rb_commons/orm/exceptions.py,sha256=1aMctiEwrPjyehoXVX1l6ML5ZOhmDkmBISzlTD5ey1Y,509
14
- rb_commons/orm/managers.py,sha256=Aengp0w2WsA1xvV1DoUDRDa4r7oaThpE11QpYWtTcfs,14100
14
+ rb_commons/orm/managers.py,sha256=Zgnwy-us4DD3baF6RlOWo91JNcb2vjpfGUZFtDwt5HE,14619
15
15
  rb_commons/orm/services.py,sha256=71eRcJ4TxZvzNz-hLXo12X4U7PGK54ZfbLAb27AjZi8,1589
16
16
  rb_commons/permissions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  rb_commons/permissions/role_permissions.py,sha256=HL50s5RHW1nk2U3-YTESg0EDGkJDu1vN4QchcfK-L5g,988
@@ -19,7 +19,7 @@ rb_commons/schemes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
19
19
  rb_commons/schemes/jwt.py,sha256=F66JJDhholuOPPzlKeoC6f1TL4gXg4oRUrV5yheNpyo,1675
20
20
  rb_commons/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  rb_commons/utils/media.py,sha256=KNY_9SdRa3Rp7d3B1tZaXkhmzVa65RcS62BYwZP1bVM,332
22
- rb_commons-0.4.4.dist-info/METADATA,sha256=ZA7wI6H21f_Sb41G_UD7_SyyQbT4EAeBbSzEArfycYo,6570
23
- rb_commons-0.4.4.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
24
- rb_commons-0.4.4.dist-info/top_level.txt,sha256=HPx_WAYo3_fbg1WCeGHsz3wPGio1ucbnrlm2lmqlJog,11
25
- rb_commons-0.4.4.dist-info/RECORD,,
22
+ rb_commons-0.4.6.dist-info/METADATA,sha256=0e-bAen62Rt3yCg7KMClMeeNEu6UeuO05AjbvW5IPkk,6570
23
+ rb_commons-0.4.6.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
24
+ rb_commons-0.4.6.dist-info/top_level.txt,sha256=HPx_WAYo3_fbg1WCeGHsz3wPGio1ucbnrlm2lmqlJog,11
25
+ rb_commons-0.4.6.dist-info/RECORD,,