Skip to content

Commit

Permalink
Clean up URL signature. (#3245)
Browse files Browse the repository at this point in the history
  • Loading branch information
tomchristie committed Jul 23, 2024
1 parent b351a44 commit 359f77d
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 43 deletions.
20 changes: 10 additions & 10 deletions httpx/_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
RequestData,
RequestFiles,
TimeoutTypes,
URLTypes,
VerifyTypes,
)
from ._urls import URL

__all__ = [
"delete",
Expand All @@ -37,7 +37,7 @@

def request(
method: str,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
content: RequestContent | None = None,
Expand Down Expand Up @@ -132,7 +132,7 @@ def request(
@contextmanager
def stream(
method: str,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
content: RequestContent | None = None,
Expand Down Expand Up @@ -185,7 +185,7 @@ def stream(


def get(
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -225,7 +225,7 @@ def get(


def options(
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -265,7 +265,7 @@ def options(


def head(
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -305,7 +305,7 @@ def head(


def post(
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -350,7 +350,7 @@ def post(


def put(
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -395,7 +395,7 @@ def put(


def patch(
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -440,7 +440,7 @@ def patch(


def delete(
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down
49 changes: 24 additions & 25 deletions httpx/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
RequestFiles,
SyncByteStream,
TimeoutTypes,
URLTypes,
VerifyTypes,
)
from ._urls import URL, QueryParams
Expand Down Expand Up @@ -172,7 +171,7 @@ def __init__(
follow_redirects: bool = False,
max_redirects: int = DEFAULT_MAX_REDIRECTS,
event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
base_url: URLTypes = "",
base_url: URL | str = "",
trust_env: bool = True,
default_encoding: str | typing.Callable[[bytes], str] = "utf-8",
) -> None:
Expand Down Expand Up @@ -273,7 +272,7 @@ def base_url(self) -> URL:
return self._base_url

@base_url.setter
def base_url(self, url: URLTypes) -> None:
def base_url(self, url: URL | str) -> None:
self._base_url = self._enforce_trailing_slash(URL(url))

@property
Expand Down Expand Up @@ -321,7 +320,7 @@ def params(self, params: QueryParamTypes) -> None:
def build_request(
self,
method: str,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -369,7 +368,7 @@ def build_request(
extensions=extensions,
)

def _merge_url(self, url: URLTypes) -> URL:
def _merge_url(self, url: URL | str) -> URL:
"""
Merge a URL argument together with any 'base_url' on the client,
to create the URL used for the outgoing request.
Expand Down Expand Up @@ -645,7 +644,7 @@ def __init__(
limits: Limits = DEFAULT_LIMITS,
max_redirects: int = DEFAULT_MAX_REDIRECTS,
event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
base_url: URLTypes = "",
base_url: URL | str = "",
transport: BaseTransport | None = None,
app: typing.Callable[..., typing.Any] | None = None,
trust_env: bool = True,
Expand Down Expand Up @@ -784,7 +783,7 @@ def _transport_for_url(self, url: URL) -> BaseTransport:
def request(
self,
method: str,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -841,7 +840,7 @@ def request(
def stream(
self,
method: str,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1049,7 +1048,7 @@ def _send_single_request(self, request: Request) -> Response:

def get(
self,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -1078,7 +1077,7 @@ def get(

def options(
self,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -1107,7 +1106,7 @@ def options(

def head(
self,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -1136,7 +1135,7 @@ def head(

def post(
self,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1173,7 +1172,7 @@ def post(

def put(
self,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1210,7 +1209,7 @@ def put(

def patch(
self,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1247,7 +1246,7 @@ def patch(

def delete(
self,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -1392,7 +1391,7 @@ def __init__(
limits: Limits = DEFAULT_LIMITS,
max_redirects: int = DEFAULT_MAX_REDIRECTS,
event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
base_url: URLTypes = "",
base_url: URL | str = "",
transport: AsyncBaseTransport | None = None,
app: typing.Callable[..., typing.Any] | None = None,
trust_env: bool = True,
Expand Down Expand Up @@ -1531,7 +1530,7 @@ def _transport_for_url(self, url: URL) -> AsyncBaseTransport:
async def request(
self,
method: str,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1589,7 +1588,7 @@ async def request(
async def stream(
self,
method: str,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1797,7 +1796,7 @@ async def _send_single_request(self, request: Request) -> Response:

async def get(
self,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -1826,7 +1825,7 @@ async def get(

async def options(
self,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -1855,7 +1854,7 @@ async def options(

async def head(
self,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down Expand Up @@ -1884,7 +1883,7 @@ async def head(

async def post(
self,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1921,7 +1920,7 @@ async def post(

async def put(
self,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1958,7 +1957,7 @@ async def put(

async def patch(
self,
url: URLTypes,
url: URL | str,
*,
content: RequestContent | None = None,
data: RequestData | None = None,
Expand Down Expand Up @@ -1995,7 +1994,7 @@ async def patch(

async def delete(
self,
url: URLTypes,
url: URL | str,
*,
params: QueryParamTypes | None = None,
headers: HeaderTypes | None = None,
Expand Down
4 changes: 2 additions & 2 deletions httpx/_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

from ._compat import set_minimum_tls_version_1_2
from ._models import Headers
from ._types import CertTypes, HeaderTypes, TimeoutTypes, URLTypes, VerifyTypes
from ._types import CertTypes, HeaderTypes, TimeoutTypes, VerifyTypes
from ._urls import URL
from ._utils import get_ca_bundle_from_env

Expand Down Expand Up @@ -325,7 +325,7 @@ def __repr__(self) -> str:
class Proxy:
def __init__(
self,
url: URLTypes,
url: URL | str,
*,
ssl_context: ssl.SSLContext | None = None,
auth: tuple[str, str] | None = None,
Expand Down
6 changes: 2 additions & 4 deletions httpx/_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,6 @@
],
)

URLTypes = Union["URL", str]

QueryParamTypes = Union[
"QueryParams",
Mapping[str, Union[PrimitiveData, Sequence[PrimitiveData]]],
Expand Down Expand Up @@ -78,8 +76,8 @@
Tuple[Optional[float], Optional[float], Optional[float], Optional[float]],
"Timeout",
]
ProxyTypes = Union[URLTypes, "Proxy"]
ProxiesTypes = Union[ProxyTypes, Dict[URLTypes, Union[None, ProxyTypes]]]
ProxyTypes = Union["URL", str, "Proxy"]
ProxiesTypes = Union[ProxyTypes, Dict[Union["URL", str], Union[None, ProxyTypes]]]

AuthTypes = Union[
Tuple[Union[str, bytes], Union[str, bytes]],
Expand Down
4 changes: 2 additions & 2 deletions httpx/_urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import idna

from ._types import QueryParamTypes, RawURL, URLTypes
from ._types import QueryParamTypes, RawURL
from ._urlparse import urlencode, urlparse
from ._utils import primitive_value_to_str

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

def join(self, url: URLTypes) -> URL:
def join(self, url: URL | str) -> URL:
"""
Return an absolute URL, using this URL as the base.
Expand Down

0 comments on commit 359f77d

Please sign in to comment.