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 6 lines of code into your project, ensuring to also follow the requirements in the LICENSE file.
async def chunked(body):
async for chunk in body:
yield hex(len(chunk))[2:].encode() + b'\r\n'
yield chunk
yield b'\r\n'
yield b'0\r\n\r\n'
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.1.tar.gz
(1.9 kB
view hashes)
Built Distribution
Close
Hashes for lowhaio_chunked-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fac67f873759f7f7182d064fdad79cd002897d00b026e97b3f5bd82eef86bad9 |
|
MD5 | 13991190e31a01e95e257d7edcb8f7a4 |
|
BLAKE2b-256 | bf8d34bec7858a41a7c1f8f0fba57fe2cabfde8e2dec8daf53cb904143a30783 |