11"""Tesla Fleet API for Python."""
22
33from json import dumps
4- from typing import Any , Awaitable , Callable , Literal , TYPE_CHECKING
4+ from typing import TYPE_CHECKING , Any , Awaitable , Callable , Literal
55
66import aiohttp
77
2828class TeslaFleetApi (Tesla ):
2929 """Class describing the Tesla Fleet API."""
3030
31- access_token : str | Callable [[], Awaitable [str | None ]] | None
31+ _access_token : str | Callable [[], Awaitable [str | None ]] | None
3232 server : str | None = None
3333 session : aiohttp .ClientSession
34- headers : dict [str , str ]
3534 charging : "Charging"
3635 energySites : "EnergySites"
3736 user : "User"
@@ -40,8 +39,8 @@ class TeslaFleetApi(Tesla):
4039
4140 def __init__ (
4241 self ,
43- session : aiohttp .ClientSession ,
44- access_token : str | Callable [[], Awaitable [str | None ]] | None ,
42+ session : aiohttp .ClientSession | None ,
43+ access_token : str | Callable [[], Awaitable [str | None ]] | None = None ,
4544 region : Literal ["na" , "eu" , "cn" ] | None = None ,
4645 server : str | None = None ,
4746 charging_scope : bool = True ,
@@ -52,9 +51,8 @@ def __init__(
5251 ):
5352 """Initialize the Tesla Fleet API."""
5453
55- self .session = session
56- self .access_token = access_token
57- self .headers = {}
54+ self .session = session or aiohttp .ClientSession ()
55+ self ._access_token = access_token
5856
5957 if server is not None :
6058 self .server = server
@@ -92,12 +90,12 @@ async def find_server(self) -> str:
9290 continue
9391 raise LibraryError ("Could not find a valid Tesla API server." )
9492
95- async def _access_token (self ) -> str :
93+ async def access_token (self ) -> str :
9694 """Get the access token for the Tesla Fleet API."""
97- if callable (self .access_token ):
98- token = await self .access_token ()
95+ if callable (self ._access_token ):
96+ token = await self ._access_token ()
9997 else :
100- token = self .access_token
98+ token = self ._access_token
10199
102100 if token is None :
103101 raise MissingToken
@@ -118,7 +116,7 @@ async def _request(
118116 if method == Method .GET :
119117 json = None
120118
121- access_token = await self ._access_token ()
119+ access_token = await self .access_token ()
122120
123121 headers = {
124122 "Authorization" : f"Bearer { access_token } " ,
@@ -213,7 +211,7 @@ async def partner_login(
213211 if resp .ok :
214212 token_data = await resp .json ()
215213 # Set the access token for subsequent API calls
216- self .access_token = token_data ["access_token" ]
214+ self ._access_token = token_data ["access_token" ]
217215 return token_data
218216 else :
219217 error_data = await resp .json ()
0 commit comments