async-compatible libreadline wrapper
Project description
aioreadline
Python has a builtin readline module. However, the builtin module is difficult to use in async Python code. This module provides an interface around the async-compatible functions of libreadline using a ctypes wrapper.
Example
import asyncio, atexit
async def _main():
while True:
line = await aiorl.getLine()
if line is None or line == b"quit":
aiorl.stop()
loop.stop()
break
elif len(line) > 0:
aiorl.add_history(line)
print(line)
loop = asyncio.get_event_loop()
loop.create_task(_main())
aiorl = AIOReadline(prompt="> ", loop=loop, history_file=".aioreadline_history")
atexit.register(lambda: aiorl.stop())
try:
loop.run_forever()
except KeyboardInterrupt:
loop.stop()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aioreadline-2024.1.25.tar.gz
(3.9 kB
view details)
Built Distribution
File details
Details for the file aioreadline-2024.1.25.tar.gz
.
File metadata
- Download URL: aioreadline-2024.1.25.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fd1b6c9c682f855a1ef6ab2c2457822ff233161029c5e7ef54478ca895a6b37 |
|
MD5 | fddb6488d37fd85310d4f60db89b316c |
|
BLAKE2b-256 | e07514fdf4824de264202a0016755d6ef36b84a3f2e1ee0eec3713a8aae82083 |
File details
Details for the file aioreadline-2024.1.25-py3-none-any.whl
.
File metadata
- Download URL: aioreadline-2024.1.25-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 493d1a969978d41f578d9dea2204629a12c3634675db002e0776c675214e5b74 |
|
MD5 | 0adbee608f41bff31ee0931fe2537b5c |
|
BLAKE2b-256 | 8ed11e7f4231f6ce586933e3655dca32dc92ba526d0ff976a0db8546726b6fd7 |