sharedkernel 1.4.3__tar.gz → 1.4.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.
Files changed (32) hide show
  1. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/PKG-INFO +4 -2
  2. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/README.md +3 -1
  3. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/setup.py +1 -1
  4. sharedkernel-1.4.4/sharedkernel/regex_masking.py +93 -0
  5. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel.egg-info/PKG-INFO +4 -2
  6. sharedkernel-1.4.3/sharedkernel/regex_masking.py +0 -62
  7. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/setup.cfg +0 -0
  8. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/common.py +0 -0
  9. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/database/__init__.py +0 -0
  10. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/database/mongo_generic_repository.py +0 -0
  11. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/database/vector_database_repository/__init__.py +0 -0
  12. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/database/vector_database_repository/chroma_startegy.py +0 -0
  13. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/database/vector_database_repository/milvus_strategy.py +0 -0
  14. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/database/vector_database_repository/vector_database_repository.py +0 -0
  15. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/database/vector_database_repository/vector_database_strategy.py +0 -0
  16. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/date_converter.py +0 -0
  17. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/enum/__init__.py +0 -0
  18. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/enum/error_code.py +0 -0
  19. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/enum/vector_database_type.py +0 -0
  20. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/exception/__init__.py +0 -0
  21. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/exception/exception.py +0 -0
  22. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/exception/exception_handlers.py +0 -0
  23. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/jwt_service.py +0 -0
  24. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/objects/__init__.py +0 -0
  25. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/objects/base_document.py +0 -0
  26. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/objects/jwt_model.py +0 -0
  27. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/objects/result.py +0 -0
  28. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel/string_extentions.py +0 -0
  29. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel.egg-info/SOURCES.txt +0 -0
  30. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel.egg-info/dependency_links.txt +0 -0
  31. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/sharedkernel.egg-info/requires.txt +0 -0
  32. {sharedkernel-1.4.3 → sharedkernel-1.4.4}/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.4.3
3
+ Version: 1.4.4
4
4
  Summary: sharekernel is an shared package between all python projects
5
5
  Author: Smilinno
6
6
  Description-Content-Type: text/markdown
@@ -19,7 +19,9 @@ Requires-Dist: jdatetime
19
19
  this a shared kernel package
20
20
 
21
21
  # Change Log
22
- ### Version 1.4.2
22
+ ### Version 1.4.4
23
+ - Fix regex masking bugs
24
+ ### Version 1.4.3
23
25
  - Fix collection bug in MongoGenericRepository
24
26
  ### Version 1.4.2
25
27
  - Fix minor bugs
@@ -2,7 +2,9 @@
2
2
  this a shared kernel package
3
3
 
4
4
  # Change Log
5
- ### Version 1.4.2
5
+ ### Version 1.4.4
6
+ - Fix regex masking bugs
7
+ ### Version 1.4.3
6
8
  - Fix collection bug in MongoGenericRepository
7
9
  ### Version 1.4.2
8
10
  - Fix minor bugs
@@ -32,7 +32,7 @@ setup(
32
32
  "jdatetime"
33
33
  ],
34
34
  # *strongly* suggested for sharing
35
- version="1.4.3",
35
+ version="1.4.4",
36
36
  description="sharekernel is an shared package between all python projects",
37
37
  long_description=long_description,
38
38
  long_description_content_type="text/markdown",
@@ -0,0 +1,93 @@
1
+ import re
2
+ from persian_tools import national_id, phone_number
3
+ from persian_tools.bank import card_number, sheba
4
+
5
+ class RegexMaskingBuilder:
6
+ def __init__(self, message: str, replace_str: str = ""):
7
+ self.message = message
8
+ self.replace_str = replace_str
9
+
10
+ def with_card_no(self):
11
+ pattern_16_digits = r'(?<!\d)\d{16}(?!\d)'
12
+ pattern_4_4_4_4 = r'(?<!\d)\d{4}\W?\d{4}\W?\d{4}\W?\d{4}(?!\d)'
13
+
14
+ find_patterns = re.findall(f"{pattern_16_digits}|{pattern_4_4_4_4}", self.message)
15
+
16
+ for matched_pattern in find_patterns:
17
+ clean_pattern = matched_pattern.replace("-", "") if "-" in matched_pattern else matched_pattern
18
+ if len(clean_pattern) == 16 and card_number.validate(clean_pattern):
19
+ self.message = re.sub(re.escape(matched_pattern), self.replace_str, self.message)
20
+ elif card_number.validate(clean_pattern):
21
+ self.message = re.sub(re.escape(matched_pattern), self.message_sub(len(clean_pattern)), self.message)
22
+
23
+ return self
24
+
25
+ def with_national_id(self):
26
+ pattern_10_digits = r'(?<!\d)\d{10}(?!\d)'
27
+
28
+ id_matches = re.findall(pattern_10_digits, self.message)
29
+ if not id_matches:
30
+ return self
31
+
32
+ for matched_id in id_matches:
33
+ if national_id.validate(matched_id):
34
+ self.message = re.sub(re.escape(matched_id), self.replace_str, self.message)
35
+
36
+ return self
37
+
38
+ def with_mobile_no(self):
39
+ pattern = r'(?<!\d)\d{10,12}(?!\d)'
40
+
41
+ matches = re.findall(pattern, self.message)
42
+
43
+ if not matches:
44
+ return self
45
+
46
+ for match in matches:
47
+ if phone_number.validate(match):
48
+ self.message = re.sub(re.escape(match), self.replace_str, self.message)
49
+
50
+ return self
51
+
52
+ def with_sheba(self):
53
+ sheba_patterns = [r'(?<!\d)\d{24}(?!\d)', r'IR\d{24}(?!\d)']
54
+ sheba_matches = re.findall('|'.join(sheba_patterns), self.message)
55
+
56
+ if not sheba_matches:
57
+ return self
58
+
59
+ for sheba_number in sheba_matches:
60
+ if sheba.validate(sheba_number):
61
+ message = re.sub(re.escape(sheba_number), self.replace_str, message)
62
+
63
+ return self
64
+
65
+ def with_phone_no(self):
66
+ phone_number_pattern1 = r"(?<!\d)^0[0-9]{2,}-[0-9]{8}$(?!\d)"
67
+ phone_number_pattern2 = r"(?<!\d)^0[0-9]{2,}[0-9]{8}$(?!\d)"
68
+ combined_pattern = re.compile(f"{phone_number_pattern1}|{phone_number_pattern2}")
69
+ self.message = combined_pattern.sub(self.replace_str, self.message)
70
+ return self
71
+
72
+ def with_cvv2(self):
73
+ self.message = re.sub(r'(?<!\d)\d{3}(?!\d)', self.replace_str, self.message)
74
+ return self
75
+
76
+ def with_peigiri_no(self):
77
+ patterns = [
78
+ r'(?<!\d)\d{6}(?!\d)',
79
+ r'(?<!\d)\d{12}(?!\d)',
80
+ r'(?<!\d)\d{20}(?!\d)'
81
+ ]
82
+ for pattern in patterns:
83
+ self.message = re.sub(pattern, self.replace_str, self.message)
84
+ return self
85
+
86
+ def with_account_no(self):
87
+ pattern = r'(?<!\d)\d{12,16}(?!\d)'
88
+
89
+ self.message = re.sub(pattern, self.replace_str, self.message)
90
+ return self
91
+
92
+ def build(self):
93
+ return self.message
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sharedkernel
3
- Version: 1.4.3
3
+ Version: 1.4.4
4
4
  Summary: sharekernel is an shared package between all python projects
5
5
  Author: Smilinno
6
6
  Description-Content-Type: text/markdown
@@ -19,7 +19,9 @@ Requires-Dist: jdatetime
19
19
  this a shared kernel package
20
20
 
21
21
  # Change Log
22
- ### Version 1.4.2
22
+ ### Version 1.4.4
23
+ - Fix regex masking bugs
24
+ ### Version 1.4.3
23
25
  - Fix collection bug in MongoGenericRepository
24
26
  ### Version 1.4.2
25
27
  - Fix minor bugs
@@ -1,62 +0,0 @@
1
- import re
2
- from persian_tools import national_id, phone_number
3
- from persian_tools.bank import card_number, sheba
4
-
5
- class RegexMaskingBuilder:
6
- def __init__(self, message: str):
7
- self.message = message
8
-
9
- def with_card_no(self):
10
- find_patterns = re.findall(r'(?<!\d)\d{16}(?!\d)', self.message)
11
- for i in find_patterns:
12
- if card_number.validate(i):
13
- self.message = re.sub(i, "*" * 16, self.message)
14
- return self
15
-
16
- def with_national_id(self):
17
- find_patterns = re.findall(r'(?<!\d)\d{10}(?!\d)', self.message)
18
- for i in find_patterns:
19
- if national_id.validate(i):
20
- self.message = re.sub(i, "*" * 10, self.message)
21
- return self
22
-
23
- def with_mobile_no(self):
24
- find_patterns = re.findall(r'(?<!\d)\d{10,12}(?!\d)', self.message)
25
- for i in find_patterns:
26
- if phone_number.validate(i):
27
- self.message = re.sub(i, "*" * len(i), self.message)
28
- return self
29
-
30
- def with_sheba(self):
31
- find_patterns = re.findall(r'|'.join([r'(?<!\d)\d{24}(?!\d)', r'IR\d{24}(?!\d)']), self.message)
32
- for i in find_patterns:
33
- if sheba.validate("IR" + i) or sheba.validate(i):
34
- self.message = re.sub(i, "*" * len(i), self.message)
35
- return self
36
-
37
- def with_phone_no(self):
38
- phone_number_pattern1 = r'(?<!\d)^0[0-9]{2,}-[0-9]{8}$(?!\d)'
39
- phone_number_pattern2 = r'(?<!\d)^0[0-9]{2,}[0-9]{8}$(?!\d)'
40
- self.message = re.sub(r'|'.join([phone_number_pattern1, phone_number_pattern2]), "*" * 12, self.message)
41
- return self
42
-
43
- def with_cvv2(self):
44
- self.message = re.sub(r'(?<!\d)\d{3}(?!\d)', "*" * 3, self.message)
45
- return self
46
-
47
- def with_peigiri_no(self):
48
- patterns = {
49
- r'(?<!\d)\d{6}(?!\d)': "*" * 6,
50
- r'(?<!\d)\d{12}(?!\d)': "*" * 12,
51
- r'(?<!\d)\d{20}(?!\d)': "*" * 20
52
- }
53
- for key, value in patterns.items():
54
- self.message = re.sub(key, value, self.message)
55
- return self
56
-
57
- def with_account_no(self):
58
- self.message = re.sub(r'(?<!\d)\d{12,16}(?!\d)', "*" * 16, self.message)
59
- return self
60
-
61
- def build(self):
62
- return self.message
File without changes