tesla-fleet-api 1.2.2__tar.gz → 1.2.4__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.
Files changed (55) hide show
  1. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/PKG-INFO +1 -1
  2. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/pyproject.toml +1 -1
  3. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/__init__.py +1 -1
  4. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/fleet.py +6 -6
  5. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/oauth.py +9 -6
  6. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/teslemetry/teslemetry.py +4 -2
  7. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api.egg-info/PKG-INFO +1 -1
  8. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/LICENSE +0 -0
  9. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/README.md +0 -0
  10. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/setup.cfg +0 -0
  11. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/const.py +0 -0
  12. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/exceptions.py +0 -0
  13. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/__init__.py +0 -0
  14. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/bluetooth.py +0 -0
  15. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/charging.py +0 -0
  16. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/energysite.py +0 -0
  17. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/partner.py +0 -0
  18. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/tesla.py +0 -0
  19. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/user.py +0 -0
  20. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/__init__.py +0 -0
  21. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/bluetooth.py +0 -0
  22. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/commands.py +0 -0
  23. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/fleet.py +0 -0
  24. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/__init__.py +0 -0
  25. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/__init__.pyi +0 -0
  26. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/car_server_pb2.py +0 -0
  27. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/car_server_pb2.pyi +0 -0
  28. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/common_pb2.py +0 -0
  29. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/common_pb2.pyi +0 -0
  30. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/errors_pb2.py +0 -0
  31. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/errors_pb2.pyi +0 -0
  32. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/keys_pb2.py +0 -0
  33. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/keys_pb2.pyi +0 -0
  34. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/managed_charging_pb2.py +0 -0
  35. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/managed_charging_pb2.pyi +0 -0
  36. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/signatures_pb2.py +0 -0
  37. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/signatures_pb2.pyi +0 -0
  38. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/universal_message_pb2.py +0 -0
  39. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/universal_message_pb2.pyi +0 -0
  40. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/vcsec_pb2.py +0 -0
  41. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/vcsec_pb2.pyi +0 -0
  42. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/vehicle_pb2.py +0 -0
  43. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/proto/vehicle_pb2.pyi +0 -0
  44. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/signed.py +0 -0
  45. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/vehicle.py +0 -0
  46. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tesla/vehicle/vehicles.py +0 -0
  47. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/teslemetry/__init__.py +0 -0
  48. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/teslemetry/vehicles.py +0 -0
  49. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tessie/__init__.py +0 -0
  50. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tessie/tessie.py +0 -0
  51. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api/tessie/vehicles.py +0 -0
  52. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api.egg-info/SOURCES.txt +0 -0
  53. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api.egg-info/dependency_links.txt +0 -0
  54. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api.egg-info/requires.txt +0 -0
  55. {tesla_fleet_api-1.2.2 → tesla_fleet_api-1.2.4}/tesla_fleet_api.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tesla_fleet_api
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: Tesla Fleet API library for Python
5
5
  Author-email: Brett Adams <hello@teslemetry.com>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ requires = ["setuptools>=77.0"]
4
4
 
5
5
  [project]
6
6
  name = "tesla_fleet_api"
7
- version = "1.2.2"
7
+ version = "1.2.4"
8
8
  license = "Apache-2.0"
9
9
  description = "Tesla Fleet API library for Python"
10
10
  readme = "README.md"
@@ -1,7 +1,7 @@
1
1
  """Tesla Fleet API"""
2
2
 
3
3
  __author__ = "hello@teslemetry.com"
4
- __version__ = "1.2.2"
4
+ __version__ = "1.2.4"
5
5
 
6
6
  from tesla_fleet_api.tesla.fleet import TeslaFleetApi
7
7
  from tesla_fleet_api.tesla.bluetooth import TeslaBluetooth
@@ -1,7 +1,7 @@
1
1
  """Tesla Fleet API for Python."""
2
2
 
3
3
  from json import dumps
4
- from typing import Any, Awaitable, Callable
4
+ from typing import Any, Awaitable, Callable, Literal
5
5
  import aiohttp
6
6
 
7
7
  from tesla_fleet_api.tesla.tesla import Tesla
@@ -14,7 +14,6 @@ class TeslaFleetApi(Tesla):
14
14
  """Class describing the Tesla Fleet API."""
15
15
 
16
16
  access_token: str | None = None
17
- region: str | None = None
18
17
  server: str | None = None
19
18
  session: aiohttp.ClientSession
20
19
  headers: dict[str, str]
@@ -24,7 +23,7 @@ class TeslaFleetApi(Tesla):
24
23
  self,
25
24
  session: aiohttp.ClientSession,
26
25
  access_token: str | None = None,
27
- region: str | None = None,
26
+ region: Literal["na", "eu", "cn"] | None = None,
28
27
  server: str | None = None,
29
28
  charging_scope: bool = True,
30
29
  energy_scope: bool = True,
@@ -41,10 +40,11 @@ class TeslaFleetApi(Tesla):
41
40
 
42
41
  if server is not None:
43
42
  self.server = server
44
- elif region is not None:
45
- if region not in SERVERS:
46
- raise ValueError(f"Region must be one of {', '.join(SERVERS.keys())}")
43
+ elif region in SERVERS:
44
+ self.region = region
47
45
  self.server = SERVERS.get(region)
46
+ else:
47
+ raise ValueError(f"Region must be one of {', '.join(SERVERS.keys())}")
48
48
 
49
49
  LOGGER.debug("Using server %s", self.server)
50
50
 
@@ -1,4 +1,5 @@
1
- from typing import Any
1
+ from pickle import INT
2
+ from typing import Any, Literal
2
3
  import aiohttp
3
4
  import time
4
5
 
@@ -17,14 +18,13 @@ class TeslaFleetOAuth(TeslaFleetApi):
17
18
  def __init__(
18
19
  self,
19
20
  session: aiohttp.ClientSession,
21
+ region: Literal["na", "eu", "cn"],
20
22
  client_id: str,
21
23
  client_secret: str | None = None,
22
24
  redirect_uri: str | None = None,
23
25
  access_token: str | None = None,
24
26
  refresh_token: str | None = None,
25
27
  expires: int = 0,
26
- region: str | None = None,
27
- server: str | None = None,
28
28
  ):
29
29
  self.client_id = client_id
30
30
  self._client_secret = client_secret
@@ -37,14 +37,18 @@ class TeslaFleetOAuth(TeslaFleetApi):
37
37
  session,
38
38
  access_token="",
39
39
  region=region,
40
- server=server,
41
40
  )
42
41
 
43
42
  def get_login_url(self, scopes: list[Scope], state: str = "login") -> str:
44
43
  """Get the login URL."""
45
44
  if self.redirect_uri is None:
46
45
  raise ValueError("Redirect URI is missing")
47
- return f"https://auth.tesla.com/oauth2/v3/authorize?response_type=code&client_id={self.client_id}&redirect_uri={self.redirect_uri}&scope={'+'.join(scopes)}&state={state}"
46
+ if self.region == "cn":
47
+ domain = "auth.tesla.cn"
48
+ else:
49
+ domain = "auth.tesla.com"
50
+
51
+ return f"https://{domain}/oauth2/v3/authorize?response_type=code&client_id={self.client_id}&redirect_uri={self.redirect_uri}&scope={'+'.join(scopes)}&state={state}"
48
52
 
49
53
  async def get_refresh_token(self, code: str) -> None:
50
54
  """Get the refresh token."""
@@ -56,7 +60,6 @@ class TeslaFleetOAuth(TeslaFleetApi):
56
60
  raise ValueError("Redirect URI is missing")
57
61
 
58
62
  if self.server is None:
59
- self.region = code.split("_")[0].lower()
60
63
  self.server = SERVERS.get(self.region)
61
64
 
62
65
  async with self.session.post(
@@ -8,18 +8,20 @@ from tesla_fleet_api.tesla import TeslaFleetApi
8
8
 
9
9
  class Teslemetry(TeslaFleetApi):
10
10
 
11
- server = "https://api.teslemetry.com"
11
+
12
12
  Vehicles = TeslemetryVehicles
13
13
 
14
14
  def __init__(
15
15
  self,
16
16
  session: aiohttp.ClientSession,
17
17
  access_token: str,
18
+ server: str = "https://api.teslemetry.com"
18
19
  ):
19
20
  """Initialize the Teslemetry API."""
20
21
 
21
22
  self.session = session
22
23
  self.access_token = access_token
24
+ self.server = server
23
25
 
24
26
  self.charging = self.Charging(self)
25
27
  self.energySites = self.EnergySites(self)
@@ -56,7 +58,7 @@ class Teslemetry(TeslaFleetApi):
56
58
  )
57
59
  if update_region and "region" in resp:
58
60
  self.region = resp["region"].lower()
59
- #self.server = f"https://{self.region}.teslemetry.com"
61
+ self.server = f"https://{self.region}.teslemetry.com"
60
62
  LOGGER.debug("Using server %s", self.server)
61
63
  return resp
62
64
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tesla_fleet_api
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: Tesla Fleet API library for Python
5
5
  Author-email: Brett Adams <hello@teslemetry.com>
6
6
  License-Expression: Apache-2.0
File without changes