teslemetry-stream 0.2.2__tar.gz → 0.3.0__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: teslemetry_stream
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: Teslemetry Streaming API library for Python
5
5
  Home-page: https://github.com/Teslemetry/teslemetry_stream
6
6
  Author: Brett Adams
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="teslemetry_stream",
8
- version="0.2.2",
8
+ version="0.3.0",
9
9
  author="Brett Adams",
10
10
  author_email="hello@teslemetry.com",
11
11
  description="Teslemetry Streaming API library for Python",
@@ -8,7 +8,7 @@ from .const import TelemetryFields, TelemetryAlerts
8
8
 
9
9
 
10
10
  LOGGER = logging.getLogger(__package__)
11
- DELAY = 10
11
+ DELAY = 1
12
12
 
13
13
 
14
14
  class TeslemetryStreamError(Exception):
@@ -32,11 +32,17 @@ class TeslemetryStreamVehicleNotConfigured(TeslemetryStreamError):
32
32
  message = "This vehicle is not configured to connect to Teslemetry."
33
33
 
34
34
 
35
+ class TeslemetryStreamEnded(TeslemetryStreamError):
36
+ """Teslemetry Stream Connection Error"""
37
+
38
+ message = "The stream was ended by the server."
39
+
40
+
35
41
  class TeslemetryStream:
36
42
  """Teslemetry Stream Client"""
37
43
 
38
- fields: dict[TelemetryFields, dict[str, int]]
39
- alerts: list[TelemetryAlerts]
44
+ fields: dict[TelemetryFields, dict[str, int]] | None = None
45
+ alerts: list[TelemetryAlerts] | None = None
40
46
  _response: aiohttp.ClientResponse | None = None
41
47
  _listeners: dict[Callable, Callable] = {}
42
48
  delay = DELAY
@@ -192,15 +198,16 @@ class TeslemetryStream:
192
198
  .replace(tzinfo=timezone.utc)
193
199
  .timestamp()
194
200
  ) * 1000 + int(ns[:3])
195
- LOGGER.debug("event %s", json.dumps(data))
201
+ # LOGGER.debug("event %s", json.dumps(data))
196
202
  self.delay = DELAY
197
203
  return data
198
- except aiohttp.ClientError as error:
204
+ raise TeslemetryStreamEnded()
205
+ except (TeslemetryStreamEnded, aiohttp.ClientError) as error:
199
206
  LOGGER.warning("Connection error: %s", error)
200
207
  self.close()
201
208
  LOGGER.debug("Reconnecting in %s seconds", self.delay)
202
209
  await asyncio.sleep(self.delay)
203
- self.delay += DELAY
210
+ self.delay += self.delay
204
211
 
205
212
  def async_add_listener(
206
213
  self, callback: Callable, filters: dict | None = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: teslemetry_stream
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: Teslemetry Streaming API library for Python
5
5
  Home-page: https://github.com/Teslemetry/teslemetry_stream
6
6
  Author: Brett Adams