2222
2323from __future__ import annotations
2424
25- import datetime
26- from typing import List , Literal , Optional , Sequence , Union , overload
27-
28- import aiohttp
25+ from typing import TYPE_CHECKING , Literal , Sequence , overload
2926
3027from .http import HTTPClient
3128from .paste import File , Paste
3229from .utils import require_authentication
3330
31+ if TYPE_CHECKING :
32+ import datetime
33+
34+ from aiohttp import ClientSession
3435
3536__all__ = ("Client" ,)
3637
3738
3839class Client :
3940 __slots__ = ("http" ,)
4041
41- def __init__ (self , * , token : Optional [ str ] = None , session : Optional [ aiohttp . ClientSession ] = None ) -> None :
42+ def __init__ (self , * , token : str | None = None , session : ClientSession | None = None ) -> None :
4243 self .http : HTTPClient = HTTPClient (token = token , session = session )
4344
4445 async def close (self ) -> None :
@@ -56,8 +57,8 @@ async def create_paste(
5657 content : str ,
5758 file : None = ...,
5859 files : None = ...,
59- password : Optional [ str ] = ...,
60- expires : Optional [ datetime .datetime ] = ...,
60+ password : str | None = ...,
61+ expires : datetime .datetime | None = ...,
6162 ) -> Paste :
6263 ...
6364
@@ -69,8 +70,8 @@ async def create_paste(
6970 content : None = ...,
7071 file : File ,
7172 files : None = ...,
72- password : Optional [ str ] = ...,
73- expires : Optional [ datetime .datetime ] = ...,
73+ password : str | None = ...,
74+ expires : datetime .datetime | None = ...,
7475 ) -> Paste :
7576 ...
7677
@@ -82,20 +83,20 @@ async def create_paste(
8283 content : None = ...,
8384 file : None = ...,
8485 files : Sequence [File ],
85- password : Optional [ str ] = ...,
86- expires : Optional [ datetime .datetime ] = ...,
86+ password : str | None = ...,
87+ expires : datetime .datetime | None = ...,
8788 ) -> Paste :
8889 ...
8990
9091 async def create_paste (
9192 self ,
9293 * ,
93- filename : Optional [ str ] = None ,
94- content : Optional [ str ] = None ,
95- file : Optional [ File ] = None ,
96- files : Optional [ Sequence [File ]] = None ,
97- password : Optional [ str ] = None ,
98- expires : Optional [ datetime .datetime ] = None ,
94+ filename : str | None = None ,
95+ content : str | None = None ,
96+ file : File | None = None ,
97+ files : Sequence [File ] | None = None ,
98+ password : str | None = None ,
99+ expires : datetime .datetime | None = None ,
99100 ) -> Paste :
100101 """|coro|
101102
@@ -162,7 +163,7 @@ async def delete_paste(self, paste_id: str, /) -> None:
162163 await self .http .delete_pastes (paste_ids = [paste_id ])
163164
164165 @require_authentication
165- async def delete_pastes (self , paste_ids : List [str ], / ) -> None :
166+ async def delete_pastes (self , paste_ids : list [str ], / ) -> None :
166167 """|coro|
167168
168169 Delete multiple pastes.
@@ -175,16 +176,14 @@ async def delete_pastes(self, paste_ids: List[str], /) -> None:
175176 await self .http .delete_pastes (paste_ids = paste_ids )
176177
177178 @overload
178- async def get_paste (self , paste_id : str , * , password : Optional [ str ] = ..., raw : Literal [False ]) -> Paste :
179+ async def get_paste (self , paste_id : str , * , password : str | None = ..., raw : Literal [False ]) -> Paste :
179180 ...
180181
181182 @overload
182- async def get_paste (self , paste_id : str , * , password : Optional [ str ] = ..., raw : Literal [True ]) -> list [str ]:
183+ async def get_paste (self , paste_id : str , * , password : str | None = ..., raw : Literal [True ]) -> list [str ]:
183184 ...
184185
185- async def get_paste (
186- self , paste_id : str , * , password : Optional [str ] = None , raw : bool = False
187- ) -> Union [Paste , list [str ]]:
186+ async def get_paste (self , paste_id : str , * , password : str | None = None , raw : bool = False ) -> Paste | list [str ]:
188187 """|coro|
189188
190189 Fetch a paste.
@@ -210,7 +209,7 @@ async def get_paste(
210209 return Paste .from_data (data )
211210
212211 @require_authentication
213- async def get_user_pastes (self , * , limit : int = 100 ) -> List [Paste ]:
212+ async def get_user_pastes (self , * , limit : int = 100 ) -> list [Paste ]:
214213 """|coro|
215214
216215 Get all pastes belonging to the current authenticated user.
0 commit comments