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.
@@ -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()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rb-commons
3
- Version: 0.4.8
3
+ Version: 0.4.10
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=2nezz9ZNtvJIeaDt00K8QNNWwPtx21GwjIXmopWJKXo,15920
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.8.dist-info/METADATA,sha256=8-1yWgE9JHuRtXZoEGfi6jdbpE1LOheL-iB7ciygrpw,6570
23
- rb_commons-0.4.8.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
24
- rb_commons-0.4.8.dist-info/top_level.txt,sha256=HPx_WAYo3_fbg1WCeGHsz3wPGio1ucbnrlm2lmqlJog,11
25
- rb_commons-0.4.8.dist-info/RECORD,,
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,,