valetudo-map-parser 0.1.9b24__py3-none-any.whl → 0.1.9b25__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.
@@ -8,7 +8,7 @@ import logging
8
8
  import numpy as np
9
9
  from numpy import rot90
10
10
 
11
- from .types import Color, NumpyArray, TrimCropData
11
+ from .types import Color, NumpyArray, TrimCropData, TrimsData
12
12
 
13
13
 
14
14
  _LOGGER = logging.getLogger(__name__)
@@ -68,10 +68,10 @@ class AutoCrop:
68
68
  )
69
69
  return trimmed_width, trimmed_height
70
70
 
71
- async def _async_auto_crop_data(self, tdata=None): # , tdata=None
71
+ async def _async_auto_crop_data(self, tdata: TrimsData = None): # , tdata=None
72
72
  """Load the auto crop data from the Camera config."""
73
73
  if not self.imh.auto_crop:
74
- trims_data = TrimCropData.from_dict(dict(tdata)).to_list()
74
+ trims_data = TrimCropData.from_dict(dict(tdata.to_dict())).to_list()
75
75
  (
76
76
  self.imh.trim_left,
77
77
  self.imh.trim_up,
@@ -104,22 +104,9 @@ class CameraShared:
104
104
  self.map_old_path = None # Old path data
105
105
  self.user_language = None # User language
106
106
  self.trim_crop_data = None
107
- self.trims: Dict[TrimsData, int] = {
108
- TrimsData.TRIM_LEFT: 0,
109
- TrimsData.TRIM_UP: 0,
110
- TrimsData.TRIM_RIGHT: 0,
111
- TrimsData.TRIM_DOWN: 0,
112
- }
107
+ self.trims = TrimsData # Trims data
113
108
  self.skip_room_ids: List[str] = []
114
109
 
115
- def get_trims_dictionary(self):
116
- return {
117
- "trim_left": self.trims.get(TrimsData.TRIM_LEFT, 0),
118
- "trim_up": self.trims.get(TrimsData.TRIM_UP, 0),
119
- "trim_right": self.trims.get(TrimsData.TRIM_RIGHT, 0),
120
- "trim_down": self.trims.get(TrimsData.TRIM_DOWN, 0),
121
- }
122
-
123
110
  def update_user_colors(self, user_colors):
124
111
  """Update the user colors."""
125
112
  self.user_colors = user_colors
@@ -240,20 +227,9 @@ class CameraSharedManager:
240
227
  instance.enable_snapshots = device_info.get(
241
228
  CONF_SNAPSHOTS_ENABLE, DEFAULT_VALUES["enable_www_snapshots"]
242
229
  )
243
- instance.trims = {
244
- TrimsData.TRIM_LEFT: device_info.get(
245
- "trims_data", DEFAULT_VALUES["trims_data"]
246
- ).get("trim_left", 0),
247
- TrimsData.TRIM_UP: device_info.get(
248
- "trims_data", DEFAULT_VALUES["trims_data"]
249
- ).get("trim_up", 0),
250
- TrimsData.TRIM_RIGHT: device_info.get(
251
- "trims_data", DEFAULT_VALUES["trims_data"]
252
- ).get("trim_right", 0),
253
- TrimsData.TRIM_DOWN: device_info.get(
254
- "trims_data", DEFAULT_VALUES["trims_data"]
255
- ).get("trim_down", 0),
256
- }
230
+ instance.trims.from_dict(
231
+ device_info.get("trims_data", DEFAULT_VALUES["trims_data"])
232
+ )
257
233
 
258
234
  except TypeError as ex:
259
235
  _LOGGER.error("Shared data can't be initialized due to a TypeError! %s", ex)
@@ -6,7 +6,7 @@ Version 0.0.1
6
6
  import asyncio
7
7
  import json
8
8
  import logging
9
- from dataclasses import dataclass
9
+ from dataclasses import dataclass, asdict
10
10
  from enum import Enum
11
11
  from typing import Any, Dict, Tuple, Union
12
12
 
@@ -593,10 +593,30 @@ class CameraModes:
593
593
  CAMERA_ON = True
594
594
 
595
595
 
596
- class TrimsData(Enum):
597
- """Constants for the trims data."""
596
+ @dataclass
597
+ class TrimsData:
598
+ """Dataclass to store and manage trims data."""
599
+
600
+ trim_left: int = 0
601
+ trim_up: int = 0
602
+ trim_right: int = 0
603
+ trim_down: int = 0
598
604
 
599
- TRIM_LEFT = "trim_left"
600
- TRIM_UP = "trim_up"
601
- TRIM_RIGHT = "trim_right"
602
- TRIM_DOWN = "trim_down"
605
+ @classmethod
606
+ def from_json(cls, json_data: str):
607
+ """Create a TrimsConfig instance from a JSON string."""
608
+ data = json.loads(json_data)
609
+ return cls(
610
+ trim_left=data.get("trim_left", 0),
611
+ trim_up=data.get("trim_up", 0),
612
+ trim_right=data.get("trim_right", 0),
613
+ trim_down=data.get("trim_down", 0),
614
+ )
615
+
616
+ def to_json(self) -> str:
617
+ """Convert TrimsConfig instance to a JSON string."""
618
+ return json.dumps(asdict(self))
619
+
620
+ def to_dict(self) -> dict:
621
+ """Convert TrimsConfig instance to a dictionary."""
622
+ return asdict(self)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: valetudo-map-parser
3
- Version: 0.1.9b24
3
+ Version: 0.1.9b25
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
@@ -1,11 +1,11 @@
1
1
  valetudo_map_parser/__init__.py,sha256=Wmd20bdI1btzMq-0x8NxGYWskTjdUmD-Fem9MTfziwU,810
2
2
  valetudo_map_parser/config/__init__.py,sha256=DQ9plV3ZF_K25Dp5ZQHPDoG-40dQoJNdNi-dfNeR3Zc,48
3
- valetudo_map_parser/config/auto_crop.py,sha256=Vn3lbg_v8gbbe1F1tKOueaHF_qsIXCiiBORWIZmOG2k,10308
3
+ valetudo_map_parser/config/auto_crop.py,sha256=6YjxxTKwO-O3DKOBriNHo_HfmRIBkRJnVhGEUs7TakQ,10342
4
4
  valetudo_map_parser/config/colors.py,sha256=IzTT9JvF12YGGJxaTiEJRuwUdCCsFCLzsR9seCDfYWs,6515
5
5
  valetudo_map_parser/config/drawable.py,sha256=hsrEJCMVOrjs5sJfr26SeqJD0VNlYWwxcVkkHeaxx7U,20356
6
6
  valetudo_map_parser/config/rand25_parser.py,sha256=kIayyqVZBfQfAMkiArzqrrj9vqZB3pkgT0Y5ufrQmGA,16448
7
- valetudo_map_parser/config/shared.py,sha256=MrQ1dTcOK40reAWQE86OvN_FE8-sUJ9sOeHqNazAFMs,10723
8
- valetudo_map_parser/config/types.py,sha256=-tjuZ3skkf40G_BhzmB8pxFer1Sgb_c-JO6aLGSZoMU,16407
7
+ valetudo_map_parser/config/shared.py,sha256=Wfqisi13y4Xy8IY2yivAW8efEJ06w_nCvlSmfcoSUl0,9709
8
+ valetudo_map_parser/config/types.py,sha256=LVHrdDIUq-829RjITyccobcua1vKMnVCS_2KwKtzTxk,17044
9
9
  valetudo_map_parser/config/utils.py,sha256=8TBqH5jKr7wMM5dtWqnk5pPwZa_D0ApOpmdZUaqiRl8,18679
10
10
  valetudo_map_parser/hypfer_draw.py,sha256=1trtil-CQcDSiAMBWPBmuP5L9MWHGTp5OlY7MX8FgDg,14932
11
11
  valetudo_map_parser/hypfer_handler.py,sha256=yxjDq4dIjJQVuK3Gv93QW9LQrRuKBG4TXIKSqiwZaCI,13790
@@ -13,8 +13,8 @@ valetudo_map_parser/map_data.py,sha256=6FbQfgxFB6E4kcOWokReJOVSekVaE1kStyhTQhAhi
13
13
  valetudo_map_parser/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  valetudo_map_parser/rand25_handler.py,sha256=wn0CbjXwznqKpnR400HbImQtfLWRXTRRtfRqaQqFzU4,15693
15
15
  valetudo_map_parser/reimg_draw.py,sha256=V0JUASavKVnEtAhv7nOV4pjsRxZrNsjIUtctbKO8wvk,12507
16
- valetudo_map_parser-0.1.9b24.dist-info/LICENSE,sha256=Lh-qBbuRV0-jiCIBhfV7NgdwFxQFOXH3BKOzK865hRs,10480
17
- valetudo_map_parser-0.1.9b24.dist-info/METADATA,sha256=SMSX6FilINyKlUWEsJlsygZTBfXfKCQ-xbZlnIKyCEk,1029
18
- valetudo_map_parser-0.1.9b24.dist-info/NOTICE.txt,sha256=5lTOuWiU9aiEnJ2go8sc7lTJ7ntMBx0g0GFnNrswCY4,2533
19
- valetudo_map_parser-0.1.9b24.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
20
- valetudo_map_parser-0.1.9b24.dist-info/RECORD,,
16
+ valetudo_map_parser-0.1.9b25.dist-info/LICENSE,sha256=Lh-qBbuRV0-jiCIBhfV7NgdwFxQFOXH3BKOzK865hRs,10480
17
+ valetudo_map_parser-0.1.9b25.dist-info/METADATA,sha256=OzQEDbQoIxtup4ufDxHOrjtqHpOuRqbjuxT5nJTI_cw,1029
18
+ valetudo_map_parser-0.1.9b25.dist-info/NOTICE.txt,sha256=5lTOuWiU9aiEnJ2go8sc7lTJ7ntMBx0g0GFnNrswCY4,2533
19
+ valetudo_map_parser-0.1.9b25.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
20
+ valetudo_map_parser-0.1.9b25.dist-info/RECORD,,