From 68f52d703b06091c52ba5a93576e5789f0eaf27e Mon Sep 17 00:00:00 2001 From: Brett Adams Date: Sun, 23 Aug 2026 16:54:21 +1000 Subject: [PATCH] chore: untrack teslemetry_stream.egg-info build artifacts Ignore *.egg-info/ so a local build no longer dirties the working tree. --- .gitignore | 3 +- teslemetry_stream.egg-info/PKG-INFO | 215 ------------------ teslemetry_stream.egg-info/SOURCES.txt | 14 -- .../dependency_links.txt | 1 - teslemetry_stream.egg-info/requires.txt | 1 - teslemetry_stream.egg-info/top_level.txt | 1 - 6 files changed, 2 insertions(+), 233 deletions(-) delete mode 100644 teslemetry_stream.egg-info/PKG-INFO delete mode 100644 teslemetry_stream.egg-info/SOURCES.txt delete mode 100644 teslemetry_stream.egg-info/dependency_links.txt delete mode 100644 teslemetry_stream.egg-info/requires.txt delete mode 100644 teslemetry_stream.egg-info/top_level.txt diff --git a/.gitignore b/.gitignore index fcd1db4..00b7f8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ test.py *.pyc -__pycache__ \ No newline at end of file +__pycache__ +*.egg-info/ \ No newline at end of file diff --git a/teslemetry_stream.egg-info/PKG-INFO b/teslemetry_stream.egg-info/PKG-INFO deleted file mode 100644 index 3f7f80a..0000000 --- a/teslemetry_stream.egg-info/PKG-INFO +++ /dev/null @@ -1,215 +0,0 @@ -Metadata-Version: 2.4 -Name: teslemetry_stream -Version: 0.8.2 -Summary: Teslemetry Streaming API library for Python -Author-email: Brett Adams -License-Expression: Apache-2.0 -Project-URL: Source code, https://github.com/Teslemetry/teslemetry_stream -Classifier: Development Status :: 4 - Beta -Classifier: Programming Language :: Python :: 3 -Classifier: Operating System :: OS Independent -Requires-Python: >=3.9 -Description-Content-Type: text/markdown -License-File: LICENSE -Requires-Dist: aiohttp -Dynamic: license-file - -# Teslemetry Stream Library -This is an asynchronous Python 3 library that connects to the Teslemetry Stream service and provides Tesla Fleet Telemetry using server sent events. The library allows you to listen to various telemetry signals from Tesla vehicles, and provides a convenient way to handle these signals using typed listen methods. - -## Capabilities -- Connect to the Teslemetry Stream service -- Listen to various telemetry signals from Tesla vehicles -- Handle signals using typed listen methods -- Write custom listeners for multiple signals - -## Installation - -`pip install teslemetry-stream` - -## Usage - -The TeslemetryStream class requires: - -- session: an aiohttp.ClientSession -- access_token: an access token from the [Teslemetry console](https://teslemetry.com/console) -- vin: If you only want to use a single vehicle, otherwise use `create_vehicle` -- server: Override the Teslemetry server to connect to: - - api.teslemetry.com (recommended and default) - - na.teslemetry.com - - eu.teslemetry.com - -The full list of possible values are provided in `TelemetryFields` and `TelemetryAlerts` - -To connect, either use `async with` on the instance, call `connect()`, or register an callback with `async_add_listener`, which will connect when added and disconnect when removed. - -Using `connect()` or `listen()` will require you to close the session manually using `close()`. - -## Example -The following example puts the listening loop in the background, then stopping after 20 seconds. -``` -async def main(): - async with aiohttp.ClientSession() as session: - async with TeslemetryStream( - access_token="", - vin="", # for single vehicles - server="na.teslemetry.com" # or "eu.teslemetry.com" - session=session, - ) as stream: - - def callback(event): - print(event["data"]) - - remove = stream.async_add_listener(callback) - - print("Running") - await asyncio.sleep(60) - remove() -``` - -## Using Typed Listen Methods - -The library provides typed listen methods for various telemetry signals. These methods allow you to listen to specific signals and handle their data in a type-safe manner. Here is an example of using the typed listen methods: - -```python -async def main(): - async with aiohttp.ClientSession() as session: - async with TeslemetryStream( - access_token="", - vin="", # for single vehicles - session=session, - ) as stream: - - vehicle = stream.get_vehicle("") - - def battery_level_callback(battery_level): - print(f"Battery Level: {battery_level}") - - def vehicle_speed_callback(vehicle_speed): - print(f"Vehicle Speed: {vehicle_speed}") - - remove_battery_level_listener = vehicle.listen_BatteryLevel(battery_level_callback) - remove_vehicle_speed_listener = vehicle.listen_VehicleSpeed(vehicle_speed_callback) - - print("Running") - await asyncio.sleep(60) - remove_battery_level_listener() - remove_vehicle_speed_listener() -``` - -## Writing Your Own Listener with Multiple Signals - -You can also write your own listener that listens to multiple signals. Here is an example of writing a custom listener: - -```python -async def main(): - async with aiohttp.ClientSession() as session: - stream = TeslemetryStream( - access_token="", - vin="", # for single vehicles - server="na.teslemetry.com" # or "eu.teslemetry.com" - session=session, - ) - - await stream.connect() - - vehicle = stream.get_vehicle("") - - def custom_listener(event): - if "BatteryLevel" in event["data"]: - print(f"Battery Level: {event['data']['BatteryLevel']}") - if "VehicleSpeed" in event["data"]: - print(f"Vehicle Speed: {event['data']['VehicleSpeed']}") - - remove_custom_listener = stream.async_add_listener(custom_listener, {"vin": "", "data": {"BatteryLevel": None, "VehicleSpeed": None}}) - - print("Running") - await asyncio.sleep(60) - remove_custom_listener() - - await stream.close() -``` - -## Public Methods in TeslemetryStream Class - -### `__init__(session: aiohttp.ClientSession, access_token: str, server: str | None = None, vin: str | None = None, parse_timestamp: bool = False)` -Initialize the TeslemetryStream client. - -### `get_vehicle(vin: str) -> TeslemetryStreamVehicle` -Create a vehicle object to manage config and create listeners. - -### `connected -> bool` -Return if connected. - -### `get_config(vin: str | None = None) -> None` -Get the current stream config. - -### `find_server(self) -> None` -Find the server using metadata. - -### `update_fields(fields: dict, vin: str) -> dict` -Modify the Fleet Telemetry configuration. - -### `replace_fields(fields: dict, vin: str) -> dict` -Replace the Fleet Telemetry configuration. - -### `config(self) -> dict` -Return current configuration. - -### `connect(self) -> None` -Connect to the telemetry stream. - -### `close(self) -> None` -Close connection. - -### `async_add_listener(callback: Callable, filters: dict | None = None) -> Callable[[], None]` -Add listener for data updates. - -### `listen(self)` -Listen to the telemetry stream. - -### `listen_Credits(callback: Callable[[dict[str, str | int]], None]) -> Callable[[], None]` -Add listener for credit events. - -### `listen_Balance(callback: Callable[[int], None]) -> Callable[[], None]` -Add listener for credit balance. - -## Public Methods in TeslemetryStreamVehicle Class - -### `__init__(stream: TeslemetryStream, vin: str)` -Initialize the TeslemetryStreamVehicle instance. - -### `get_config(self) -> None` -Get the current vehicle config. - -### `update_fields(fields: dict) -> dict` -Update Fleet Telemetry configuration for the vehicle. - -### `replace_fields(fields: dict) -> dict` -Replace Fleet Telemetry configuration for the vehicle. - -### `config(self) -> dict` -Return current configuration for the vehicle. - -### `listen_State(callback: Callable[[bool], None]) -> Callable[[],None]` -Listen for vehicle online state polling. The callback receives a boolean value representing whether the vehicle is online. - -### `listen_VehicleData(callback: Callable[[dict], None]) -> Callable[[],None]` -Listen for vehicle data polling events. The callback receives a dictionary containing the complete vehicle data. - -### `listen_Cellular(callback: Callable[[bool], None]) -> Callable[[],None]` -Listen for cellular connectivity events. The callback receives a boolean value indicating whether the cellular connection is established. - -### `listen_Wifi(callback: Callable[[bool], None]) -> Callable[[],None]` -Listen for WiFi connectivity events. The callback receives a boolean value indicating whether the WiFi connection is established. - -### `listen_Alerts(callback: Callable[[list[dict]], None]) -> Callable[[],None]` -Listen for vehicle alert events. The callback receives a list of dictionaries containing alert information. - -### `listen_Errors(callback: Callable[[list[dict]], None]) -> Callable[[],None]` -Listen for vehicle error events. The callback receives a list of dictionaries containing error information. - -### `listen_*` Methods -The `TeslemetryStreamVehicle` class contains a `listen_*` methods for each telemetry signal. -These methods allow you to listen to specific signals and handle their data in a type-safe manner. -A full list of fields and metadata can be found at [api.teslemetry.com/fields.json](https://api.teslemetry.com/fields.json) diff --git a/teslemetry_stream.egg-info/SOURCES.txt b/teslemetry_stream.egg-info/SOURCES.txt deleted file mode 100644 index baf35d1..0000000 --- a/teslemetry_stream.egg-info/SOURCES.txt +++ /dev/null @@ -1,14 +0,0 @@ -LICENSE -README.md -pyproject.toml -teslemetry_stream/__init__.py -teslemetry_stream/const.py -teslemetry_stream/exception.py -teslemetry_stream/py.typed -teslemetry_stream/stream.py -teslemetry_stream/vehicle.py -teslemetry_stream.egg-info/PKG-INFO -teslemetry_stream.egg-info/SOURCES.txt -teslemetry_stream.egg-info/dependency_links.txt -teslemetry_stream.egg-info/requires.txt -teslemetry_stream.egg-info/top_level.txt \ No newline at end of file diff --git a/teslemetry_stream.egg-info/dependency_links.txt b/teslemetry_stream.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/teslemetry_stream.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/teslemetry_stream.egg-info/requires.txt b/teslemetry_stream.egg-info/requires.txt deleted file mode 100644 index ee4ba4f..0000000 --- a/teslemetry_stream.egg-info/requires.txt +++ /dev/null @@ -1 +0,0 @@ -aiohttp diff --git a/teslemetry_stream.egg-info/top_level.txt b/teslemetry_stream.egg-info/top_level.txt deleted file mode 100644 index a984e96..0000000 --- a/teslemetry_stream.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -teslemetry_stream