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 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.3.tar.gz
(1.9 kB
view hashes)
Built Distribution
Close
Hashes for lowhaio_chunked-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2dd68c4282f85d04d27681e588c380e240a8cd8b9895bc19cc3795c0f30f80a |
|
MD5 | 7d136f3350216546c00f0752ca47b211 |
|
BLAKE2b-256 | 8c75d6726e9dced8660ab90219ecead0b87e0656c2ca8c55c19b74a89cc45723 |