logs-py 3.0.10__py3-none-any.whl → 3.0.12__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.

Potentially problematic release.


This version of logs-py might be problematic. Click here for more details.

@@ -0,0 +1,33 @@
1
+ from typing import Optional
2
+
3
+ from LOGS.Entity.SerializableContent import SerializableContent
4
+
5
+
6
+ class AxisZoom(SerializableContent):
7
+ _x: Optional[list[float]] = None
8
+ _y: Optional[list[float]] = None
9
+ _z: Optional[list[float]] = None
10
+
11
+ @property
12
+ def x(self) -> Optional[list[float]]:
13
+ return self._x
14
+
15
+ @x.setter
16
+ def x(self, value):
17
+ self._x = self.checkListAndConvertNullable(value, float, "x")
18
+
19
+ @property
20
+ def y(self) -> Optional[list[float]]:
21
+ return self._y
22
+
23
+ @y.setter
24
+ def y(self, value):
25
+ self._y = self.checkListAndConvertNullable(value, float, "y")
26
+
27
+ @property
28
+ def z(self) -> Optional[list[float]]:
29
+ return self._z
30
+
31
+ @z.setter
32
+ def z(self, value):
33
+ self._z = self.checkListAndConvertNullable(value, float, "z")
LOGS/Entities/Dataset.py CHANGED
@@ -430,6 +430,14 @@ class Dataset(
430
430
 
431
431
  return self._requestReport(exportId, p)
432
432
 
433
+ def getTrackById(self, trackId: str) -> Optional[Track]:
434
+ if not self._tracks:
435
+ return None
436
+ for track in self._tracks:
437
+ if track.id == trackId:
438
+ return track
439
+ return None
440
+
433
441
  @property
434
442
  def format(self) -> Optional["FormatMinimal"]:
435
443
  return self._format
@@ -41,24 +41,36 @@ class DatatrackNumericMatrix(Datatrack):
41
41
  self.min[1] + index[1] * (self.max[1] - self.min[1]) / self.size[1],
42
42
  )
43
43
 
44
- def getIndex(self, coord: Tuple[float, float]):
44
+ def getIndex(
45
+ self, coord: Tuple[float, float], keepInBounds: bool = False
46
+ ) -> Tuple[int, int]:
45
47
  if self._incomplete:
46
48
  raise EntityIncompleteException(self)
47
49
  if self.min is None or self.max is None or self.size is None:
48
50
  raise ValueError("Datatrack has no min, max or size defined.")
49
51
 
50
- return (
52
+ index = (
51
53
  int((coord[0] - self.min[0]) * self.size[0] / (self.max[0] - self.min[0])),
52
54
  int((coord[1] - self.min[1]) * self.size[1] / (self.max[1] - self.min[1])),
53
55
  )
54
56
 
55
- def getValueFromCoordinate(self, coord: Tuple[float, float]):
57
+ if keepInBounds:
58
+ index = (
59
+ max(0, min(index[0], self.size[0] - 1)),
60
+ max(0, min(index[1], self.size[1] - 1)),
61
+ )
62
+
63
+ return index
64
+
65
+ def getValueFromCoordinate(
66
+ self, coord: Tuple[float, float], keepInBounds: bool = True
67
+ ):
56
68
  if self._incomplete:
57
69
  raise EntityIncompleteException(self)
58
70
  if self._data is None:
59
71
  return None
60
72
 
61
- return self.getValueFromIndex(self.getIndex(coord))
73
+ return self.getValueFromIndex(self.getIndex(coord, keepInBounds=keepInBounds))
62
74
 
63
75
  def getValueFromIndex(self, index: Tuple[int, int]):
64
76
  if self._incomplete:
@@ -1,6 +1,7 @@
1
1
  from typing import Optional
2
2
 
3
3
  from LOGS.Entities.AxisNaming import AxisNaming
4
+ from LOGS.Entities.AxisZoom import AxisZoom
4
5
  from LOGS.Entity.SerializableContent import SerializableContent
5
6
 
6
7
 
@@ -10,6 +11,8 @@ class TrackSettings(SerializableContent):
10
11
  _color: Optional[str] = None
11
12
  _axisUnits: Optional[AxisNaming] = None
12
13
  _axisLabels: Optional[AxisNaming] = None
14
+ _visible: Optional[bool] = None
15
+ _zoom: Optional[AxisZoom] = None
13
16
 
14
17
  @property
15
18
  def color(self) -> Optional[str]:
@@ -34,3 +37,19 @@ class TrackSettings(SerializableContent):
34
37
  @axisLabels.setter
35
38
  def axisLabels(self, value):
36
39
  self._axisLabels = self.checkAndConvertNullable(value, AxisNaming, "axisLabels")
40
+
41
+ @property
42
+ def visible(self) -> Optional[bool]:
43
+ return self._visible
44
+
45
+ @visible.setter
46
+ def visible(self, value):
47
+ self._visible = self.checkAndConvertNullable(value, bool, "visible")
48
+
49
+ @property
50
+ def zoom(self) -> Optional[AxisZoom]:
51
+ return self._zoom
52
+
53
+ @zoom.setter
54
+ def zoom(self, value):
55
+ self._zoom = self.checkAndConvertNullable(value, AxisZoom, "zoom")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logs-py
3
- Version: 3.0.10
3
+ Version: 3.0.12
4
4
  Summary: A python interface for the LOGS public API
5
5
  Home-page: https://docs.logs-python.com
6
6
  Author: Sina Kazemi
@@ -23,6 +23,7 @@ LOGS/Entities/AutoloadFileInfo.py,sha256=dcyTOLPmXUOStqslZ5YKZQx-PINSPQTW6FoOKDW
23
23
  LOGS/Entities/AutoloadStatus.py,sha256=6W58g1qISP1DXvEstNYpIB3XTSbhCDE9icOPsEH3G-8,669
24
24
  LOGS/Entities/AutoloadStatusError.py,sha256=WT4ScOhiNMarF604U7VyM6U5eym7M1HXiiWWnwS2icM,173
25
25
  LOGS/Entities/AxisNaming.py,sha256=g0fDZzz7zKcBvwg9r_tC0nj4q3GbnorjH4ZZE5VEqp0,746
26
+ LOGS/Entities/AxisZoom.py,sha256=1IPZRBXDp2uyz5qFgwS0pQII4wxtSHOhPSF9L4Sxtuk,810
26
27
  LOGS/Entities/Bridge.py,sha256=mQpc58zOR7hzXxHj6zPuEl-enxAqIXbYf5wDw_p1FN0,5179
27
28
  LOGS/Entities/BridgeMinimal.py,sha256=ADNhHqoHA9VhzaItBVeknRVRD-ASqEYEL2GTGB97oEM,241
28
29
  LOGS/Entities/BridgeRelations.py,sha256=nI6mqu_BIDt01tKHKyK38COHhpqrRHCi8wyy9Iyw0AU,650
@@ -53,7 +54,7 @@ LOGS/Entities/DataSourceRelations.py,sha256=eIszpHjZqz6v4WyhaPNu8efSzedsJLNrYR9b
53
54
  LOGS/Entities/DataSourceRequestParameter.py,sha256=zAfC61NvVt4XO3HhIy1PLViN3AEBJo7Q6Fa_EtyqNvA,1610
54
55
  LOGS/Entities/DataSourceStatus.py,sha256=LIMesU020i1clMiTxvO3hAoESf4B1-fXsDGMMtWLdsM,427
55
56
  LOGS/Entities/DataSources.py,sha256=UU5ey98_vX4WQknyWITMy-dPOV-wgjblXxu5uXpnVso,481
56
- LOGS/Entities/Dataset.py,sha256=qKIEGuIaBy5SFSzUAckBFk5ACm7xxsl8nVcu9gydQhk,27523
57
+ LOGS/Entities/Dataset.py,sha256=VFPccmTCEsMH-WKd-MyqA9bbGl4CeZxNNzMZ9lHClOM,27758
57
58
  LOGS/Entities/DatasetCreator.py,sha256=GJ2e0pcYt5ziVqREViBM_uq45K3rm3FG_3NqIOjrO3Y,3253
58
59
  LOGS/Entities/DatasetInfo.py,sha256=GVs9dxE2ufMfiuhgKXDcN-GEi2VrZPM1TMBLwtsfMU0,4972
59
60
  LOGS/Entities/DatasetMatchTypes.py,sha256=6C60F0GcioNyfRWIIh2XGQJokZxFdBZY9UpKv1y3M7w,4363
@@ -69,7 +70,7 @@ LOGS/Entities/DatatrackFormattedTable.py,sha256=B4KwRYzjwe4hjT3VOTucBJdBrO2awClI
69
70
  LOGS/Entities/DatatrackGeneric.py,sha256=wcaD3EK8RRxf5H7zrUM_iXl-g3P7Fbs1ce4LSlQG8ug,816
70
71
  LOGS/Entities/DatatrackImage.py,sha256=r_r0VKA7VgrIn7w21555VyVfkwPPHPCTi1WwAVLPb1w,616
71
72
  LOGS/Entities/DatatrackNumericArray.py,sha256=BLlGftpapXhLBpot_Wpt50JXiutG55zVB13yafGPGj4,795
72
- LOGS/Entities/DatatrackNumericMatrix.py,sha256=tsPFmzAS19P70vNhjn3M25PSyw893DyWOCxt5PZhGqI,2801
73
+ LOGS/Entities/DatatrackNumericMatrix.py,sha256=J4lrNQ5TAuEIRZ8U7Kyyn3TSVMm4qBOGwe4nye_qVQE,3129
73
74
  LOGS/Entities/Entities.py,sha256=jq1T_t6xtjcMdTJtr1JJqt45zFWIPiNEVEi-sC2Unz0,2614
74
75
  LOGS/Entities/EntitiesRequestParameter.py,sha256=3JdfvtYOfgzpe7RD5Q_-V6wa3iK_gHFHL5Soer0cqvE,358
75
76
  LOGS/Entities/EntityOriginWriteModelWithId.py,sha256=5H_KkeLnkRnZXCUnmO2ZqwuGRrgfQGa_coWPU6O86Uk,465
@@ -171,7 +172,7 @@ LOGS/Entities/TrackImage.py,sha256=o_7wqfiHStGS-O4TQBv4y1QBykQZ7Hq7aBbx05UbP4s,5
171
172
  LOGS/Entities/TrackImageData.py,sha256=XzKDTgbav0HOFw_YhMN_fJMchKSPj0rCDgfsQxWvwG8,515
172
173
  LOGS/Entities/TrackMatrix.py,sha256=-AKq_oYB1oWMmeDPRkzbSBwELCql0-RofIxOYEugYH8,850
173
174
  LOGS/Entities/TrackMatrixData.py,sha256=98bWgTOK82QkLcYs4n-flGrRTMbjI5OtcyfjbUo2kcc,587
174
- LOGS/Entities/TrackSettings.py,sha256=6o40E0aCD7PWRDU9vM8XrRGy7roaepC9TZ50rperaO0,1025
175
+ LOGS/Entities/TrackSettings.py,sha256=xY9h6pkUx8lSi4c8j-LwhcjM5khLSU_ZHHTTmt7WgeI,1558
175
176
  LOGS/Entities/TrackTable.py,sha256=QXnWvzvgHPi4Hsktadk4CrdKM1D2iUXb81bqVVBT9xE,587
176
177
  LOGS/Entities/TrackTableData.py,sha256=zAD4lwlLPrZUUEwMOKNXv5XpLzLaNXsH5GULx-T5jBU,583
177
178
  LOGS/Entities/TrackXY.py,sha256=klLXkgK9hkXdSIiTPbpGxnWoBf-fymOxJ4BJtcc97Cc,1332
@@ -254,7 +255,7 @@ LOGS/Parameters/ParameterElement.py,sha256=fr6AlO_flKRygZZFx1OILP4P-2lV2Tx4PAe6W
254
255
  LOGS/Parameters/ParameterList.py,sha256=ijukB1__iKI5cefmOIIWz0wKaPz9Cx8KpD7Y7Gz2Pn0,1478
255
256
  LOGS/Parameters/ParameterTable.py,sha256=7Lew4DPgWmKcpV1T-1Pvt00kEI05FB383QqO-LHAjds,1758
256
257
  LOGS/Parameters/__init__.py,sha256=KpMSuBPx964v2YMZ1BqVp8vjrgSpuiW9KYBm-aejRuc,312
257
- logs_py-3.0.10.dist-info/METADATA,sha256=fIkFhEJpvXtJ-ScAK7-6nE1JN_4O-tZqc4HZPP8E_rE,2340
258
- logs_py-3.0.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
259
- logs_py-3.0.10.dist-info/top_level.txt,sha256=Ckn2LiAmGaR7k3tdEnKAc04z_uboMD4gLreYghRNdCs,5
260
- logs_py-3.0.10.dist-info/RECORD,,
258
+ logs_py-3.0.12.dist-info/METADATA,sha256=OyQF_UaVSff1AssX_T3oHQ3vCci4x3b4XR1ZDMy_ZJY,2340
259
+ logs_py-3.0.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
260
+ logs_py-3.0.12.dist-info/top_level.txt,sha256=Ckn2LiAmGaR7k3tdEnKAc04z_uboMD4gLreYghRNdCs,5
261
+ logs_py-3.0.12.dist-info/RECORD,,