sharedkernel 1.6.4__tar.gz → 1.6.6__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-1.6.4 → sharedkernel-1.6.6}/PKG-INFO +5 -1
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/README.md +4 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/setup.py +1 -1
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/jwt_service.py +5 -2
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/normalizer/phone_number_normalizer.py +22 -17
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/PKG-INFO +5 -1
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/setup.cfg +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/common.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/__init__.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/mongo_generic_repository.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/__init__.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/chroma_startegy.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/milvus_strategy.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/vector_database_repository.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/vector_database_strategy.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/date_converter.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/enum/__init__.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/enum/error_code.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/enum/vector_database_type.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/exception/__init__.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/exception/exception.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/exception/exception_handlers.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/normalizer/__init__.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/objects/__init__.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/objects/base_document.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/objects/jwt_model.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/objects/result.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/regex_masking.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/string_extentions.py +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/SOURCES.txt +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/dependency_links.txt +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/requires.txt +0 -0
- {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sharedkernel
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.6
|
|
4
4
|
Summary: sharekernel is a shared package between all python projects
|
|
5
5
|
Author: Smilinno
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -20,6 +20,10 @@ Requires-Dist: persiantools
|
|
|
20
20
|
this a shared kernel package
|
|
21
21
|
|
|
22
22
|
# Change Log
|
|
23
|
+
### Version 1.6.6
|
|
24
|
+
- Fix bug of phonenumber normalizer
|
|
25
|
+
### Version 1.6.5
|
|
26
|
+
- Update on the JWTBearer (Save decoded token in request state)
|
|
23
27
|
### Version 1.6.4
|
|
24
28
|
- Update normlizer package
|
|
25
29
|
### Version 1.6.3
|
|
@@ -34,7 +34,7 @@ setup(
|
|
|
34
34
|
"persiantools"
|
|
35
35
|
],
|
|
36
36
|
# *strongly* suggested for sharing
|
|
37
|
-
version="1.6.
|
|
37
|
+
version="1.6.6",
|
|
38
38
|
description="sharekernel is a shared package between all python projects",
|
|
39
39
|
long_description=long_description,
|
|
40
40
|
long_description_content_type="text/markdown",
|
|
@@ -19,13 +19,14 @@ class JWTBearer(HTTPBearer):
|
|
|
19
19
|
JWTBearer, self
|
|
20
20
|
).__call__(request)
|
|
21
21
|
|
|
22
|
-
self.verify(credentials.credentials)
|
|
22
|
+
decoded_token = self.verify(credentials.credentials)
|
|
23
|
+
request.state.decoded_token = decoded_token
|
|
23
24
|
|
|
24
25
|
except:
|
|
25
26
|
raise UnAuthorizedException()
|
|
26
27
|
|
|
27
28
|
|
|
28
|
-
def verify(self, token: str) ->
|
|
29
|
+
def verify(self, token: str) -> dict:
|
|
29
30
|
decoded_token = jwt.decode(
|
|
30
31
|
jwt= token.replace("Bearer","").strip(),
|
|
31
32
|
key= self.jwt_config.secret_key,
|
|
@@ -36,3 +37,5 @@ class JWTBearer(HTTPBearer):
|
|
|
36
37
|
|
|
37
38
|
if decoded_token["exp"] < time.time():
|
|
38
39
|
raise UnAuthorizedException()
|
|
40
|
+
|
|
41
|
+
return decoded_token
|
{sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/normalizer/phone_number_normalizer.py
RENAMED
|
@@ -154,15 +154,16 @@ class PhoneNumberNormalizer:
|
|
|
154
154
|
str_num = str(num)
|
|
155
155
|
next_numbers = set()
|
|
156
156
|
for i in range(len(str_num) - 1):
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
157
|
+
if i <= digit_mapping.SEVEN_DIGIT_PREFIX_LENGTH :
|
|
158
|
+
current_digit = int(str_num[i])
|
|
159
|
+
next_digit = int(str_num[i + 1])
|
|
160
|
+
new_num = (
|
|
161
|
+
str_num[:i]
|
|
162
|
+
+ str(int(current_digit) * str(next_digit))
|
|
163
|
+
+ str_num[i + 2 :]
|
|
164
|
+
)
|
|
165
|
+
if digit_mapping.MIN_NUMBER_FOR_GENERATE <= len(new_num) <= digit_mapping.SEVEN_DIGIT_PREFIX_LENGTH:
|
|
166
|
+
next_numbers.add(str(new_num))
|
|
166
167
|
return next_numbers
|
|
167
168
|
|
|
168
169
|
def __find_seven_chain_numbers(self, start_num):
|
|
@@ -204,7 +205,6 @@ class PhoneNumberNormalizer:
|
|
|
204
205
|
|
|
205
206
|
def __generate_valid_numbers(self, start_num):
|
|
206
207
|
numbers_list = self.__find_seven_chain_numbers(start_num)
|
|
207
|
-
|
|
208
208
|
# If the number list length matches the valid criteria, return the first number
|
|
209
209
|
if len(numbers_list) == digit_mapping.GENERATIVE_VALID_NUMBER_COUNT:
|
|
210
210
|
return numbers_list[0] if numbers_list else start_num
|
|
@@ -230,7 +230,6 @@ class PhoneNumberNormalizer:
|
|
|
230
230
|
filtered_numbers = self.__apply_filter(
|
|
231
231
|
filtered_numbers, -4, lambda num: str(num)[-4:] == start_num_str[-4:]
|
|
232
232
|
)
|
|
233
|
-
|
|
234
233
|
# Return the first valid number or fallback
|
|
235
234
|
return (
|
|
236
235
|
filtered_numbers[0]
|
|
@@ -270,12 +269,10 @@ class PhoneNumberNormalizer:
|
|
|
270
269
|
grouped = [
|
|
271
270
|
(char, len(list(group))) for char, group in itertools.groupby(number_str)
|
|
272
271
|
]
|
|
273
|
-
|
|
274
272
|
# Find the max repeated group
|
|
275
273
|
max_repeated_char, max_repeated_len = max(grouped, key=lambda x: x[1])
|
|
276
|
-
|
|
277
274
|
# Only extend the sequence if the maximum repeated length is greater than 1
|
|
278
|
-
if max_repeated_len > 1:
|
|
275
|
+
if max_repeated_len > 1 and int(max_repeated_char) != 0:
|
|
279
276
|
# Find the start index of the sequence
|
|
280
277
|
start_index = number_str.find(max_repeated_char * max_repeated_len)
|
|
281
278
|
|
|
@@ -304,7 +301,7 @@ class PhoneNumberNormalizer:
|
|
|
304
301
|
|
|
305
302
|
while i < len(number_str):
|
|
306
303
|
# Check if the next digit is the same as the current one
|
|
307
|
-
if i > 0 and number_str[i] == number_str[i - 1]:
|
|
304
|
+
if i > 0 and number_str[i] == number_str[i - 1] and int(number_str[i]) != 0:
|
|
308
305
|
repeat_count += 1
|
|
309
306
|
else:
|
|
310
307
|
repeat_count = 1 # Reset the repeat count if the digit changes
|
|
@@ -454,7 +451,14 @@ class PhoneNumberNormalizer:
|
|
|
454
451
|
return self.__update_text_with_number(text, new_number, "۰۹۹", "۰۹۹۹")
|
|
455
452
|
|
|
456
453
|
return self.__update_general_case(text, number)
|
|
457
|
-
|
|
454
|
+
|
|
455
|
+
def __normalize_format_text(self, text):
|
|
456
|
+
# اضافه کردن فاصله قبل و بعد از اعداد
|
|
457
|
+
text_with_spaces = re.sub(r'(\d+)', r' \1 ', text)
|
|
458
|
+
# حذف فضاهای اضافی
|
|
459
|
+
formatted_text = re.sub(r'\s+', ' ', text_with_spaces).strip()
|
|
460
|
+
return formatted_text
|
|
461
|
+
|
|
458
462
|
@staticmethod
|
|
459
463
|
def normalize(text):
|
|
460
464
|
"""
|
|
@@ -494,5 +498,6 @@ class PhoneNumberNormalizer:
|
|
|
494
498
|
<= digit_mapping.PHONE_NUMBER_LENGTH_PARTIAL
|
|
495
499
|
):
|
|
496
500
|
cleaned_text = processor.__process_number_replacement(cleaned_text, result)
|
|
497
|
-
|
|
501
|
+
#new_version 2.0 fixed bug space between number and word
|
|
502
|
+
cleaned_text = processor.__normalize_format_text(cleaned_text)
|
|
498
503
|
return cleaned_text if results else text
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sharedkernel
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.6
|
|
4
4
|
Summary: sharekernel is a shared package between all python projects
|
|
5
5
|
Author: Smilinno
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -20,6 +20,10 @@ Requires-Dist: persiantools
|
|
|
20
20
|
this a shared kernel package
|
|
21
21
|
|
|
22
22
|
# Change Log
|
|
23
|
+
### Version 1.6.6
|
|
24
|
+
- Fix bug of phonenumber normalizer
|
|
25
|
+
### Version 1.6.5
|
|
26
|
+
- Update on the JWTBearer (Save decoded token in request state)
|
|
23
27
|
### Version 1.6.4
|
|
24
28
|
- Update normlizer package
|
|
25
29
|
### Version 1.6.3
|
|
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
|