Skip to main content

IO Extention

Project description

Advanced Input

Advanced input for python, where you can read in just one character or have inputs priority ordered.

Usage

from advanced-input import get_advanced_input, PriorityOrder
from threading import Thread
from time import sleep

input_handler = get_advanced_input()

def thread_one():
    user_input = input_handler.input(priority=PriorityOrder.High)
    print(user_input)

def main():
    backgroundThread = Thread(target=thread_one)
    backgroundThread.start()
    sleep(.1)
    input_handler.read("Press any character to exit...", PriorityOrder.Low)
    input_handler.stop()

This will result in a user input for thread_one being created before the main function's exit will be available. Normally, this would result in the program exiting, before accepting the user input of thread_one. With this, thread one will be in a higher priority than main, and that will be the first to be served the user's input. Additionally, Read() returns when one character is pressed.

If there are multiple inputs with the same priority, it will return them in a first come last serve method.

Windows quirks

Due to how Windows works with new line (\r\n), on Windows it is not possible to read the "Carriage Return" (\r) character. It will always return "Line Feed" (\n) instead. Due to how Windows console works, the default (utf-8) encoding input will not work with some special character. For it to work, please specify the encoding of your system.

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

advanced_input-0.2.2.tar.gz (43.6 kB view hashes)

Uploaded Source

Built Distribution

advanced_input-0.2.2-py3-none-any.whl (43.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page