77import os
88import json
99import aiohttp
10- from typing import Iterable , Optional , Any , Union
10+ from typing import Iterable , Any
1111from .client_token import Token
1212from .service_account_token import ServiceAccountToken
1313from .entity import Entity
@@ -43,7 +43,7 @@ def __init__(
4343 client_secret : str ,
4444 token_file : str ,
4545 scopes : Iterable [str ] = DEFAULT_SCOPES ,
46- namespace_id : Optional [ str ] = None ):
46+ namespace_id : str | None = None ):
4747
4848 self .project_id = project_id
4949 self .namespace_id = namespace_id
@@ -220,7 +220,7 @@ async def run_query(self, data) -> list[dict]:
220220 results , _ = await self ._run_query (data )
221221 return results
222222
223- async def _run_query (self , data ) -> tuple [list [dict ], Optional [ str ] ]:
223+ async def _run_query (self , data ) -> tuple [list [dict ], str | None ]:
224224 results = []
225225 cursor = None
226226
@@ -281,7 +281,7 @@ async def _run_query(self, data) -> tuple[list[dict], Optional[str]]:
281281 return results , cursor
282282
283283 async def _get_entities_cursor (self , data ) -> \
284- tuple [list [Entity ], Optional [ str ] ]:
284+ tuple [list [Entity ], str | None ]:
285285 results , cursor = await self ._run_query (data )
286286 return [Entity (result ['entity' ]) for result in results ], cursor
287287
@@ -301,7 +301,7 @@ async def get_keys(self, data) -> list[Key]:
301301 results , _ = await self ._run_query (data )
302302 return [Key (result ['entity' ]['key' ]) for result in results ]
303303
304- async def get_entity (self , data ) -> Optional [ Entity ] :
304+ async def get_entity (self , data ) -> Entity | None :
305305 """Return an entity object by given query data.
306306
307307 :param data: see the following link for the data format:
@@ -313,18 +313,18 @@ async def get_entity(self, data) -> Optional[Entity]:
313313 result = await self .get_entities (data )
314314 return result [0 ] if result else None
315315
316- async def get_key (self , data ) -> Optional [ Key ] :
316+ async def get_key (self , data ) -> Key | None :
317317 data ['query' ]['limit' ] = 1
318318 result = await self .get_keys (data )
319319 return result [0 ] if result else None
320320
321- async def get_entities_by_kind (self , kind : str ,
322- offset : Optional [ int ] = None ,
323- limit : Optional [ int ] = None ,
324- cursor : Optional [ str ] = None ) -> Union [
325- list [ Entity ] ,
326- tuple [ list [ Entity ], Optional [ str ]]
327- ]:
321+ async def get_entities_by_kind (
322+ self ,
323+ kind : str ,
324+ offset : int | None = None ,
325+ limit : int | None = None ,
326+ cursor : str | None = None
327+ ) -> list [ Entity ] | tuple [ list [ Entity ], str | None ]:
328328 """Returns entities by kind.
329329
330330 When a limit is set, this function returns a list and a cursor.
@@ -344,8 +344,8 @@ async def get_entities_by_kind(self, kind: str,
344344 return await self ._get_entities_cursor (data )
345345
346346 async def get_entities_by_keys (self , keys : Iterable [Key ],
347- missing : Optional [ list [Any ]] = None ,
348- deferred : Optional [ list [Key ]] = None ,
347+ missing : list [Any ] | None = None ,
348+ deferred : list [Key ] | None = None ,
349349 eventual : bool = False ) -> list [Entity ]:
350350 """Returns entity objects for the given keys or an empty list in case
351351 no entity is found. The order of entities might not be equal to the
@@ -398,9 +398,9 @@ def data():
398398 return entities
399399
400400 async def get_entity_by_key (self , key : Key ,
401- missing : Optional [ list [Any ]] = None ,
402- deferred : Optional [ list [Key ]] = None ,
403- eventual : bool = False ) -> Optional [ Entity ] :
401+ missing : list [Any ] | None = None ,
402+ deferred : list [Key ] | None = None ,
403+ eventual : bool = False ) -> Entity | None :
404404 """Returns an entity object for the given key or None in case no
405405 entity is found.
406406
@@ -447,9 +447,9 @@ def __init__(
447447 self ,
448448 project_id : str ,
449449 service_file : str ,
450- session : Optional [ aiohttp .ClientSession ] = None ,
451- scopes : Optional [ Iterable [str ]] = None ,
452- namespace_id : Optional [ str ] = None ):
450+ session : aiohttp .ClientSession | None = None ,
451+ scopes : Iterable [str ] | None = None ,
452+ namespace_id : str | None = None ):
453453
454454 scopes = scopes or list (DEFAULT_SCOPES )
455455 self .project_id = project_id
0 commit comments