valetudo-map-parser 0.1.9b2__py3-none-any.whl → 0.1.9b4__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.
@@ -1,20 +1,20 @@
1
1
  """Valetudo map parser.
2
2
  Version: 0.1.8"""
3
3
 
4
- from .hypfer_handler import HypferMapImageHandler
5
- from .rand25_handler import ReImageHandler
6
- from .config.rand25_parser import RRMapParser
7
- from .config.shared import CameraShared, CameraSharedManager
8
4
  from .config.colors import ColorsManagment
9
5
  from .config.drawable import Drawable
6
+ from .config.rand25_parser import RRMapParser
7
+ from .config.shared import CameraShared, CameraSharedManager
10
8
  from .config.types import (
11
- SnapshotStore,
12
- UserLanguageStore,
13
- RoomStore,
9
+ CameraModes,
14
10
  RoomsProperties,
11
+ RoomStore,
12
+ SnapshotStore,
15
13
  TrimCropData,
16
- CameraModes,
14
+ UserLanguageStore,
17
15
  )
16
+ from .hypfer_handler import HypferMapImageHandler
17
+ from .rand25_handler import ReImageHandler
18
18
 
19
19
  __all__ = [
20
20
  "HypferMapImageHandler",
@@ -70,7 +70,7 @@ class AutoCrop:
70
70
  )
71
71
  return trimmed_width, trimmed_height
72
72
 
73
- async def _async_auto_crop_data(self): #, tdata=None
73
+ async def _async_auto_crop_data(self): # , tdata=None
74
74
  """Load the auto crop data from the Camera config."""
75
75
  # todo: implement this method but from config data
76
76
  # if not self.imh.auto_crop:
@@ -2,9 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from enum import StrEnum
6
- from typing import List, Dict, Tuple
7
5
  import logging
6
+ from enum import StrEnum
7
+ from typing import Dict, List, Tuple
8
8
 
9
9
  _LOGGER = logging.getLogger(__name__)
10
10
 
@@ -10,8 +10,8 @@ from __future__ import annotations
10
10
 
11
11
  import math
12
12
 
13
- from PIL import ImageDraw, ImageFont
14
13
  import numpy as np
14
+ from PIL import ImageDraw, ImageFont
15
15
 
16
16
  from .types import Color, NumpyArray, PilPNG, Point, Union
17
17
 
@@ -5,10 +5,10 @@ Version: v2024.08.2
5
5
  - Additional functions are to get in our image_handler the images datas.
6
6
  """
7
7
 
8
- from enum import Enum
9
8
  import math
10
9
  import struct
11
- from typing import Dict, List, Optional, Callable, TypeVar, Any
10
+ from enum import Enum
11
+ from typing import Any, Callable, Dict, List, Optional, TypeVar
12
12
 
13
13
  _CallableT = TypeVar("_CallableT", bound=Callable[..., Any])
14
14
 
@@ -257,7 +257,7 @@ class RRMapParser:
257
257
 
258
258
  @callback
259
259
  def parse_rrm_data(
260
- self, map_buf: bytes, pixels: bool = False
260
+ self, map_buf: bytes, pixels: bool = False
261
261
  ) -> Optional[Dict[str, Any]]:
262
262
  """Parse the complete map data."""
263
263
  if not self.parse(map_buf).get("map_index"):
@@ -350,7 +350,7 @@ class RRMapParser:
350
350
 
351
351
  @staticmethod
352
352
  def _parse_virtual_walls_data(
353
- parsed_map_data: Dict[str, Any], blocks: Dict[int, Any]
353
+ parsed_map_data: Dict[str, Any], blocks: Dict[int, Any]
354
354
  ):
355
355
  """Parse virtual walls data."""
356
356
  if RRMapParser.Types.VIRTUAL_WALLS.value in blocks:
@@ -387,6 +387,11 @@ class RRMapParser:
387
387
  for zone in blocks[RRMapParser.Types.FORBIDDEN_MOP_ZONES.value]
388
388
  ]
389
389
 
390
+ if RRMapParser.Types.GOTO_TARGET.value in blocks:
391
+ parsed_map_data["goto_target"] = blocks[
392
+ RRMapParser.Types.GOTO_TARGET.value
393
+ ]["position"]
394
+
390
395
  def parse_data(
391
396
  self, payload: Optional[bytes] = None, pixels: bool = False
392
397
  ) -> Optional[Dict[str, Any]]:
@@ -9,7 +9,9 @@ import logging
9
9
 
10
10
  from .types import (
11
11
  ATTR_CALIBRATION_POINTS,
12
+ ATTR_CAMERA_MODE,
12
13
  ATTR_MARGINS,
14
+ ATTR_OBSTACLES,
13
15
  ATTR_POINTS,
14
16
  ATTR_ROOMS,
15
17
  ATTR_ROTATE,
@@ -19,8 +21,6 @@ from .types import (
19
21
  ATTR_VACUUM_POSITION,
20
22
  ATTR_VACUUM_STATUS,
21
23
  ATTR_ZONES,
22
- ATTR_CAMERA_MODE,
23
- ATTR_OBSTACLES,
24
24
  CONF_ASPECT_RATIO,
25
25
  CONF_AUTO_ZOOM,
26
26
  CONF_OFFSET_BOTTOM,
@@ -35,8 +35,8 @@ from .types import (
35
35
  CONF_ZOOM_LOCK_RATIO,
36
36
  DEFAULT_VALUES,
37
37
  CameraModes,
38
+ Colors,
38
39
  )
39
- from .types import Colors
40
40
 
41
41
  _LOGGER = logging.getLogger(__name__)
42
42
 
@@ -4,13 +4,13 @@ Version 0.0.1
4
4
  """
5
5
 
6
6
  import asyncio
7
- from dataclasses import dataclass
8
7
  import json
9
8
  import logging
9
+ from dataclasses import dataclass
10
10
  from typing import Any, Dict, Tuple, Union
11
11
 
12
- from PIL import Image
13
12
  import numpy as np
13
+ from PIL import Image
14
14
 
15
15
  DEFAULT_ROOMS = 1
16
16
 
@@ -10,12 +10,7 @@ import hashlib
10
10
  import json
11
11
  import logging
12
12
 
13
- from .config.types import (
14
- Color,
15
- JsonType,
16
- NumpyArray,
17
- RobotPosition,
18
- )
13
+ from .config.types import Color, JsonType, NumpyArray, RobotPosition
19
14
 
20
15
  _LOGGER = logging.getLogger(__name__)
21
16
 
@@ -12,6 +12,10 @@ import logging
12
12
 
13
13
  from PIL import Image
14
14
 
15
+ from .config.auto_crop import AutoCrop
16
+ from .config.colors import ColorsManagment, SupportedColor
17
+ from .config.drawable import Drawable
18
+ from .config.shared import CameraShared
15
19
  from .config.types import (
16
20
  CalibrationPoints,
17
21
  ChargerPosition,
@@ -19,18 +23,10 @@ from .config.types import (
19
23
  RobotPosition,
20
24
  RoomsProperties,
21
25
  )
22
- from .config.auto_crop import AutoCrop
23
- from .config.drawable import Drawable
24
- from .config.shared import CameraShared
26
+ from .hypfer_draw import ImageDraw as ImDraw
27
+ from .images_utils import ImageUtils as ImUtils
28
+ from .images_utils import resize_to_aspect_ratio
25
29
  from .map_data import ImageData
26
- from .images_utils import (
27
- ImageUtils as ImUtils,
28
- resize_to_aspect_ratio,
29
- )
30
- from .hypfer_draw import (
31
- ImageDraw as ImDraw,
32
- )
33
- from .config.colors import ColorsManagment, SupportedColor
34
30
 
35
31
  _LOGGER = logging.getLogger(__name__)
36
32
 
@@ -8,17 +8,10 @@ Version: v0.1.6
8
8
 
9
9
  from __future__ import annotations
10
10
 
11
- from logging import getLogger
12
11
  import numpy as np
13
12
 
14
- from .config.types import (
15
- Colors,
16
- ImageSize,
17
- JsonType,
18
- NumpyArray,
19
- )
13
+ from .config.types import Colors, ImageSize, JsonType, NumpyArray
20
14
 
21
- _LOGGER = getLogger(__name__)
22
15
 
23
16
  class ImageData:
24
17
  """Class to handle the image data."""
@@ -330,7 +323,6 @@ class RandImageData:
330
323
  try:
331
324
  path_data = json_data.get("goto_target", {})
332
325
  except KeyError:
333
- _LOGGER.debug("No goto target data found in the json.")
334
326
  return None
335
327
 
336
328
  if path_data and path_data != []:
@@ -9,12 +9,21 @@ from __future__ import annotations
9
9
 
10
10
  import logging
11
11
  import uuid
12
+ from typing import Any
12
13
 
13
14
  from PIL import Image, ImageOps
14
- from typing import Any
15
- from .config.types import COLORS, DEFAULT_IMAGE_SIZE, DEFAULT_PIXEL_SIZE
16
- from .config.types import Colors, JsonType, PilPNG, RobotPosition, RoomsProperties
15
+
17
16
  from .config.auto_crop import AutoCrop
17
+ from .config.types import (
18
+ COLORS,
19
+ DEFAULT_IMAGE_SIZE,
20
+ DEFAULT_PIXEL_SIZE,
21
+ Colors,
22
+ JsonType,
23
+ PilPNG,
24
+ RobotPosition,
25
+ RoomsProperties,
26
+ )
18
27
  from .images_utils import ImageUtils as ImUtils
19
28
  from .map_data import RandImageData
20
29
  from .reimg_draw import ImageDraw
@@ -207,9 +216,11 @@ class ReImageHandler:
207
216
  async def _setup_robot_and_image(
208
217
  self, m_json, size_x, size_y, colors, destinations
209
218
  ):
210
- _, robot_position, robot_position_angle = await self.imd.async_get_robot_position(
211
- m_json
212
- )
219
+ (
220
+ _,
221
+ robot_position,
222
+ robot_position_angle,
223
+ ) = await self.imd.async_get_robot_position(m_json)
213
224
  if self.frame_number == 0:
214
225
  room_id, img_np_array = await self.imd.async_draw_base_layer(
215
226
  m_json,
@@ -247,7 +258,9 @@ class ReImageHandler:
247
258
  img_np_array = await self.imd.async_draw_path(
248
259
  img_np_array, m_json, colors["move"]
249
260
  )
250
- await self.imd.async_draw_go_to_flag(img_np_array, m_json, colors["go_to"])
261
+ img_np_array = await self.imd.async_draw_go_to_flag(
262
+ img_np_array, m_json, colors["go_to"]
263
+ )
251
264
  img_np_array = await self.imd.async_draw_robot_on_map(
252
265
  img_np_array, robot_position, robot_position_angle, colors["robot"]
253
266
  )
@@ -10,10 +10,9 @@ import hashlib
10
10
  import json
11
11
  import logging
12
12
 
13
- from .config.types import Color, JsonType, NumpyArray
14
13
  from .config.drawable import Drawable
15
- from .map_data import RandImageData
16
- from .map_data import ImageData
14
+ from .config.types import Color, JsonType, NumpyArray
15
+ from .map_data import ImageData, RandImageData
17
16
 
18
17
  _LOGGER = logging.getLogger(__name__)
19
18
 
@@ -43,7 +42,6 @@ class ImageDraw:
43
42
  color_go_to,
44
43
  )
45
44
  predicted_path = self.data.get_rrm_goto_predicted_path(m_json)
46
- _LOGGER.debug("Predicted path: %s", predicted_path)
47
45
  if predicted_path:
48
46
  np_array = await self.draw.lines(
49
47
  np_array, predicted_path, 3, self.color_grey
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: valetudo-map-parser
3
- Version: 0.1.9b2
3
+ Version: 0.1.9b4
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
@@ -0,0 +1,20 @@
1
+ valetudo_map_parser/__init__.py,sha256=pWRSVGM2OtPKTzdpPTEgLrNYjZ9P2duwaDLI_KN-iLY,809
2
+ valetudo_map_parser/config/__init__.py,sha256=DQ9plV3ZF_K25Dp5ZQHPDoG-40dQoJNdNi-dfNeR3Zc,48
3
+ valetudo_map_parser/config/auto_crop.py,sha256=z97Yqoe96ZiWmgaKTFv7sODb9UD6doRduTeQXMYWXVA,11018
4
+ valetudo_map_parser/config/colors.py,sha256=0sTI_x0ZMchSDPTsEivdTXDn58nEbyE4REXIp0IpWdg,6514
5
+ valetudo_map_parser/config/drawable.py,sha256=hsrEJCMVOrjs5sJfr26SeqJD0VNlYWwxcVkkHeaxx7U,20356
6
+ valetudo_map_parser/config/rand25_parser.py,sha256=fehyF18hRWRWbXbojocQCIaIch21Lbh1wtl2XdKRSl0,16447
7
+ valetudo_map_parser/config/shared.py,sha256=LQV5K8tbVhEKUkby9ssjEmh_T4Ai-Euzsbag_HWYVRc,9448
8
+ valetudo_map_parser/config/types.py,sha256=-8F1WwCH5hKSih83-WPjYbGdQyKmNqkDmSKvlyz6qPg,16163
9
+ valetudo_map_parser/hypfer_draw.py,sha256=YuxkAUfWphnyHLyUyTlMTvQlxRtfkTZalzV3cQkiqDs,15752
10
+ valetudo_map_parser/hypfer_handler.py,sha256=LpC2ez-XEioURzbOYlg89BKC7N21txKDe835rxBxcJs,18456
11
+ valetudo_map_parser/images_utils.py,sha256=0Baq48oncJy6Z_HxaRhMuknt3TMhBxl92BGDGhw-HYo,15262
12
+ valetudo_map_parser/map_data.py,sha256=qm1Zlfex0JrfhQsAKUOzsceZL0X92oAyGJ5Wvsq6YhA,19447
13
+ valetudo_map_parser/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ valetudo_map_parser/rand25_handler.py,sha256=gHVoD5SrgViXVoUQTKb0AImdh2kWfzaRPFtco1kt3_0,19566
15
+ valetudo_map_parser/reimg_draw.py,sha256=RpqPEjVOF0W2Ug7QhqB2ZI3KI_GBs9Sbo_7A7E9Lt_4,13307
16
+ valetudo_map_parser-0.1.9b4.dist-info/LICENSE,sha256=Lh-qBbuRV0-jiCIBhfV7NgdwFxQFOXH3BKOzK865hRs,10480
17
+ valetudo_map_parser-0.1.9b4.dist-info/METADATA,sha256=zqs2g9pQpNfMw2veVYffGtMc5r2v0Alb4AS7LXZYInM,1028
18
+ valetudo_map_parser-0.1.9b4.dist-info/NOTICE.txt,sha256=5lTOuWiU9aiEnJ2go8sc7lTJ7ntMBx0g0GFnNrswCY4,2533
19
+ valetudo_map_parser-0.1.9b4.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
20
+ valetudo_map_parser-0.1.9b4.dist-info/RECORD,,
@@ -1,20 +0,0 @@
1
- valetudo_map_parser/__init__.py,sha256=0pbU11Jz-SwqF-FkrZM4Kp5-LOWNSc_nIE91OE4iHm4,809
2
- valetudo_map_parser/config/__init__.py,sha256=DQ9plV3ZF_K25Dp5ZQHPDoG-40dQoJNdNi-dfNeR3Zc,48
3
- valetudo_map_parser/config/auto_crop.py,sha256=W8caSQf8Pwu3tCGgJJrF3dlEisM5pb2m0lg14PuAnV8,11016
4
- valetudo_map_parser/config/colors.py,sha256=HlgROKagpV7FP9LTU1IvhTKTYjnlBw1ZDMKHVJSct8M,6514
5
- valetudo_map_parser/config/drawable.py,sha256=8Fp4yqyFbsGvNyCEynYCTpiohRZk_plUSSOyHpECvj8,20356
6
- valetudo_map_parser/config/rand25_parser.py,sha256=yQz6RFS7w962MowYLoUZYgZ0tL_S6uutScnDR10V5ng,16265
7
- valetudo_map_parser/config/shared.py,sha256=8xYBUfKY-tiPhXaT5ttIasnCWL3_RLawIZeTValQC64,9462
8
- valetudo_map_parser/config/types.py,sha256=bVSEDE0ihrc01jG4fZ1_hUVtoj6hdkbqShytZ6wJwJY,16163
9
- valetudo_map_parser/hypfer_draw.py,sha256=R8JVrqPPavhj8exCDJKk1QsXgsB12cjy4AIgFffyQec,15773
10
- valetudo_map_parser/hypfer_handler.py,sha256=CTFF9O56_BBNWZadhvvS-e6U880nXtDdNtYgMcvxXXA,18453
11
- valetudo_map_parser/images_utils.py,sha256=0Baq48oncJy6Z_HxaRhMuknt3TMhBxl92BGDGhw-HYo,15262
12
- valetudo_map_parser/map_data.py,sha256=26lolgfj_XjguZgE8MwO7GMz4xt8SWzJsTiA1RbOq98,19596
13
- valetudo_map_parser/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- valetudo_map_parser/rand25_handler.py,sha256=gQZGWJbjbW3fldxl53JzeOlkx7jdxWpsVn-AhJ6t38I,19489
15
- valetudo_map_parser/reimg_draw.py,sha256=icyjy8To6jNIFzUCg6xA7hRliLZceFNeUjygqAJFCeU,13396
16
- valetudo_map_parser-0.1.9b2.dist-info/LICENSE,sha256=Lh-qBbuRV0-jiCIBhfV7NgdwFxQFOXH3BKOzK865hRs,10480
17
- valetudo_map_parser-0.1.9b2.dist-info/METADATA,sha256=9zy80BX81lh4y-Lc6XFAVt7KZTqq8Kk0NEzBFXouUlg,1028
18
- valetudo_map_parser-0.1.9b2.dist-info/NOTICE.txt,sha256=5lTOuWiU9aiEnJ2go8sc7lTJ7ntMBx0g0GFnNrswCY4,2533
19
- valetudo_map_parser-0.1.9b2.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
20
- valetudo_map_parser-0.1.9b2.dist-info/RECORD,,