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.
- rb_commons/orm/managers.py +12 -7
- {rb_commons-0.4.4.dist-info → rb_commons-0.4.6.dist-info}/METADATA +1 -1
- {rb_commons-0.4.4.dist-info → rb_commons-0.4.6.dist-info}/RECORD +5 -5
- {rb_commons-0.4.4.dist-info → rb_commons-0.4.6.dist-info}/WHEEL +0 -0
- {rb_commons-0.4.4.dist-info → rb_commons-0.4.6.dist-info}/top_level.txt +0 -0
rb_commons/orm/managers.py
CHANGED
@@ -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
|
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.
|
@@ -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=
|
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.
|
23
|
-
rb_commons-0.4.
|
24
|
-
rb_commons-0.4.
|
25
|
-
rb_commons-0.4.
|
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,,
|
File without changes
|
File without changes
|