sharedkernel 1.7.2__tar.gz → 1.8.0__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 (35) hide show
  1. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/PKG-INFO +5 -1
  2. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/README.md +4 -0
  3. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/setup.py +1 -1
  4. sharedkernel-1.8.0/sharedkernel/normalizer/__init__.py +2 -0
  5. sharedkernel-1.8.0/sharedkernel/normalizer/number_normalizer.py +8 -0
  6. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/s3_uploader.py +11 -6
  7. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel.egg-info/PKG-INFO +5 -1
  8. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel.egg-info/SOURCES.txt +1 -0
  9. sharedkernel-1.7.2/sharedkernel/normalizer/__init__.py +0 -1
  10. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/setup.cfg +0 -0
  11. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/common.py +0 -0
  12. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/database/__init__.py +0 -0
  13. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/database/mongo_generic_repository.py +0 -0
  14. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/database/vector_database_repository/__init__.py +0 -0
  15. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/database/vector_database_repository/chroma_startegy.py +0 -0
  16. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/database/vector_database_repository/vector_database_repository.py +0 -0
  17. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/database/vector_database_repository/vector_database_strategy.py +0 -0
  18. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/date_converter.py +0 -0
  19. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/enum/__init__.py +0 -0
  20. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/enum/error_code.py +0 -0
  21. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/enum/vector_database_type.py +0 -0
  22. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/exception/__init__.py +0 -0
  23. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/exception/exception.py +0 -0
  24. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/exception/exception_handlers.py +0 -0
  25. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/jwt_service.py +0 -0
  26. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/normalizer/phone_number_normalizer.py +0 -0
  27. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/objects/__init__.py +0 -0
  28. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/objects/base_document.py +0 -0
  29. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/objects/jwt_model.py +0 -0
  30. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/objects/result.py +0 -0
  31. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/regex_masking.py +0 -0
  32. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel/string_extentions.py +0 -0
  33. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel.egg-info/dependency_links.txt +0 -0
  34. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/sharedkernel.egg-info/requires.txt +0 -0
  35. {sharedkernel-1.7.2 → sharedkernel-1.8.0}/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.7.2
3
+ Version: 1.8.0
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: boto3
20
20
  this a shared kernel package
21
21
 
22
22
  # Change Log
23
+ ### Version 1.8.0
24
+ - Implement persian number normalizer
25
+ ### Version 1.7.3
26
+ - Add optional folder name for s3 uploader to save the file in
23
27
  ### Version 1.7.2
24
28
  - Fix bug of to_diff_persian_date_time_string
25
29
  ### Version 1.7.1
@@ -2,6 +2,10 @@
2
2
  this a shared kernel package
3
3
 
4
4
  # Change Log
5
+ ### Version 1.8.0
6
+ - Implement persian number normalizer
7
+ ### Version 1.7.3
8
+ - Add optional folder name for s3 uploader to save the file in
5
9
  ### Version 1.7.2
6
10
  - Fix bug of to_diff_persian_date_time_string
7
11
  ### Version 1.7.1
@@ -35,7 +35,7 @@ setup(
35
35
  "boto3"
36
36
  ],
37
37
  # *strongly* suggested for sharing
38
- version="1.7.2",
38
+ version="1.8.0",
39
39
  description="sharekernel is a shared package between all python projects",
40
40
  long_description=long_description,
41
41
  long_description_content_type="text/markdown",
@@ -0,0 +1,2 @@
1
+ from .phone_number_normalizer import PhoneNumberNormalizer
2
+ from .number_normalizer import NumberNormalizer
@@ -0,0 +1,8 @@
1
+ class NumberNormalizer:
2
+ @staticmethod
3
+ def persian_number(text):
4
+ persian_numbers = "۰۱۲۳۴۵۶۷۸۹"
5
+ english_numbers = "0123456789"
6
+ translation_table = str.maketrans(persian_numbers, english_numbers)
7
+ return text.translate(translation_table)
8
+
@@ -27,13 +27,14 @@ class S3Uploader:
27
27
  aws_secret_access_key=self.secret_key,
28
28
  )
29
29
 
30
- def upload_file_object(self, file_obj, object_name=None, file_extension=None):
30
+ def upload_file_object(self, file_obj, object_name=None, file_extension=None, folder_name=None):
31
31
  """
32
32
  Uploads a file object to an S3 bucket and returns its URL.
33
33
 
34
34
  :param file_obj: File object to upload
35
35
  :param object_name: S3 file name to save as (optional)
36
36
  :param file_extension: File extension to append to object name (optional)
37
+ :param folder_name: Optional folder name to save the file in
37
38
  :return: URL of the uploaded file if successful, else False
38
39
  """
39
40
  # Use uuid4 to generate a unique object_name if not provided
@@ -44,29 +45,33 @@ class S3Uploader:
44
45
  if file_extension:
45
46
  object_name += file_extension
46
47
 
48
+ # Prefix the object name with the folder if provided
49
+ if folder_name:
50
+ object_name = f"{folder_name}/{object_name}"
51
+
47
52
  # Upload the file object
48
53
  self.s3.upload_fileobj(file_obj, self.bucket, object_name, ExtraArgs={'ACL':'public-read'})
49
- print(f"File object uploaded to {self.bucket} as {object_name}.")
50
54
 
51
55
  # Construct the URL of the uploaded file
52
56
  file_url = f"{self.endpoint_url}/{self.bucket}/{object_name}"
53
57
 
54
58
  return file_url
55
59
 
56
- def upload_file_from_url(self, file_url, object_name=None):
60
+ def upload_file_from_url(self, file_url, object_name=None, folder_name=None):
57
61
  """
58
62
  Downloads a file from a URL and uploads it to an S3 bucket, returning its URL.
59
63
 
60
64
  :param file_url: URL of the file to download
61
65
  :param object_name: S3 file name to save as (optional)
66
+ :param folder_name: Optional folder name to save the file in
62
67
  :return: URL of the uploaded file if successful, else False
63
68
  """
64
69
  # Step 1: Download the file from the provided URL
65
70
  response = requests.get(file_url)
66
71
  response.raise_for_status() # Check if the request was successful
67
72
 
68
- # Extract file extension from the URL if available
69
- file_extension = os.path.splitext(file_url)[1] # Get extension from URL (e.g., .jpg, .png, etc.)
73
+ # Extract file extension from the URL if available
74
+ file_extension = os.path.splitext(file_url)[1] # Get extension from URL (e.g., .jpg, .mp3, etc.)
70
75
 
71
76
  # Use the filename from the URL if no object_name is provided, otherwise use uuid4
72
77
  if object_name is None:
@@ -74,4 +79,4 @@ class S3Uploader:
74
79
 
75
80
  # Step 2: Upload the file to S3
76
81
  file_obj = BytesIO(response.content)
77
- return self.upload_file_object(file_obj, object_name, file_extension)
82
+ return self.upload_file_object(file_obj=file_obj, object_name=object_name, file_extension=file_extension, folder_name=folder_name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sharedkernel
3
- Version: 1.7.2
3
+ Version: 1.8.0
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: boto3
20
20
  this a shared kernel package
21
21
 
22
22
  # Change Log
23
+ ### Version 1.8.0
24
+ - Implement persian number normalizer
25
+ ### Version 1.7.3
26
+ - Add optional folder name for s3 uploader to save the file in
23
27
  ### Version 1.7.2
24
28
  - Fix bug of to_diff_persian_date_time_string
25
29
  ### Version 1.7.1
@@ -24,6 +24,7 @@ sharedkernel/exception/__init__.py
24
24
  sharedkernel/exception/exception.py
25
25
  sharedkernel/exception/exception_handlers.py
26
26
  sharedkernel/normalizer/__init__.py
27
+ sharedkernel/normalizer/number_normalizer.py
27
28
  sharedkernel/normalizer/phone_number_normalizer.py
28
29
  sharedkernel/objects/__init__.py
29
30
  sharedkernel/objects/base_document.py
@@ -1 +0,0 @@
1
- from .phone_number_normalizer import PhoneNumberNormalizer
File without changes