Skip to content

Commit 359f77d

Browse files
authored
Clean up URL signature. (#3245)
1 parent b351a44 commit 359f77d

File tree

5 files changed

+40
-43
lines changed

5 files changed

+40
-43
lines changed

httpx/_api.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
RequestData,
1919
RequestFiles,
2020
TimeoutTypes,
21-
URLTypes,
2221
VerifyTypes,
2322
)
23+
from ._urls import URL
2424

2525
__all__ = [
2626
"delete",
@@ -37,7 +37,7 @@
3737

3838
def request(
3939
method: str,
40-
url: URLTypes,
40+
url: URL | str,
4141
*,
4242
params: QueryParamTypes | None = None,
4343
content: RequestContent | None = None,
@@ -132,7 +132,7 @@ def request(
132132
@contextmanager
133133
def stream(
134134
method: str,
135-
url: URLTypes,
135+
url: URL | str,
136136
*,
137137
params: QueryParamTypes | None = None,
138138
content: RequestContent | None = None,
@@ -185,7 +185,7 @@ def stream(
185185

186186

187187
def get(
188-
url: URLTypes,
188+
url: URL | str,
189189
*,
190190
params: QueryParamTypes | None = None,
191191
headers: HeaderTypes | None = None,
@@ -225,7 +225,7 @@ def get(
225225

226226

227227
def options(
228-
url: URLTypes,
228+
url: URL | str,
229229
*,
230230
params: QueryParamTypes | None = None,
231231
headers: HeaderTypes | None = None,
@@ -265,7 +265,7 @@ def options(
265265

266266

267267
def head(
268-
url: URLTypes,
268+
url: URL | str,
269269
*,
270270
params: QueryParamTypes | None = None,
271271
headers: HeaderTypes | None = None,
@@ -305,7 +305,7 @@ def head(
305305

306306

307307
def post(
308-
url: URLTypes,
308+
url: URL | str,
309309
*,
310310
content: RequestContent | None = None,
311311
data: RequestData | None = None,
@@ -350,7 +350,7 @@ def post(
350350

351351

352352
def put(
353-
url: URLTypes,
353+
url: URL | str,
354354
*,
355355
content: RequestContent | None = None,
356356
data: RequestData | None = None,
@@ -395,7 +395,7 @@ def put(
395395

396396

397397
def patch(
398-
url: URLTypes,
398+
url: URL | str,
399399
*,
400400
content: RequestContent | None = None,
401401
data: RequestData | None = None,
@@ -440,7 +440,7 @@ def patch(
440440

441441

442442
def delete(
443-
url: URLTypes,
443+
url: URL | str,
444444
*,
445445
params: QueryParamTypes | None = None,
446446
headers: HeaderTypes | None = None,

httpx/_client.py

+24-25
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
RequestFiles,
4747
SyncByteStream,
4848
TimeoutTypes,
49-
URLTypes,
5049
VerifyTypes,
5150
)
5251
from ._urls import URL, QueryParams
@@ -172,7 +171,7 @@ def __init__(
172171
follow_redirects: bool = False,
173172
max_redirects: int = DEFAULT_MAX_REDIRECTS,
174173
event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
175-
base_url: URLTypes = "",
174+
base_url: URL | str = "",
176175
trust_env: bool = True,
177176
default_encoding: str | typing.Callable[[bytes], str] = "utf-8",
178177
) -> None:
@@ -273,7 +272,7 @@ def base_url(self) -> URL:
273272
return self._base_url
274273

275274
@base_url.setter
276-
def base_url(self, url: URLTypes) -> None:
275+
def base_url(self, url: URL | str) -> None:
277276
self._base_url = self._enforce_trailing_slash(URL(url))
278277

279278
@property
@@ -321,7 +320,7 @@ def params(self, params: QueryParamTypes) -> None:
321320
def build_request(
322321
self,
323322
method: str,
324-
url: URLTypes,
323+
url: URL | str,
325324
*,
326325
content: RequestContent | None = None,
327326
data: RequestData | None = None,
@@ -369,7 +368,7 @@ def build_request(
369368
extensions=extensions,
370369
)
371370

372-
def _merge_url(self, url: URLTypes) -> URL:
371+
def _merge_url(self, url: URL | str) -> URL:
373372
"""
374373
Merge a URL argument together with any 'base_url' on the client,
375374
to create the URL used for the outgoing request.
@@ -645,7 +644,7 @@ def __init__(
645644
limits: Limits = DEFAULT_LIMITS,
646645
max_redirects: int = DEFAULT_MAX_REDIRECTS,
647646
event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
648-
base_url: URLTypes = "",
647+
base_url: URL | str = "",
649648
transport: BaseTransport | None = None,
650649
app: typing.Callable[..., typing.Any] | None = None,
651650
trust_env: bool = True,
@@ -784,7 +783,7 @@ def _transport_for_url(self, url: URL) -> BaseTransport:
784783
def request(
785784
self,
786785
method: str,
787-
url: URLTypes,
786+
url: URL | str,
788787
*,
789788
content: RequestContent | None = None,
790789
data: RequestData | None = None,
@@ -841,7 +840,7 @@ def request(
841840
def stream(
842841
self,
843842
method: str,
844-
url: URLTypes,
843+
url: URL | str,
845844
*,
846845
content: RequestContent | None = None,
847846
data: RequestData | None = None,
@@ -1049,7 +1048,7 @@ def _send_single_request(self, request: Request) -> Response:
10491048

10501049
def get(
10511050
self,
1052-
url: URLTypes,
1051+
url: URL | str,
10531052
*,
10541053
params: QueryParamTypes | None = None,
10551054
headers: HeaderTypes | None = None,
@@ -1078,7 +1077,7 @@ def get(
10781077

10791078
def options(
10801079
self,
1081-
url: URLTypes,
1080+
url: URL | str,
10821081
*,
10831082
params: QueryParamTypes | None = None,
10841083
headers: HeaderTypes | None = None,
@@ -1107,7 +1106,7 @@ def options(
11071106

11081107
def head(
11091108
self,
1110-
url: URLTypes,
1109+
url: URL | str,
11111110
*,
11121111
params: QueryParamTypes | None = None,
11131112
headers: HeaderTypes | None = None,
@@ -1136,7 +1135,7 @@ def head(
11361135

11371136
def post(
11381137
self,
1139-
url: URLTypes,
1138+
url: URL | str,
11401139
*,
11411140
content: RequestContent | None = None,
11421141
data: RequestData | None = None,
@@ -1173,7 +1172,7 @@ def post(
11731172

11741173
def put(
11751174
self,
1176-
url: URLTypes,
1175+
url: URL | str,
11771176
*,
11781177
content: RequestContent | None = None,
11791178
data: RequestData | None = None,
@@ -1210,7 +1209,7 @@ def put(
12101209

12111210
def patch(
12121211
self,
1213-
url: URLTypes,
1212+
url: URL | str,
12141213
*,
12151214
content: RequestContent | None = None,
12161215
data: RequestData | None = None,
@@ -1247,7 +1246,7 @@ def patch(
12471246

12481247
def delete(
12491248
self,
1250-
url: URLTypes,
1249+
url: URL | str,
12511250
*,
12521251
params: QueryParamTypes | None = None,
12531252
headers: HeaderTypes | None = None,
@@ -1392,7 +1391,7 @@ def __init__(
13921391
limits: Limits = DEFAULT_LIMITS,
13931392
max_redirects: int = DEFAULT_MAX_REDIRECTS,
13941393
event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
1395-
base_url: URLTypes = "",
1394+
base_url: URL | str = "",
13961395
transport: AsyncBaseTransport | None = None,
13971396
app: typing.Callable[..., typing.Any] | None = None,
13981397
trust_env: bool = True,
@@ -1531,7 +1530,7 @@ def _transport_for_url(self, url: URL) -> AsyncBaseTransport:
15311530
async def request(
15321531
self,
15331532
method: str,
1534-
url: URLTypes,
1533+
url: URL | str,
15351534
*,
15361535
content: RequestContent | None = None,
15371536
data: RequestData | None = None,
@@ -1589,7 +1588,7 @@ async def request(
15891588
async def stream(
15901589
self,
15911590
method: str,
1592-
url: URLTypes,
1591+
url: URL | str,
15931592
*,
15941593
content: RequestContent | None = None,
15951594
data: RequestData | None = None,
@@ -1797,7 +1796,7 @@ async def _send_single_request(self, request: Request) -> Response:
17971796

17981797
async def get(
17991798
self,
1800-
url: URLTypes,
1799+
url: URL | str,
18011800
*,
18021801
params: QueryParamTypes | None = None,
18031802
headers: HeaderTypes | None = None,
@@ -1826,7 +1825,7 @@ async def get(
18261825

18271826
async def options(
18281827
self,
1829-
url: URLTypes,
1828+
url: URL | str,
18301829
*,
18311830
params: QueryParamTypes | None = None,
18321831
headers: HeaderTypes | None = None,
@@ -1855,7 +1854,7 @@ async def options(
18551854

18561855
async def head(
18571856
self,
1858-
url: URLTypes,
1857+
url: URL | str,
18591858
*,
18601859
params: QueryParamTypes | None = None,
18611860
headers: HeaderTypes | None = None,
@@ -1884,7 +1883,7 @@ async def head(
18841883

18851884
async def post(
18861885
self,
1887-
url: URLTypes,
1886+
url: URL | str,
18881887
*,
18891888
content: RequestContent | None = None,
18901889
data: RequestData | None = None,
@@ -1921,7 +1920,7 @@ async def post(
19211920

19221921
async def put(
19231922
self,
1924-
url: URLTypes,
1923+
url: URL | str,
19251924
*,
19261925
content: RequestContent | None = None,
19271926
data: RequestData | None = None,
@@ -1958,7 +1957,7 @@ async def put(
19581957

19591958
async def patch(
19601959
self,
1961-
url: URLTypes,
1960+
url: URL | str,
19621961
*,
19631962
content: RequestContent | None = None,
19641963
data: RequestData | None = None,
@@ -1995,7 +1994,7 @@ async def patch(
19951994

19961995
async def delete(
19971996
self,
1998-
url: URLTypes,
1997+
url: URL | str,
19991998
*,
20001999
params: QueryParamTypes | None = None,
20012000
headers: HeaderTypes | None = None,

httpx/_config.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
from ._compat import set_minimum_tls_version_1_2
1212
from ._models import Headers
13-
from ._types import CertTypes, HeaderTypes, TimeoutTypes, URLTypes, VerifyTypes
13+
from ._types import CertTypes, HeaderTypes, TimeoutTypes, VerifyTypes
1414
from ._urls import URL
1515
from ._utils import get_ca_bundle_from_env
1616

@@ -325,7 +325,7 @@ def __repr__(self) -> str:
325325
class Proxy:
326326
def __init__(
327327
self,
328-
url: URLTypes,
328+
url: URL | str,
329329
*,
330330
ssl_context: ssl.SSLContext | None = None,
331331
auth: tuple[str, str] | None = None,

httpx/_types.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@
4343
],
4444
)
4545

46-
URLTypes = Union["URL", str]
47-
4846
QueryParamTypes = Union[
4947
"QueryParams",
5048
Mapping[str, Union[PrimitiveData, Sequence[PrimitiveData]]],
@@ -78,8 +76,8 @@
7876
Tuple[Optional[float], Optional[float], Optional[float], Optional[float]],
7977
"Timeout",
8078
]
81-
ProxyTypes = Union[URLTypes, "Proxy"]
82-
ProxiesTypes = Union[ProxyTypes, Dict[URLTypes, Union[None, ProxyTypes]]]
79+
ProxyTypes = Union["URL", str, "Proxy"]
80+
ProxiesTypes = Union[ProxyTypes, Dict[Union["URL", str], Union[None, ProxyTypes]]]
8381

8482
AuthTypes = Union[
8583
Tuple[Union[str, bytes], Union[str, bytes]],

httpx/_urls.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import idna
77

8-
from ._types import QueryParamTypes, RawURL, URLTypes
8+
from ._types import QueryParamTypes, RawURL
99
from ._urlparse import urlencode, urlparse
1010
from ._utils import primitive_value_to_str
1111

@@ -367,7 +367,7 @@ def copy_remove_param(self, key: str) -> URL:
367367
def copy_merge_params(self, params: QueryParamTypes) -> URL:
368368
return self.copy_with(params=self.params.merge(params))
369369

370-
def join(self, url: URLTypes) -> URL:
370+
def join(self, url: URL | str) -> URL:
371371
"""
372372
Return an absolute URL, using this URL as the base.
373373

0 commit comments

Comments
 (0)