tesla-fleet-api 0.8.2__py3-none-any.whl → 0.8.3__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.
tesla_fleet_api/const.py CHANGED
@@ -3,7 +3,7 @@
3
3
  from enum import Enum
4
4
  import logging
5
5
 
6
- VERSION = "0.8.2"
6
+ VERSION = "0.8.3"
7
7
  LOGGER = logging.getLogger(__package__)
8
8
  SERVERS = {
9
9
  "na": "https://fleet-api.prd.na.vn.cloud.tesla.com",
@@ -30,7 +30,7 @@ class TeslaFleetApi:
30
30
  session: aiohttp.ClientSession
31
31
  headers: dict[str, str]
32
32
  refresh_hook: Awaitable | None = None
33
- _private_key: ec.EllipticCurvePrivateKey | None = None
33
+ private_key: ec.EllipticCurvePrivateKey | None = None
34
34
 
35
35
  def __init__(
36
36
  self,
@@ -164,11 +164,11 @@ class TeslaFleetApi:
164
164
  async def get_private_key(self, path: str = "private_key.pem") -> ec.EllipticCurvePrivateKey:
165
165
  """Get or create the private key."""
166
166
  if not exists(path):
167
- self._private_key = ec.generate_private_key(
167
+ self.private_key = ec.generate_private_key(
168
168
  ec.SECP256R1(), default_backend()
169
169
  )
170
170
  # save the key
171
- pem = self._private_key.private_bytes(
171
+ pem = self.private_key.private_bytes(
172
172
  encoding=serialization.Encoding.PEM,
173
173
  format=serialization.PrivateFormat.TraditionalOpenSSL,
174
174
  encryption_algorithm=serialization.NoEncryption(),
@@ -189,5 +189,10 @@ class TeslaFleetApi:
189
189
 
190
190
  if not isinstance(value, ec.EllipticCurvePrivateKey):
191
191
  raise AssertionError("Loaded key is not an EllipticCurvePrivateKey")
192
- self._private_key = value
193
- return self._private_key
192
+ self.private_key = value
193
+ return self.private_key
194
+
195
+ @property
196
+ def has_private_key(self) -> bool:
197
+ """Check if the private key has been set."""
198
+ return self.private_key is not None
@@ -154,7 +154,7 @@ class Session:
154
154
  class VehicleSigned(VehicleSpecific):
155
155
  """Class describing the Tesla Fleet API vehicle endpoints and commands for a specific vehicle with command signing."""
156
156
 
157
- _private_key: ec.EllipticCurvePrivateKey
157
+ private_key: ec.EllipticCurvePrivateKey
158
158
  _public_key: bytes
159
159
  _from_destination: bytes
160
160
  _sessions: dict[int, Session]
@@ -164,13 +164,13 @@ class VehicleSigned(VehicleSpecific):
164
164
  ):
165
165
  super().__init__(parent, vin)
166
166
  if key:
167
- self._private_key = key
168
- elif parent._parent._private_key:
169
- self._private_key = parent._parent._private_key
167
+ self.private_key = key
168
+ elif parent._parent.private_key:
169
+ self.private_key = parent._parent.private_key
170
170
  else:
171
171
  raise ValueError("No private key.")
172
172
 
173
- self._public_key = self._private_key.public_key().public_bytes(
173
+ self._public_key = self.private_key.public_key().public_bytes(
174
174
  encoding=Encoding.X962, format=PublicFormat.UncompressedPoint
175
175
  )
176
176
  self._from_destination = randbytes(16)
@@ -200,7 +200,7 @@ class VehicleSigned(VehicleSpecific):
200
200
  vehicle_public_key = info.publicKey
201
201
 
202
202
  # Derive shared key from private key _key and vehicle public key
203
- shared = self._private_key.exchange(
203
+ shared = self.private_key.exchange(
204
204
  ec.ECDH(),
205
205
  ec.EllipticCurvePublicKey.from_encoded_point(
206
206
  ec.SECP256R1(), vehicle_public_key
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tesla_fleet_api
3
- Version: 0.8.2
3
+ Version: 0.8.3
4
4
  Summary: Tesla Fleet API library for Python
5
5
  Home-page: https://github.com/Teslemetry/tesla_fleet_api
6
6
  Author: Brett Adams
@@ -1,19 +1,19 @@
1
1
  tesla_fleet_api/__init__.py,sha256=BVZUDsfaxT05tAfcMHHWiyFyXwmDOx_wP_IHZBscgho,729
2
2
  tesla_fleet_api/charging.py,sha256=N_mc8axrXj3iduqLj_jCt4Vx86tHqe3xqQT4R1R7HvU,1689
3
- tesla_fleet_api/const.py,sha256=UqD-Vof5Dv7VkJZ7Qe4DgwVYlhiEBzM1V-Qzxde_6Aw,9577
3
+ tesla_fleet_api/const.py,sha256=jPBw9t-WqBbyAuzvEL9mG6Z0dSmftr9nTDJXj7Y_PiU,9577
4
4
  tesla_fleet_api/energy.py,sha256=S7D75MPuMVsHgkyUcFfMqjGCLZBM5YVFlWLEHbaX-zw,5957
5
5
  tesla_fleet_api/energyspecific.py,sha256=UfeaGE59aoAa8UhpQCXUi0sOrNCA40xZlqwF73BXTVY,4254
6
6
  tesla_fleet_api/exceptions.py,sha256=zl8m4Z51ihVD5cKYSZ8e6heerArF0j5isQmX-gSdkwM,15456
7
7
  tesla_fleet_api/partner.py,sha256=1vIBUaxKLIfqcC0X6VXZN0dMAzj_CLNPUMjA6QVqZ1k,1223
8
8
  tesla_fleet_api/ratecalculator.py,sha256=4lz8yruUeouHXh_3ezsXX-CTpIegp1T1J4VuRV_qdHA,1791
9
- tesla_fleet_api/teslafleetapi.py,sha256=zEu47xLopPfkpqE5nx2rf9eqZuZFii1jjXsOgay6Q3A,7229
9
+ tesla_fleet_api/teslafleetapi.py,sha256=vr6qRb1oa7Y4NtstGJoxRh7DbeZS1nw7AAaVgMINMXA,7375
10
10
  tesla_fleet_api/teslafleetoauth.py,sha256=OY9yRQuokYo3ts0C8Qb6Z-o9NNAGHbX9F5mHfAh50fo,4121
11
11
  tesla_fleet_api/teslafleetopensource.py,sha256=TJfVPcqJlA1b3kMoGuLr-g5Gn8UDyYsTZhjvGY1MtIk,2007
12
12
  tesla_fleet_api/teslemetry.py,sha256=Rl73BWYYJk1UWIhCPwywcXGRlkATYZrPz3LP-Covppw,3272
13
13
  tesla_fleet_api/tessie.py,sha256=4dBYxe1G2v9JvJGRbb01wXrAmvWT4jOfV4f_VQE_vkE,2302
14
14
  tesla_fleet_api/user.py,sha256=TZE2oh-n5zrhKXmGRuiNL9voKVODD7rBhGE_IObYVGA,1179
15
15
  tesla_fleet_api/vehicle.py,sha256=W5Y_ok5PK7jtXsenWpMWJTS4RpLhRW-1AlTPv1a6R6A,31765
16
- tesla_fleet_api/vehiclesigned.py,sha256=vQ5luKjfpFAjnLBpJhOrUfdDDa24AEwKLRrf82bRQWs,39167
16
+ tesla_fleet_api/vehiclesigned.py,sha256=10O2IcQD336utDzUChFrtwNFxo2Q2ID41dn9k-Y6A-Q,39160
17
17
  tesla_fleet_api/vehiclespecific.py,sha256=Nr4zZzfmIuw3RFYjQEX6c_xtYZgztMsN5ohVn-YEH0I,20600
18
18
  tesla_fleet_api/pb2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  tesla_fleet_api/pb2/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -25,8 +25,8 @@ tesla_fleet_api/pb2/signatures_pb2.py,sha256=5mdJUC8EC8kx1UxYrHK5XI3_7M6v7w2POH1
25
25
  tesla_fleet_api/pb2/universal_message_pb2.py,sha256=F6-SkYXSuzWDsBvnGMg9k2pAIZv13v609qCPx7NSrdw,7254
26
26
  tesla_fleet_api/pb2/vcsec_pb2.py,sha256=CMJ97e4Mm4p7NFcgybbCC2KJRcvtrcqmBy_pGycYhMo,26238
27
27
  tesla_fleet_api/pb2/vehicle_pb2.py,sha256=P1V7Dqg3BBGZwODxTpZqtxLP6fGS_FNBqJcz_Fp0crs,2482
28
- tesla_fleet_api-0.8.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
29
- tesla_fleet_api-0.8.2.dist-info/METADATA,sha256=sNmh6uj5rzAIUbXzR5hoLenHTKsNy-xXgrMRwcrUmbc,3821
30
- tesla_fleet_api-0.8.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
31
- tesla_fleet_api-0.8.2.dist-info/top_level.txt,sha256=jeNbog_1saXBFrGpom9WyPWmilxsyP3szL_G7JLWQfM,16
32
- tesla_fleet_api-0.8.2.dist-info/RECORD,,
28
+ tesla_fleet_api-0.8.3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
29
+ tesla_fleet_api-0.8.3.dist-info/METADATA,sha256=n13nIO19R4285XWPBnX-cN6GWu4xbKNami9ccsjNOpo,3821
30
+ tesla_fleet_api-0.8.3.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
31
+ tesla_fleet_api-0.8.3.dist-info/top_level.txt,sha256=jeNbog_1saXBFrGpom9WyPWmilxsyP3szL_G7JLWQfM,16
32
+ tesla_fleet_api-0.8.3.dist-info/RECORD,,