hjxdl 0.1.77__py3-none-any.whl → 0.1.79__py3-none-any.whl

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.
hdl/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.1.77'
16
- __version_tuple__ = version_tuple = (0, 1, 77)
15
+ __version__ = version = '0.1.79'
16
+ __version_tuple__ = version_tuple = (0, 1, 79)
hdl/utils/llm/vis.py CHANGED
@@ -2,6 +2,7 @@ from pathlib import Path
2
2
  import json
3
3
  import base64
4
4
  from io import BytesIO
5
+ import requests
5
6
 
6
7
  import torch
7
8
  import numpy as np
@@ -25,22 +26,68 @@ __all__ = [
25
26
 
26
27
  HF_HUB_PREFIX = "hf-hub:"
27
28
 
29
+ import requests
30
+ import base64
31
+ from io import BytesIO
32
+ from PIL import Image
33
+
34
+
35
+ def imgurl_to_base64(image_url: str):
36
+ """Converts an image from a URL to base64 format.
37
+
38
+ Args:
39
+ image_url (str): The URL of the image.
40
+
41
+ Returns:
42
+ str: The image file converted to base64 format with appropriate MIME type.
43
+ """
44
+ # Send a GET request to fetch the image from the URL
45
+ response = requests.get(image_url)
46
+
47
+ # Ensure the request was successful
48
+ if response.status_code == 200:
49
+ # Read the image content from the response
50
+ img_data = response.content
51
+
52
+ # Load the image using PIL to determine its format
53
+ img = Image.open(BytesIO(img_data))
54
+ img_format = img.format.lower() # Get image format (e.g., jpeg, png)
55
+
56
+ # Determine the MIME type based on the format
57
+ mime_type = f"image/{img_format}"
58
+
59
+ # Convert the image data to base64
60
+ img_base64 = f"data:{mime_type};base64," + base64.b64encode(img_data).decode('utf-8')
61
+
62
+ return img_base64
63
+ else:
64
+ raise Exception(f"Failed to retrieve image from {image_url}, status code {response.status_code}")
65
+
28
66
 
29
67
  def imgfile_to_base64(img_dir: str):
30
- """Converts an image file to base64 format.
68
+ """Converts an image file to base64 format, supporting multiple formats.
31
69
 
32
70
  Args:
33
71
  img_dir (str): The directory path of the image file.
34
72
 
35
73
  Returns:
36
- str: The image file converted to base64 format.
74
+ str: The image file converted to base64 format with appropriate MIME type.
37
75
  """
76
+ # Open the image file
38
77
  with open(img_dir, 'rb') as file:
39
- img_base64 = "data:image/jpeg;base64," + base64.b64encode(
40
- file.read()
41
- ).decode('utf-8')
42
- return img_base64
78
+ # Read the image data
79
+ img_data = file.read()
80
+
81
+ # Get the image format (e.g., JPEG, PNG, etc.)
82
+ img_format = Image.open(BytesIO(img_data)).format.lower()
83
+
84
+ # Determine the MIME type based on the format
85
+ mime_type = f"image/{img_format}"
43
86
 
87
+ # Convert the image data to base64
88
+ img_base64 = f"data:{mime_type};base64," + base64.b64encode(img_data).decode('utf-8')
89
+
90
+ return img_base64
44
91
 
45
92
  def imgbase64_to_pilimg(img_base64: str):
46
93
  """Converts a base64 encoded image to a PIL image.
@@ -51,6 +98,7 @@ def imgbase64_to_pilimg(img_base64: str):
51
98
  Returns:
52
99
  PIL.Image: A PIL image object.
53
100
  """
101
+ # Decode the base64 string and convert it back to an image
54
102
  img_pil = Image.open(
55
103
  BytesIO(
56
104
  base64.b64decode(img_base64.split(",")[-1])
@@ -167,7 +215,7 @@ class ImgHandler:
167
215
  if isinstance(img, str):
168
216
  if Path(img).is_file():
169
217
  images_fixed.append(Image.open(img))
170
- elif img.startswith("data:image/jpeg;base64,"):
218
+ elif img.startswith("data:image"):
171
219
  images_fixed.append(imgbase64_to_pilimg(img))
172
220
  elif isinstance(img, Image.Image):
173
221
  images_fixed.append(img)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hjxdl
3
- Version: 0.1.77
3
+ Version: 0.1.79
4
4
  Summary: A collection of functions for Jupyter notebooks
5
5
  Home-page: https://github.com/huluxiaohuowa/hdl
6
6
  Author: Jianxing Hu
@@ -1,5 +1,5 @@
1
1
  hdl/__init__.py,sha256=GffnD0jLJdhkd-vo989v40N90sQbofkayRBwxc6TVhQ,72
2
- hdl/_version.py,sha256=pR69cAAhBeiBIiq1R2ZPiBkmG1Vpk9Y8EREnxa0bNng,413
2
+ hdl/_version.py,sha256=gVWypE58uIRMaysjaHk01pDxqGS_O1SFlybbuLyJEJ4,413
3
3
  hdl/args/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  hdl/args/loss_args.py,sha256=s7YzSdd7IjD24rZvvOrxLLFqMZQb9YylxKeyelSdrTk,70
5
5
  hdl/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -131,12 +131,12 @@ hdl/utils/llm/chat.py,sha256=sk7Lw5Oa30k-l2fnJknkMmTc5zkBeEKsR981aeFhH5s,11907
131
131
  hdl/utils/llm/embs.py,sha256=Tf0FOYrOFZp7qQpEPiSCXzlgyHH0X9HVTUtsup74a9E,7174
132
132
  hdl/utils/llm/extract.py,sha256=2sK_WJzmYIc8iuWaM9DA6Nw3_6q1O4lJ5pKpcZo-bBA,6512
133
133
  hdl/utils/llm/llama_chat.py,sha256=watcHGOaz-bv3x-yDucYlGk5f8FiqfFhwWogrl334fk,4387
134
- hdl/utils/llm/vis.py,sha256=Ic93BK7AlXnp0mjkiyI62L5tIrYqdDPI6ER_YQXd38g,14095
134
+ hdl/utils/llm/vis.py,sha256=91lVyCL2pwGMakGuGaT6j3DGKWGhSib9vUyGhGUDuUE,15697
135
135
  hdl/utils/schedulers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
136
  hdl/utils/schedulers/norm_lr.py,sha256=bDwCmdEK-WkgxQMFBiMuchv8Mm7C0-GZJ6usm-PQk14,4461
137
137
  hdl/utils/weather/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
138
  hdl/utils/weather/weather.py,sha256=k11o6wM15kF8b9NMlEfrg68ak-SfSYLN3nOOflFUv-I,4381
139
- hjxdl-0.1.77.dist-info/METADATA,sha256=RFpKc78NCBvxs-GYSupQRem_h-0SNtZSxq7s0m4VaCk,903
140
- hjxdl-0.1.77.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
141
- hjxdl-0.1.77.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
142
- hjxdl-0.1.77.dist-info/RECORD,,
139
+ hjxdl-0.1.79.dist-info/METADATA,sha256=mIkHVtGxLnRySUeUwXPYKDPGPLMH-aW4PLEvH-uyEMw,903
140
+ hjxdl-0.1.79.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
141
+ hjxdl-0.1.79.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
142
+ hjxdl-0.1.79.dist-info/RECORD,,
File without changes