valetudo-map-parser 0.1.9a1__tar.gz → 0.1.9a2__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 (27) hide show
  1. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/PKG-INFO +1 -1
  2. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/shared.py +44 -1
  3. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/pyproject.toml +1 -1
  4. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/LICENSE +0 -0
  5. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/NOTICE.txt +0 -0
  6. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/README.md +0 -0
  7. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/__init__.py +0 -0
  8. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/__init__.py +0 -0
  9. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/auto_crop.py +0 -0
  10. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/color_utils.py +0 -0
  11. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/colors.py +0 -0
  12. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/drawable.py +0 -0
  13. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/drawable_elements.py +0 -0
  14. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/enhanced_drawable.py +0 -0
  15. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/optimized_element_map.py +0 -0
  16. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/rand25_parser.py +0 -0
  17. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/room_outline.py +0 -0
  18. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/types.py +0 -0
  19. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/config/utils.py +0 -0
  20. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/hypfer_draw.py +0 -0
  21. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/hypfer_handler.py +0 -0
  22. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/hypfer_rooms_handler.py +0 -0
  23. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/map_data.py +0 -0
  24. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/py.typed +0 -0
  25. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/rand25_handler.py +0 -0
  26. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/reimg_draw.py +0 -0
  27. {valetudo_map_parser-0.1.9a1 → valetudo_map_parser-0.1.9a2}/SCR/valetudo_map_parser/rooms_handler.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: valetudo-map-parser
3
- Version: 0.1.9a1
3
+ Version: 0.1.9a2
4
4
  Summary: A Python library to parse Valetudo map data returning a PIL Image object.
5
5
  License: Apache-2.0
6
6
  Author: Sandro Cantarella
@@ -109,6 +109,45 @@ class CameraShared:
109
109
  self.skip_room_ids: List[str] = []
110
110
  self.device_info = None # Store the device_info
111
111
 
112
+ @staticmethod
113
+ def _compose_obstacle_links(vacuum_host_ip: str, obstacles: list) -> list | None:
114
+ """
115
+ Compose JSON with obstacle details including the image link.
116
+ """
117
+ obstacle_links = []
118
+ if not obstacles or not vacuum_host_ip:
119
+ return None
120
+
121
+ for obstacle in obstacles:
122
+ # Extract obstacle details
123
+ label = obstacle.get("label", "")
124
+ points = obstacle.get("points", {})
125
+ image_id = obstacle.get("id", "None")
126
+
127
+ if label and points and image_id and vacuum_host_ip:
128
+ # Append formatted obstacle data
129
+ if image_id != "None":
130
+ # Compose the link
131
+ image_link = (
132
+ f"http://{vacuum_host_ip}"
133
+ f"/api/v2/robot/capabilities/ObstacleImagesCapability/img/{image_id}"
134
+ )
135
+ obstacle_links.append(
136
+ {
137
+ "point": points,
138
+ "label": label,
139
+ "link": image_link,
140
+ }
141
+ )
142
+ else:
143
+ obstacle_links.append(
144
+ {
145
+ "point": points,
146
+ "label": label,
147
+ }
148
+ )
149
+ return obstacle_links
150
+
112
151
  def update_user_colors(self, user_colors):
113
152
  """Update the user colors."""
114
153
  self.user_colors = user_colors
@@ -149,7 +188,11 @@ class CameraShared:
149
188
  ATTR_VACUUM_JSON_ID: self.vac_json_id,
150
189
  ATTR_CALIBRATION_POINTS: self.attr_calibration_points,
151
190
  }
152
- if self.obstacles_data:
191
+ if self.obstacles_pos and self.vacuum_ips:
192
+ _LOGGER.debug("Generating obstacle links from: %s", self.obstacles_pos)
193
+ self.obstacles_data = self._compose_obstacle_links(
194
+ self.vacuum_ips, self.obstacles_pos
195
+ )
153
196
  attrs[ATTR_OBSTACLES] = self.obstacles_data
154
197
 
155
198
  if self.enable_snapshots:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "valetudo-map-parser"
3
- version = "0.1.9a1"
3
+ version = "0.1.9a2"
4
4
  description = "A Python library to parse Valetudo map data returning a PIL Image object."
5
5
  authors = ["Sandro Cantarella <gsca075@gmail.com>"]
6
6
  license = "Apache-2.0"