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.
Files changed (33) hide show
  1. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/PKG-INFO +5 -1
  2. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/README.md +4 -0
  3. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/setup.py +1 -1
  4. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/jwt_service.py +5 -2
  5. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/normalizer/phone_number_normalizer.py +22 -17
  6. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/PKG-INFO +5 -1
  7. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/setup.cfg +0 -0
  8. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/common.py +0 -0
  9. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/__init__.py +0 -0
  10. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/mongo_generic_repository.py +0 -0
  11. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/__init__.py +0 -0
  12. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/chroma_startegy.py +0 -0
  13. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/milvus_strategy.py +0 -0
  14. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/vector_database_repository.py +0 -0
  15. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/database/vector_database_repository/vector_database_strategy.py +0 -0
  16. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/date_converter.py +0 -0
  17. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/enum/__init__.py +0 -0
  18. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/enum/error_code.py +0 -0
  19. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/enum/vector_database_type.py +0 -0
  20. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/exception/__init__.py +0 -0
  21. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/exception/exception.py +0 -0
  22. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/exception/exception_handlers.py +0 -0
  23. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/normalizer/__init__.py +0 -0
  24. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/objects/__init__.py +0 -0
  25. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/objects/base_document.py +0 -0
  26. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/objects/jwt_model.py +0 -0
  27. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/objects/result.py +0 -0
  28. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/regex_masking.py +0 -0
  29. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel/string_extentions.py +0 -0
  30. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/SOURCES.txt +0 -0
  31. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/dependency_links.txt +0 -0
  32. {sharedkernel-1.6.4 → sharedkernel-1.6.6}/sharedkernel.egg-info/requires.txt +0 -0
  33. {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.4
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
@@ -2,6 +2,10 @@
2
2
  this a shared kernel package
3
3
 
4
4
  # Change Log
5
+ ### Version 1.6.6
6
+ - Fix bug of phonenumber normalizer
7
+ ### Version 1.6.5
8
+ - Update on the JWTBearer (Save decoded token in request state)
5
9
  ### Version 1.6.4
6
10
  - Update normlizer package
7
11
  ### Version 1.6.3
@@ -34,7 +34,7 @@ setup(
34
34
  "persiantools"
35
35
  ],
36
36
  # *strongly* suggested for sharing
37
- version="1.6.4",
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) -> bool:
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
@@ -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
- current_digit = int(str_num[i])
158
- next_digit = int(str_num[i + 1])
159
- new_num = (
160
- str_num[:i]
161
- + str(int(current_digit) * str(next_digit))
162
- + str_num[i + 2 :]
163
- )
164
- if len(new_num) <= 7:
165
- next_numbers.add(str(new_num))
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.4
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