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.5.tar.gz
(1.9 kB
view hashes)
Built Distribution
Close
Hashes for lowhaio_chunked-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3f0f7e90b734227d2d9c372e9b510829ae6879704e34f09b8c6eccc6597d61d |
|
MD5 | d0d872cb85789412baa5d2e05ba237c4 |
|
BLAKE2b-256 | ba08948be700acec606e21c05bce2809b195611ec44f922262ef8c07cb16a135 |