A user I/O handler
Project description
nuio is an attempt to add a standardized and easy-to-use user input/output interface for python.
The goal is to provide a set of classes with print-alike-operating methods and a few other methods for markup & co to deal with user input/output.
Features
Currently nuio is able to eal with POSIX Terminals. The corresponding classes are in nuio.input.terminal and nio.output.terminal.
Philosopy
nuio tries to keep stuff as simple as possible, but it requires python3.5.1+ language features.
Any blocking user-input is done using async features, this will become handy in future.
Plans
The following features should be added:
curses based I/O
an AJAX based I/O system
non-POSIX terminals
fancy frames for BlockOutput
Example
This is a simple example for nuio:
#!/usr/bin/python3 from nuio.input.terminal import POSIXTerminalInput from nuio.output.terminal import TerminalOutput, ESCAPES, TerminalBlockOutput import asyncio, shutil async def main(): width, height = shutil.get_terminal_size() # an output device out = TerminalBlockOutput(height - 10, width) out.print("This is a test") # input devices require an output device to handle prompts. inp = POSIXTerminalInput(out) data = await inp.input_int(prompt = "enter an integer > ") # You are able to use a bunch of ANSI escape sequences. # Usually you should use nuio.output.terminal.colors instead, # this will be compatible with other output devices. out.print_colored(ESCAPES["underline"], "you entered:", data) data = await inp.input_int(prompt = "enter an integer [4-100] > ", range = range(4, 100)) out.print_colored(ESCAPES["fg_red"], "you entered:", data) data = await inp.input_float(prompt = "enter an float [4-100] > ", range = range(4, 100)) out.print_colored(ESCAPES["bg_cyan"] + ESCAPES["fg_black"], "you entered:", data) # Usually you should make the input async, # but to simplify this the complete main function is async. loop = asyncio.get_event_loop() loop.run_until_complete(main()) loop.close()
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
Built Distribution
File details
Details for the file nuio-0.0.4.tar.gz
.
File metadata
- Download URL: nuio-0.0.4.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a36590cba768925be97113849a1524ba6b7ed39787f2fd0689d0e0a30aca2ac |
|
MD5 | bd56b0e01c174704b4fd669692fcc6c6 |
|
BLAKE2b-256 | d9272baa3afd37fddc91388606686d6e75a291d83be34727c564b88e42c752a7 |
File details
Details for the file nuio-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: nuio-0.0.4-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bc1de853ac737e8e8d24bfc1379d5d45df094e97ccf7d7cfa51bcabcd0cd68d |
|
MD5 | fb09a18fd81dbbe17e2dd96e9c719c36 |
|
BLAKE2b-256 | 6b180f454c859bbacbcabcd5391dab0afa6102adb172b6d9d5e06514f75e3289 |