44from functools import partial
55from json import loads
66from time import time
7- from typing import Callable , Dict , List , Optional , Tuple , Union
7+ from typing import Callable , Dict , List , Optional , Tuple
88from urllib .parse import parse_qs , urlencode , urlparse
99from uuid import uuid4
1010
@@ -87,13 +87,13 @@ class AsyncGoTrueClient(AsyncGoTrueBaseAPI):
8787 def __init__ (
8888 self ,
8989 * ,
90- url : Union [str , None ] = None ,
91- headers : Union [Dict [str , str ], None ] = None ,
92- storage_key : Union [str , None ] = None ,
90+ url : Optional [str ] = None ,
91+ headers : Optional [Dict [str , str ]] = None ,
92+ storage_key : Optional [str ] = None ,
9393 auto_refresh_token : bool = True ,
9494 persist_session : bool = True ,
95- storage : Union [AsyncSupportedStorage , None ] = None ,
96- http_client : Union [AsyncClient , None ] = None ,
95+ storage : Optional [AsyncSupportedStorage ] = None ,
96+ http_client : Optional [AsyncClient ] = None ,
9797 flow_type : AuthFlowType = "implicit" ,
9898 verify : bool = True ,
9999 proxy : Optional [str ] = None ,
@@ -110,8 +110,8 @@ def __init__(
110110 self ._auto_refresh_token = auto_refresh_token
111111 self ._persist_session = persist_session
112112 self ._storage = storage or AsyncMemoryStorage ()
113- self ._in_memory_session : Union [Session , None ] = None
114- self ._refresh_token_timer : Union [Timer , None ] = None
113+ self ._in_memory_session : Optional [Session ] = None
114+ self ._refresh_token_timer : Optional [Timer ] = None
115115 self ._network_retries = 0
116116 self ._state_change_emitters : Dict [str , Subscription ] = {}
117117 self ._flow_type = flow_type
@@ -134,7 +134,7 @@ def __init__(
134134
135135 # Initializations
136136
137- async def initialize (self , * , url : Union [str , None ] = None ) -> None :
137+ async def initialize (self , * , url : Optional [str ] = None ) -> None :
138138 if url and self ._is_implicit_grant_flow (url ):
139139 await self .initialize_from_url (url )
140140 else :
@@ -158,7 +158,7 @@ async def initialize_from_url(self, url: str) -> None:
158158 # Public methods
159159
160160 async def sign_in_anonymously (
161- self , credentials : Union [SignInAnonymouslyCredentials , None ] = None
161+ self , credentials : Optional [SignInAnonymouslyCredentials ] = None
162162 ) -> AuthResponse :
163163 """
164164 Creates a new anonymous user.
@@ -591,14 +591,14 @@ async def reauthenticate(self) -> AuthResponse:
591591 xform = parse_auth_response ,
592592 )
593593
594- async def get_session (self ) -> Union [Session , None ]:
594+ async def get_session (self ) -> Optional [Session ]:
595595 """
596596 Returns the session, refreshing it if necessary.
597597
598598 The session returned can be null if the session is not detected which
599599 can happen in the event a user is not signed-in or has logged out.
600600 """
601- current_session : Union [Session , None ] = None
601+ current_session : Optional [Session ] = None
602602 if self ._persist_session :
603603 maybe_session = await self ._storage .get_item (self ._storage_key )
604604 current_session = self ._get_valid_session (maybe_session )
@@ -620,7 +620,7 @@ async def get_session(self) -> Union[Session, None]:
620620 else current_session
621621 )
622622
623- async def get_user (self , jwt : Union [str , None ] = None ) -> Union [UserResponse , None ]:
623+ async def get_user (self , jwt : Optional [str ] = None ) -> Optional [UserResponse ]:
624624 """
625625 Gets the current user details if there is an existing session.
626626
@@ -672,7 +672,7 @@ async def set_session(self, access_token: str, refresh_token: str) -> AuthRespon
672672 time_now = round (time ())
673673 expires_at = time_now
674674 has_expired = True
675- session : Union [Session , None ] = None
675+ session : Optional [Session ] = None
676676 if access_token and access_token .split ("." )[1 ]:
677677 payload = self ._decode_jwt (access_token )
678678 exp = payload .get ("exp" )
@@ -701,7 +701,7 @@ async def set_session(self, access_token: str, refresh_token: str) -> AuthRespon
701701 return AuthResponse (session = session , user = response .user )
702702
703703 async def refresh_session (
704- self , refresh_token : Union [str , None ] = None
704+ self , refresh_token : Optional [str ] = None
705705 ) -> AuthResponse :
706706 """
707707 Returns a new session, regardless of expiry status.
@@ -743,7 +743,7 @@ async def sign_out(self, options: SignOutOptions = {"scope": "global"}) -> None:
743743
744744 def on_auth_state_change (
745745 self ,
746- callback : Callable [[AuthChangeEvent , Union [Session , None ]], None ],
746+ callback : Callable [[AuthChangeEvent , Optional [Session ]], None ],
747747 ) -> Subscription :
748748 """
749749 Receive a notification every time an auth event happens.
@@ -889,7 +889,7 @@ async def _get_authenticator_assurance_level(
889889 current_authentication_methods = [],
890890 )
891891 payload = self ._decode_jwt (session .access_token )
892- current_level : Union [AuthenticatorAssuranceLevels , None ] = None
892+ current_level : Optional [AuthenticatorAssuranceLevels ] = None
893893 if payload .get ("aal" ):
894894 current_level = payload .get ("aal" )
895895 verified_factors = [
@@ -917,7 +917,7 @@ async def _remove_session(self) -> None:
917917 async def _get_session_from_url (
918918 self ,
919919 url : str ,
920- ) -> Tuple [Session , Union [str , None ]]:
920+ ) -> Tuple [Session , Optional [str ]]:
921921 if not self ._is_implicit_grant_flow (url ):
922922 raise AuthImplicitGrantRedirectError ("Not a valid implicit grant flow url." )
923923 result = urlparse (url )
@@ -1062,15 +1062,15 @@ async def refresh_token_function():
10621062 def _notify_all_subscribers (
10631063 self ,
10641064 event : AuthChangeEvent ,
1065- session : Union [Session , None ],
1065+ session : Optional [Session ],
10661066 ) -> None :
10671067 for subscription in self ._state_change_emitters .values ():
10681068 subscription .callback (event , session )
10691069
10701070 def _get_valid_session (
10711071 self ,
1072- raw_session : Union [str , None ],
1073- ) -> Union [Session , None ]:
1072+ raw_session : Optional [str ],
1073+ ) -> Optional [Session ]:
10741074 if not raw_session :
10751075 return None
10761076 data = loads (raw_session )
@@ -1096,7 +1096,7 @@ def _get_param(
10961096 self ,
10971097 query_params : Dict [str , List [str ]],
10981098 name : str ,
1099- ) -> Union [str , None ]:
1099+ ) -> Optional [str ]:
11001100 return query_params [name ][0 ] if name in query_params else None
11011101
11021102 def _is_implicit_grant_flow (self , url : str ) -> bool :
0 commit comments