Library for using callbacks to resume your code.
Project description
A Python library for using callbacks to resume your code.
resumeback provides a utility function decorator that enables using callback-based interfaces in a single line of execution – a single function.
Documentation
Installation
$ pip install resumeback
Example Usage
from threading import Thread
from resumeback import send_self
def ask_for_user_input(question, on_done):
def watcher():
result = input(question)
on_done(result)
Thread(target=watcher).start()
@send_self
def main(this): # "this" is a reference to the created generator instance
arbitrary_value = 10
# Yield pauses execution until one of the generator methods is called,
# such as `.send`, which we provide as the callback parameter.
number = yield ask_for_user_input("Please enter a number", this.send)
number = int(number)
print("Result:", number * arbitrary_value)
if __name__ == "__main__":
main()
Development
Requires Python, poetry, and GNU Make.
Use make help to show the available targets.
poetry is used for dependency and virtualenv management.
tox is used as a test runner for multiple isolated environments.
flake8 is used for code linting.
Github Actions are used for CI.
Acknowledgements
Project started initially after a forum post from @Varriount on the Sublime Text forum. I just took his idea “to the next (abstraction) level” and made it more convenient to use.
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
Built Distribution
Hashes for resumeback-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f2046ce1df7fe096d938b1c3babb1ec9e9b8aab8f2d92213f376bba80ffcc24 |
|
MD5 | 2584879de3379a969d8c2575f26a065f |
|
BLAKE2b-256 | 3e5c00ba8fbebf0bde564525dc2551ee5a843f0e4d27311f52dad95164edede5 |