sharedkernel 2.2.2__tar.gz → 2.2.4__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.
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/PKG-INFO +5 -1
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/README.md +4 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/setup.py +1 -1
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/database/__init__.py +2 -1
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/database/mongo_generic_repository.py +33 -1
- sharedkernel-2.2.4/sharedkernel/database/pagination_response_dto.py +15 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel.egg-info/PKG-INFO +5 -1
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel.egg-info/SOURCES.txt +1 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/setup.cfg +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/common.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/data_format_converter.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/database/audit_model.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/database/mongo_generic_audit_repository.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/date_converter.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/diff_utils.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/enum/__init__.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/enum/error_code.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/enum/sort_order.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/exception/__init__.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/exception/exception.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/exception/exception_handlers.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/jwt_service.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/normalizer/__init__.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/normalizer/number_normalizer.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/normalizer/phone_number_normalizer.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/normalizer/string_normalizer.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/objects/__init__.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/objects/base_document.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/objects/json_string_model.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/objects/jwt_model.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/objects/result.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/objects/user_info.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/regex_masking.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/s3_uploader.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/string_extentions.py +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel.egg-info/dependency_links.txt +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel.egg-info/requires.txt +0 -0
- {sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sharedkernel
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.4
|
|
4
4
|
Summary: sharekernel is a shared package between all python projects
|
|
5
5
|
Author: Smilinno
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -29,6 +29,10 @@ Dynamic: summary
|
|
|
29
29
|
this is a shared kernel package
|
|
30
30
|
|
|
31
31
|
# Change Log
|
|
32
|
+
### Version 2.2.4
|
|
33
|
+
- make pagination response default values to None
|
|
34
|
+
### Version 2.2.3
|
|
35
|
+
- add paginate to mongo repository
|
|
32
36
|
### Version 2.2.2
|
|
33
37
|
- update on audit logging queries
|
|
34
38
|
- added is_audit to update_one parameters
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
this is a shared kernel package
|
|
3
3
|
|
|
4
4
|
# Change Log
|
|
5
|
+
### Version 2.2.4
|
|
6
|
+
- make pagination response default values to None
|
|
7
|
+
### Version 2.2.3
|
|
8
|
+
- add paginate to mongo repository
|
|
5
9
|
### Version 2.2.2
|
|
6
10
|
- update on audit logging queries
|
|
7
11
|
- added is_audit to update_one parameters
|
|
@@ -37,7 +37,7 @@ setup(
|
|
|
37
37
|
"deepdiff",
|
|
38
38
|
],
|
|
39
39
|
# *strongly* suggested for sharing
|
|
40
|
-
version="2.2.
|
|
40
|
+
version="2.2.4",
|
|
41
41
|
description="sharekernel is a shared package between all python projects",
|
|
42
42
|
long_description=long_description,
|
|
43
43
|
long_description_content_type="text/markdown",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
from .mongo_generic_repository import MongoGenericRepository
|
|
2
2
|
from .mongo_generic_audit_repository import MongoGenericAuditRepository
|
|
3
|
-
from .audit_model import AuditLog, AuditOperation
|
|
3
|
+
from .audit_model import AuditLog, AuditOperation
|
|
4
|
+
from .pagination_response_dto import PaginationResponseDto
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
from bson import ObjectId
|
|
2
2
|
from typing import Generic, TypeVar, List, Type
|
|
3
|
+
from math import ceil
|
|
4
|
+
from contextlib import suppress
|
|
5
|
+
|
|
3
6
|
from pydantic.v1 import BaseModel
|
|
4
7
|
from pymongo import MongoClient, ReturnDocument
|
|
5
|
-
from contextlib import suppress
|
|
6
8
|
|
|
7
9
|
from sharedkernel.objects.user_info import current_user_info
|
|
8
10
|
from sharedkernel.string_extentions import camel_to_snake
|
|
@@ -13,6 +15,7 @@ from sharedkernel.database.audit_model import (
|
|
|
13
15
|
AuditOperation
|
|
14
16
|
)
|
|
15
17
|
from sharedkernel.diff_utils import generate_clean_diff
|
|
18
|
+
from sharedkernel.database.pagination_response_dto import PaginationResponseDto
|
|
16
19
|
|
|
17
20
|
T = TypeVar("T", bound=BaseModel)
|
|
18
21
|
|
|
@@ -121,3 +124,32 @@ class MongoGenericRepository(Generic[T]):
|
|
|
121
124
|
query = {"is_deleted": False}
|
|
122
125
|
result = self.collection.find(query).skip(skip_count).limit(page_size)
|
|
123
126
|
return [self._map_to_model(doc) for doc in result]
|
|
127
|
+
|
|
128
|
+
def paginate(
|
|
129
|
+
self,
|
|
130
|
+
query: dict,
|
|
131
|
+
page_number: int,
|
|
132
|
+
page_size: int,
|
|
133
|
+
sort_field: str = "_id",
|
|
134
|
+
sort_order: int = -1,
|
|
135
|
+
) -> PaginationResponseDto:
|
|
136
|
+
|
|
137
|
+
skip_count = (page_number - 1) * page_size
|
|
138
|
+
total_items = self.collection.count_documents(query)
|
|
139
|
+
|
|
140
|
+
cursor = (
|
|
141
|
+
self.collection.find(query)
|
|
142
|
+
.sort(sort_field, sort_order)
|
|
143
|
+
.skip(skip_count)
|
|
144
|
+
.limit(page_size)
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
return PaginationResponseDto(
|
|
148
|
+
data=[self._map_to_model(doc) for doc in cursor],
|
|
149
|
+
total_items=total_items,
|
|
150
|
+
page_size=page_size,
|
|
151
|
+
current_page=page_number,
|
|
152
|
+
total_pages=ceil(total_items / page_size) if page_size else 1,
|
|
153
|
+
has_next=(page_number * page_size) < total_items,
|
|
154
|
+
has_prev=page_number > 1,
|
|
155
|
+
)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from typing import List, TypeVar, Generic
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel
|
|
4
|
+
|
|
5
|
+
T = TypeVar("T", bound=BaseModel)
|
|
6
|
+
|
|
7
|
+
class PaginationResponseDto(BaseModel, Generic[T]):
|
|
8
|
+
data: List[T] | None = []
|
|
9
|
+
total_items: int | None = 0
|
|
10
|
+
page_size: int | None = 0
|
|
11
|
+
current_page: int | None = 0
|
|
12
|
+
total_pages: int | None = 0
|
|
13
|
+
has_next: bool | None = False
|
|
14
|
+
has_prev: bool | None = False
|
|
15
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sharedkernel
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.4
|
|
4
4
|
Summary: sharekernel is a shared package between all python projects
|
|
5
5
|
Author: Smilinno
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -29,6 +29,10 @@ Dynamic: summary
|
|
|
29
29
|
this is a shared kernel package
|
|
30
30
|
|
|
31
31
|
# Change Log
|
|
32
|
+
### Version 2.2.4
|
|
33
|
+
- make pagination response default values to None
|
|
34
|
+
### Version 2.2.3
|
|
35
|
+
- add paginate to mongo repository
|
|
32
36
|
### Version 2.2.2
|
|
33
37
|
- update on audit logging queries
|
|
34
38
|
- added is_audit to update_one parameters
|
|
@@ -17,6 +17,7 @@ sharedkernel/database/__init__.py
|
|
|
17
17
|
sharedkernel/database/audit_model.py
|
|
18
18
|
sharedkernel/database/mongo_generic_audit_repository.py
|
|
19
19
|
sharedkernel/database/mongo_generic_repository.py
|
|
20
|
+
sharedkernel/database/pagination_response_dto.py
|
|
20
21
|
sharedkernel/enum/__init__.py
|
|
21
22
|
sharedkernel/enum/error_code.py
|
|
22
23
|
sharedkernel/enum/sort_order.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/database/mongo_generic_audit_repository.py
RENAMED
|
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
|
{sharedkernel-2.2.2 → sharedkernel-2.2.4}/sharedkernel/normalizer/phone_number_normalizer.py
RENAMED
|
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
|