Skip to content

NightKey/advanced-input

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published