11from __future__ import annotations
22
3- from typing import Any , Optional
3+ from typing import Any , Protocol
44
5- from ..http import BaseHttpClient , AsyncBaseHttpClient
5+ from ..http import HttpResponse
6+
7+
8+ class _RequestClient (Protocol ):
9+ def request (self , * args : Any , ** kwargs : Any ) -> HttpResponse : ...
10+
11+
12+ class _AsyncRequestClient (Protocol ):
13+ async def request (self , * args : Any , ** kwargs : Any ) -> HttpResponse : ...
614
715
816class BaseApiClient :
9- def __init__ (self , http_client : BaseHttpClient ) -> None :
17+ def __init__ (self , http_client : _RequestClient ) -> None :
1018 self ._http = http_client
1119
1220 def _request_json (
1321 self ,
1422 method : str ,
1523 path : str ,
1624 * ,
17- params : Optional [ dict [str , Any ]] = None ,
18- headers : Optional [ dict [str , str ]] = None ,
19- json : Optional [ dict [str , Any ]] = None ,
20- access_token : Optional [ str ] = None ,
21- refresh_token : Optional [ str ] = None ,
25+ params : dict [str , Any ] | None = None ,
26+ headers : dict [str , str ] | None = None ,
27+ json : dict [str , Any ] | None = None ,
28+ access_token : str | None = None ,
29+ refresh_token : str | None = None ,
2230 skip_auth : bool = False ,
23- expected_status : Optional [ set [int ]] = None ,
31+ expected_status : set [int ] | None = None ,
2432 ) -> Any :
2533 response = self ._http .request (
2634 method ,
@@ -42,13 +50,13 @@ def _request_bytes(
4250 method : str ,
4351 path : str ,
4452 * ,
45- params : Optional [ dict [str , Any ]] = None ,
46- headers : Optional [ dict [str , str ]] = None ,
47- json : Optional [ dict [str , Any ]] = None ,
48- data : Optional [ bytes ] = None ,
49- access_token : Optional [ str ] = None ,
53+ params : dict [str , Any ] | None = None ,
54+ headers : dict [str , str ] | None = None ,
55+ json : dict [str , Any ] | None = None ,
56+ data : bytes | None = None ,
57+ access_token : str | None = None ,
5058 skip_auth : bool = False ,
51- expected_status : Optional [ set [int ]] = None ,
59+ expected_status : set [int ] | None = None ,
5260 ) -> bytes :
5361 response = self ._http .request (
5462 method ,
@@ -68,13 +76,13 @@ def _request_raw(
6876 method : str ,
6977 path : str ,
7078 * ,
71- params : Optional [ dict [str , Any ]] = None ,
72- headers : Optional [ dict [str , str ]] = None ,
73- json : Optional [ dict [str , Any ]] = None ,
74- data : Optional [ bytes ] = None ,
75- access_token : Optional [ str ] = None ,
79+ params : dict [str , Any ] | None = None ,
80+ headers : dict [str , str ] | None = None ,
81+ json : dict [str , Any ] | None = None ,
82+ data : bytes | None = None ,
83+ access_token : str | None = None ,
7684 skip_auth : bool = False ,
77- expected_status : Optional [ set [int ]] = None ,
85+ expected_status : set [int ] | None = None ,
7886 ):
7987 return self ._http .request (
8088 method ,
@@ -90,21 +98,21 @@ def _request_raw(
9098
9199
92100class AsyncBaseApiClient :
93- def __init__ (self , http_client : AsyncBaseHttpClient ) -> None :
101+ def __init__ (self , http_client : _AsyncRequestClient ) -> None :
94102 self ._http = http_client
95103
96104 async def _request_json (
97105 self ,
98106 method : str ,
99107 path : str ,
100108 * ,
101- params : Optional [ dict [str , Any ]] = None ,
102- headers : Optional [ dict [str , str ]] = None ,
103- json : Optional [ dict [str , Any ]] = None ,
104- access_token : Optional [ str ] = None ,
105- refresh_token : Optional [ str ] = None ,
109+ params : dict [str , Any ] | None = None ,
110+ headers : dict [str , str ] | None = None ,
111+ json : dict [str , Any ] | None = None ,
112+ access_token : str | None = None ,
113+ refresh_token : str | None = None ,
106114 skip_auth : bool = False ,
107- expected_status : Optional [ set [int ]] = None ,
115+ expected_status : set [int ] | None = None ,
108116 ) -> Any :
109117 response = await self ._http .request (
110118 method ,
@@ -126,13 +134,13 @@ async def _request_bytes(
126134 method : str ,
127135 path : str ,
128136 * ,
129- params : Optional [ dict [str , Any ]] = None ,
130- headers : Optional [ dict [str , str ]] = None ,
131- json : Optional [ dict [str , Any ]] = None ,
132- data : Optional [ bytes ] = None ,
133- access_token : Optional [ str ] = None ,
137+ params : dict [str , Any ] | None = None ,
138+ headers : dict [str , str ] | None = None ,
139+ json : dict [str , Any ] | None = None ,
140+ data : bytes | None = None ,
141+ access_token : str | None = None ,
134142 skip_auth : bool = False ,
135- expected_status : Optional [ set [int ]] = None ,
143+ expected_status : set [int ] | None = None ,
136144 ) -> bytes :
137145 response = await self ._http .request (
138146 method ,
@@ -152,13 +160,13 @@ async def _request_raw(
152160 method : str ,
153161 path : str ,
154162 * ,
155- params : Optional [ dict [str , Any ]] = None ,
156- headers : Optional [ dict [str , str ]] = None ,
157- json : Optional [ dict [str , Any ]] = None ,
158- data : Optional [ bytes ] = None ,
159- access_token : Optional [ str ] = None ,
163+ params : dict [str , Any ] | None = None ,
164+ headers : dict [str , str ] | None = None ,
165+ json : dict [str , Any ] | None = None ,
166+ data : bytes | None = None ,
167+ access_token : str | None = None ,
160168 skip_auth : bool = False ,
161- expected_status : Optional [ set [int ]] = None ,
169+ expected_status : set [int ] | None = None ,
162170 ):
163171 return await self ._http .request (
164172 method ,
0 commit comments