rb-commons 0.4.8__py3-none-any.whl → 0.4.10__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 +13 -0
- {rb_commons-0.4.8.dist-info → rb_commons-0.4.10.dist-info}/METADATA +1 -1
- {rb_commons-0.4.8.dist-info → rb_commons-0.4.10.dist-info}/RECORD +5 -5
- {rb_commons-0.4.8.dist-info → rb_commons-0.4.10.dist-info}/WHEEL +0 -0
- {rb_commons-0.4.8.dist-info → rb_commons-0.4.10.dist-info}/top_level.txt +0 -0
rb_commons/orm/managers.py
CHANGED
@@ -33,6 +33,7 @@ class BaseManager(Generic[ModelType]):
|
|
33
33
|
self.data = None
|
34
34
|
self.filters = []
|
35
35
|
self._filtered = False
|
36
|
+
self._limit = None
|
36
37
|
|
37
38
|
async def _smart_commit(self, instance: Optional[ModelType] = None) -> Optional[ModelType]:
|
38
39
|
if not self.session.in_transaction():
|
@@ -176,6 +177,11 @@ class BaseManager(Generic[ModelType]):
|
|
176
177
|
async def all(self, load_all_relations: bool = False) -> List[ModelType]:
|
177
178
|
self._ensure_filtered()
|
178
179
|
stmt = select(self.model).filter(and_(*self.filters))
|
180
|
+
|
181
|
+
if self._limit:
|
182
|
+
stmt = stmt.limit(self._limit)
|
183
|
+
self._limit = None
|
184
|
+
|
179
185
|
return await self._execute_query_and_unique_data(stmt, load_all_relations)
|
180
186
|
|
181
187
|
async def paginate(self, limit: int = 10, offset: int = 0, load_all_relations: bool = False) -> List[ModelType]:
|
@@ -183,6 +189,13 @@ class BaseManager(Generic[ModelType]):
|
|
183
189
|
stmt = select(self.model).filter(and_(*self.filters)).limit(limit).offset(offset)
|
184
190
|
return await self._execute_query_and_unique_data(stmt, load_all_relations)
|
185
191
|
|
192
|
+
def limit(self, value: int) -> 'BaseManager[ModelType]':
|
193
|
+
"""
|
194
|
+
Set a limit on the number of results returned by queries like `all()` or `first()`.
|
195
|
+
"""
|
196
|
+
self._limit = value
|
197
|
+
return self
|
198
|
+
|
186
199
|
async def first(self, load_relations: Sequence[str] = None) -> Optional[ModelType]:
|
187
200
|
"""Return the first matching object, or None."""
|
188
201
|
self._ensure_filtered()
|
@@ -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=Q5nNAOPeTJvxlsG_OBrkBXiY2kfOhzrncXNap960Pw4,16286
|
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.10.dist-info/METADATA,sha256=PUkyY0LiPIUcknO3_-4i_7rL4Yci4v-GYaCLn5FiVh4,6571
|
23
|
+
rb_commons-0.4.10.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
24
|
+
rb_commons-0.4.10.dist-info/top_level.txt,sha256=HPx_WAYo3_fbg1WCeGHsz3wPGio1ucbnrlm2lmqlJog,11
|
25
|
+
rb_commons-0.4.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|