Skip to content

Commit 01cc0ca

Browse files
Layout refactor (#72)
* Layout refactor * Add typing
1 parent 1738e8d commit 01cc0ca

File tree

14 files changed

+1307
-1279
lines changed

14 files changed

+1307
-1279
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
*.pyc
2+
.coverage
23
.mypy_cache/
34
__pycache__/
45
dist/

scripts/unasync

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ unasync.unasync_files(
55
fpath_list = [
66
"src/ahttpx/__init__.py",
77
"src/ahttpx/_client.py",
8+
"src/ahttpx/_content.py",
9+
"src/ahttpx/_headers.py",
810
"src/ahttpx/_models.py",
911
"src/ahttpx/_pool.py",
1012
"src/ahttpx/_urlparse.py",

src/ahttpx/__init__.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
from ._client import * # Client, open_client
2-
from ._models import * # Content, File, Files, Form, Headers, HTML, JSON, MultiPart, Response, Request, Text
2+
from ._content import * # Content, File, Files, Form, HTML, JSON, MultiPart, Text
3+
from ._headers import * # Headers
4+
from ._models import * # Response, Request
35
from ._network import * # NetworkBackend, NetworkStream, timeout
46
from ._pool import * # Connection, ConnectionPool, Transport, open_connection_pool, open_connection
7+
from ._server import * # serve_http, serve_tcp
58
from ._urls import * # QueryParams, URL
69

710

@@ -32,12 +35,3 @@
3235
"QueryParams",
3336
"URL",
3437
]
35-
36-
37-
# Modules names are deliberately private here.
38-
# We fix-up the public API space so that class `__repr__` properly reflects this...
39-
#
40-
# >>> httpx.Client
41-
# <class 'httpx.Client'>
42-
for attr in __all__:
43-
setattr(locals()[attr], '__module__', 'httpx')

src/ahttpx/_client.py

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
from __future__ import annotations
22

33
import contextlib
4-
from typing import AsyncIterable, AsyncIterator, Mapping
4+
import types
5+
import typing
56

67
from ._models import Content, Headers, Response, Request
78
from ._pool import Transport, open_connection_pool
@@ -15,7 +16,7 @@ def __init__(
1516
self,
1617
transport: Transport,
1718
url: URL | str | None = None,
18-
headers: Headers | Mapping[str, str] | None = None,
19+
headers: Headers | typing.Mapping[str, str] | None = None,
1920
):
2021
if url is None:
2122
url = ""
@@ -31,8 +32,8 @@ def build_request(
3132
self,
3233
method: str,
3334
url: URL | str,
34-
headers: Headers | Mapping[str, str] | None = None,
35-
content: Content | AsyncIterable[bytes] | bytes | None = None,
35+
headers: Headers | typing.Mapping[str, str] | None = None,
36+
content: Content | typing.AsyncIterable[bytes] | bytes | None = None,
3637
) -> Request:
3738
return Request(
3839
method=method,
@@ -45,8 +46,8 @@ async def request(
4546
self,
4647
method: str,
4748
url: URL | str,
48-
headers: Mapping[str, str] | None = None,
49-
content: Content | AsyncIterable[bytes] | bytes | None = None,
49+
headers: typing.Mapping[str, str] | None = None,
50+
content: Content | typing.AsyncIterable[bytes] | bytes | None = None,
5051
) -> Response:
5152
request = self.build_request(method, url, headers=headers, content=content)
5253
async with self.via.send(request) as response:
@@ -58,48 +59,48 @@ async def stream(
5859
self,
5960
method: str,
6061
url: URL | str,
61-
headers: Mapping[str, str] | None = None,
62-
content: Content | AsyncIterable[bytes] | bytes | None = None,
63-
) -> AsyncIterator[Response]:
62+
headers: typing.Mapping[str, str] | None = None,
63+
content: Content | typing.AsyncIterable[bytes] | bytes | None = None,
64+
) -> typing.AsyncIterator[Response]:
6465
request = self.build_request(method, url, headers=headers, content=content)
6566
async with self.via.send(request) as response:
6667
yield response
6768

6869
async def get(
6970
self,
7071
url: URL | str,
71-
headers: Mapping[str, str] | None = None,
72+
headers: typing.Mapping[str, str] | None = None,
7273
):
7374
return await self.request("GET", url, headers=headers)
7475

7576
async def post(
7677
self,
7778
url: URL | str,
78-
headers: Mapping[str, str] | None = None,
79-
content: Content | AsyncIterable[bytes] | bytes | None = None,
79+
headers: typing.Mapping[str, str] | None = None,
80+
content: Content | typing.AsyncIterable[bytes] | bytes | None = None,
8081
):
8182
return await self.request("POST", url, headers=headers, content=content)
8283

8384
async def put(
8485
self,
8586
url: URL | str,
86-
headers: Mapping[str, str] | None = None,
87-
content: Content | AsyncIterable[bytes] | bytes | None = None,
87+
headers: typing.Mapping[str, str] | None = None,
88+
content: Content | typing.AsyncIterable[bytes] | bytes | None = None,
8889
):
8990
return await self.request("PUT", url, headers=headers, content=content)
9091

9192
async def patch(
9293
self,
9394
url: URL | str,
94-
headers: Mapping[str, str] | None = None,
95-
content: Content | AsyncIterable[bytes] | bytes | None = None,
95+
headers: typing.Mapping[str, str] | None = None,
96+
content: Content | typing.AsyncIterable[bytes] | bytes | None = None,
9697
):
9798
return await self.request("PATCH", url, headers=headers, content=content)
9899

99100
async def delete(
100101
self,
101102
url: URL | str,
102-
headers: Mapping[str, str] | None = None,
103+
headers: typing.Mapping[str, str] | None = None,
103104
):
104105
return await self.request("DELETE", url, headers=headers)
105106

@@ -135,7 +136,7 @@ def build_redirect_request(self, request: Request, response: Response) -> Reques
135136
raise NotImplementedError()
136137

137138
@contextlib.asynccontextmanager
138-
async def send(self, request: Request) -> AsyncIterator[Response]:
139+
async def send(self, request: Request) -> typing.AsyncIterator[Response]:
139140
while True:
140141
async with self._transport.send(request) as response:
141142
if not self.is_redirect(response):
@@ -157,7 +158,7 @@ async def aclose(self):
157158
async def open_client(
158159
transport: Transport | None = None,
159160
url: URL | str | None = None,
160-
headers: Headers | Mapping[str, str] | None = None,
161+
headers: Headers | typing.Mapping[str, str] | None = None,
161162
):
162163
if transport is None:
163164
transport = await open_connection_pool()

0 commit comments

Comments
 (0)