rb-commons 0.5.0__tar.gz → 0.5.1__tar.gz
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-0.5.0 → rb_commons-0.5.1}/PKG-INFO +1 -1
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/orm/managers.py +30 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons.egg-info/PKG-INFO +1 -1
- {rb_commons-0.5.0 → rb_commons-0.5.1}/setup.py +1 -1
- {rb_commons-0.5.0 → rb_commons-0.5.1}/README.md +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/__init__.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/broker/__init__.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/broker/consumer.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/configs/__init__.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/configs/config.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/configs/injections.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/configs/rabbitmq.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/http/__init__.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/http/base_api.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/http/consul.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/http/exceptions.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/orm/__init__.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/orm/exceptions.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/orm/services.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/permissions/__init__.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/permissions/role_permissions.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/schemes/__init__.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/schemes/jwt.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/schemes/pagination.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/utils/__init__.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons/utils/media.py +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons.egg-info/SOURCES.txt +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons.egg-info/dependency_links.txt +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons.egg-info/requires.txt +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/rb_commons.egg-info/top_level.txt +0 -0
- {rb_commons-0.5.0 → rb_commons-0.5.1}/setup.cfg +0 -0
@@ -267,6 +267,36 @@ class BaseManager(Generic[ModelType]):
|
|
267
267
|
await self.session.flush()
|
268
268
|
return await self._smart_commit(instance)
|
269
269
|
|
270
|
+
@with_transaction_error_handling
|
271
|
+
async def lazy_save(self, instance: ModelType, load_relations: Sequence[str] = None) -> Optional[ModelType]:
|
272
|
+
self.session.add(instance)
|
273
|
+
await self.session.flush()
|
274
|
+
await self._smart_commit(instance)
|
275
|
+
|
276
|
+
if load_relations is None:
|
277
|
+
mapper = inspect(self.model)
|
278
|
+
load_relations = [rel.key for rel in mapper.relationships]
|
279
|
+
|
280
|
+
if not load_relations:
|
281
|
+
return instance
|
282
|
+
|
283
|
+
stmt = select(self.model).filter_by(id=instance.id)
|
284
|
+
|
285
|
+
for rel in load_relations:
|
286
|
+
stmt = stmt.options(selectinload(getattr(self.model, rel)))
|
287
|
+
|
288
|
+
result = await self.session.execute(stmt)
|
289
|
+
loaded_instance = result.scalar_one_or_none()
|
290
|
+
|
291
|
+
if loaded_instance is None:
|
292
|
+
raise NotFoundException(
|
293
|
+
message="Object saved but could not be retrieved with relationships",
|
294
|
+
status=404,
|
295
|
+
code="0001",
|
296
|
+
)
|
297
|
+
|
298
|
+
return loaded_instance
|
299
|
+
|
270
300
|
@with_transaction_error_handling
|
271
301
|
async def update(self, instance: ModelType, **fields):
|
272
302
|
if not fields:
|
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
|
|
5
5
|
|
6
6
|
setup(
|
7
7
|
name="rb-commons",
|
8
|
-
version="0.5.
|
8
|
+
version="0.5.1",
|
9
9
|
author="Abdulvoris",
|
10
10
|
author_email="erkinovabdulvoris101@gmail.com",
|
11
11
|
description="Commons of project and simplified orm based on sqlalchemy.",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|