Chunked transfer request encoding for lowhaio
Project description
lowhaio-chunked
Chunked transfer request encoding for lowhaio. This is only needed if content-length
is unknown before the body starts to transfer.
Installation
pip install lowhaio_chunked
or just copy and paste the below 8 lines of code into your project, ensuring to also follow the requirements in the LICENSE file.
def chunked(body):
async def _chunked(*args, **kwargs):
async for chunk in body(*args, **kwargs):
yield hex(len(chunk))[2:].encode() + b'\r\n'
yield chunk
yield b'\r\n'
yield b'0\r\n\r\n'
return _chunked
Usage
Usage is very similar to standard lowhaio, except that the body
data should be wrapped with the chunked
function; the transfer-encoding: chunked
header is required; and the content-length
header should not be specified.
So instead of a request like
from lowhaio import Pool
request, _ = Pool()
body = ...
code, headers, body = await request(
b'POST', 'https://example.com/path', body=body,
headers=((b'content-length', b'1234'),),
)
you can write
from lowhaio import Pool
from lowhaio_chunked import chunked # Or paste in the code above
request, _ = Pool()
body = ...
code, headers, body = await request(
b'POST', 'https://example.com/path', body=chunked(body),
headers=((b'transfer-encoding': b'chunked'),),
)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
lowhaio_chunked-0.0.2.tar.gz
(1.9 kB
view hashes)
Built Distribution
Close
Hashes for lowhaio_chunked-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f04c1948f8118c8a3bfbc0689911bd308de88ad42ef77bdebde7772c91e7a4fb |
|
MD5 | 71877173821a51c00c75b978db7505b9 |
|
BLAKE2b-256 | e190ee420a5d35937dc2511d4982c622c86c7b53ccc2cc82a05126792b0646a3 |