21
21
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
22
DEALINGS IN THE SOFTWARE.
23
23
"""
24
+ from __future__ import annotations
24
25
25
26
import json
26
- from typing import TYPE_CHECKING , Awaitable , Optional , Type , Union
27
+ from typing import TYPE_CHECKING , Awaitable , Optional , Union
27
28
28
29
import aiohttp
29
30
30
- if TYPE_CHECKING :
31
- import requests
32
-
33
31
from .constants import API_BASE_URL , CLIENT_TIMEOUT , MB_URL_RE
34
32
from .errors import APIError , BadPasteID
35
33
from .objects import Paste , PasteData
36
34
35
+ if TYPE_CHECKING :
36
+ import requests
37
+
37
38
__all__ = ("HTTPClient" ,)
38
39
39
40
@@ -56,9 +57,7 @@ def __init__(
56
57
self ,
57
58
* ,
58
59
api_key : str = None ,
59
- session : Optional [
60
- Union [aiohttp .ClientSession , Type ["requests.Session" ]]
61
- ] = None ,
60
+ session : Optional [Union [aiohttp .ClientSession , requests .Session ]] = None ,
62
61
) -> None :
63
62
self .api_key = api_key
64
63
self ._are_we_async = session is None or isinstance (
@@ -68,9 +67,7 @@ def __init__(
68
67
self ._generate_sync_session (session ) if not self ._are_we_async else None
69
68
)
70
69
71
- def _generate_sync_session (
72
- self , session : Type ["requests.Session" ]
73
- ) -> Type ["requests.Session" ]:
70
+ def _generate_sync_session (self , session : requests .Session ) -> requests .Session :
74
71
""" We will update a :class:`requests.Session` instance with the auth we require. """
75
72
# the passed session was found to be 'sync'.
76
73
if self .api_key :
@@ -114,7 +111,7 @@ def post(self, content: str, syntax: str = None) -> Union[Paste, Awaitable]:
114
111
def _perform_sync_post (self , content : str , syntax : str = None ) -> Paste :
115
112
""" Sync post request. """
116
113
payload = {"meta" : [{"index" : 0 , "syntax" : syntax }]}
117
- response : Type [ " requests.Response" ] = self .session .post (
114
+ response : requests .Response = self .session .post (
118
115
API_BASE_URL ,
119
116
files = {
120
117
"data" : content ,
@@ -175,7 +172,7 @@ def get(self, paste_id: str) -> Union[PasteData, Awaitable]:
175
172
176
173
def _perform_sync_get (self , paste_id : str , syntax : str = None ) -> PasteData :
177
174
""" Sync get request. """
178
- response : Type [ " requests.Response" ] = self .session .get (
175
+ response : requests .Response = self .session .get (
179
176
f"{ API_BASE_URL } /{ paste_id } " , timeout = CLIENT_TIMEOUT
180
177
)
181
178
@@ -190,8 +187,6 @@ async def _perform_async_get(self, paste_id: str, syntax: str = None) -> PasteDa
190
187
if not self .session :
191
188
self .session : aiohttp .ClientSession = await self ._generate_async_session ()
192
189
193
- self .session : aiohttp .ClientSession
194
-
195
190
async with self .session .get (
196
191
f"{ API_BASE_URL } /{ paste_id } " , timeout = aiohttp .ClientTimeout (CLIENT_TIMEOUT )
197
192
) as response :
0 commit comments