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 hashes)
Built Distribution
Close
Hashes for aioreadline-2024.1.25-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 493d1a969978d41f578d9dea2204629a12c3634675db002e0776c675214e5b74 |
|
MD5 | 0adbee608f41bff31ee0931fe2537b5c |
|
BLAKE2b-256 | 8ed11e7f4231f6ce586933e3655dca32dc92ba526d0ff976a0db8546726b6fd7 |