22
22
23
23
from __future__ import annotations
24
24
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
29
26
30
27
from .http import HTTPClient
31
28
from .paste import File , Paste
32
29
from .utils import require_authentication
33
30
31
+ if TYPE_CHECKING :
32
+ import datetime
33
+
34
+ from aiohttp import ClientSession
34
35
35
36
__all__ = ("Client" ,)
36
37
37
38
38
39
class Client :
39
40
__slots__ = ("http" ,)
40
41
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 :
42
43
self .http : HTTPClient = HTTPClient (token = token , session = session )
43
44
44
45
async def close (self ) -> None :
@@ -56,8 +57,8 @@ async def create_paste(
56
57
content : str ,
57
58
file : None = ...,
58
59
files : None = ...,
59
- password : Optional [ str ] = ...,
60
- expires : Optional [ datetime .datetime ] = ...,
60
+ password : str | None = ...,
61
+ expires : datetime .datetime | None = ...,
61
62
) -> Paste :
62
63
...
63
64
@@ -69,8 +70,8 @@ async def create_paste(
69
70
content : None = ...,
70
71
file : File ,
71
72
files : None = ...,
72
- password : Optional [ str ] = ...,
73
- expires : Optional [ datetime .datetime ] = ...,
73
+ password : str | None = ...,
74
+ expires : datetime .datetime | None = ...,
74
75
) -> Paste :
75
76
...
76
77
@@ -82,20 +83,20 @@ async def create_paste(
82
83
content : None = ...,
83
84
file : None = ...,
84
85
files : Sequence [File ],
85
- password : Optional [ str ] = ...,
86
- expires : Optional [ datetime .datetime ] = ...,
86
+ password : str | None = ...,
87
+ expires : datetime .datetime | None = ...,
87
88
) -> Paste :
88
89
...
89
90
90
91
async def create_paste (
91
92
self ,
92
93
* ,
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 ,
99
100
) -> Paste :
100
101
"""|coro|
101
102
@@ -162,7 +163,7 @@ async def delete_paste(self, paste_id: str, /) -> None:
162
163
await self .http .delete_pastes (paste_ids = [paste_id ])
163
164
164
165
@require_authentication
165
- async def delete_pastes (self , paste_ids : List [str ], / ) -> None :
166
+ async def delete_pastes (self , paste_ids : list [str ], / ) -> None :
166
167
"""|coro|
167
168
168
169
Delete multiple pastes.
@@ -175,16 +176,14 @@ async def delete_pastes(self, paste_ids: List[str], /) -> None:
175
176
await self .http .delete_pastes (paste_ids = paste_ids )
176
177
177
178
@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 :
179
180
...
180
181
181
182
@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 ]:
183
184
...
184
185
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 ]:
188
187
"""|coro|
189
188
190
189
Fetch a paste.
@@ -210,7 +209,7 @@ async def get_paste(
210
209
return Paste .from_data (data )
211
210
212
211
@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 ]:
214
213
"""|coro|
215
214
216
215
Get all pastes belonging to the current authenticated user.
0 commit comments