rb-commons 0.4.7__py3-none-any.whl → 0.4.9__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,10 @@ 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
+
179
184
  return await self._execute_query_and_unique_data(stmt, load_all_relations)
180
185
 
181
186
  async def paginate(self, limit: int = 10, offset: int = 0, load_all_relations: bool = False) -> List[ModelType]:
@@ -387,11 +392,10 @@ class BaseManager(Generic[ModelType]):
387
392
  if not self.session.in_transaction():
388
393
  await self.session.commit()
389
394
 
390
- @with_transaction_error_handling
391
395
  def has_relation(self, relation_name: str) -> 'BaseManager[ModelType]':
392
396
  """
393
397
  Check if a relationship exists between models using an EXISTS subquery.
394
-
398
+
395
399
  :param relation_name Name of the relationship to check. Must be a valid relationship
396
400
  defined in the model.
397
401
 
@@ -399,7 +403,7 @@ class BaseManager(Generic[ModelType]):
399
403
 
400
404
  :raise DatabaseException: If there's an error constructing the subquery.
401
405
  :raise InternalException: If there's an unexpected error in relationship handling.
402
-
406
+
403
407
  Notes:
404
408
  - The relationship must be properly defined in the SQLAlchemy model
405
409
  - Uses a non-correlated EXISTS subquery for better performance
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rb-commons
3
- Version: 0.4.7
3
+ Version: 0.4.9
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=u9DUyttHcLOf1DmRPmGWZD2n8NgZtYPNGqed-7wqxkY,15980
14
+ rb_commons/orm/managers.py,sha256=Z20gyT7JASAvWG7eXlFP9wvG_KroqFnPfcQabH9NVag,16021
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.7.dist-info/METADATA,sha256=TSSXMDvtz_0selZFbRjV_HLDT4VDh9isAVlkc0M76qQ,6570
23
- rb_commons-0.4.7.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
24
- rb_commons-0.4.7.dist-info/top_level.txt,sha256=HPx_WAYo3_fbg1WCeGHsz3wPGio1ucbnrlm2lmqlJog,11
25
- rb_commons-0.4.7.dist-info/RECORD,,
22
+ rb_commons-0.4.9.dist-info/METADATA,sha256=xMkxBD2ktROi4NXDnhUwfr89w5zxn4wBiM6SaBV1spM,6570
23
+ rb_commons-0.4.9.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
24
+ rb_commons-0.4.9.dist-info/top_level.txt,sha256=HPx_WAYo3_fbg1WCeGHsz3wPGio1ucbnrlm2lmqlJog,11
25
+ rb_commons-0.4.9.dist-info/RECORD,,