Skip to main content

Library for using callbacks to resume your code.

Project description

https://github.com/FichteFoll/resumeback/workflows/CI/badge.svg https://coveralls.io/repos/FichteFoll/resumeback/badge.svg https://img.shields.io/pypi/v/resumeback.svg https://img.shields.io/pypi/pyversions/resumeback.svg

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

https://fichtefoll.github.io/resumeback/

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

resumeback-1.0.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

resumeback-1.0.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file resumeback-1.0.0.tar.gz.

File metadata

  • Download URL: resumeback-1.0.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1032-azure

File hashes

Hashes for resumeback-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3c02156eea168e1e3b5306d4b40accd289e71520a4d2575ddfeaa476ce02c092
MD5 5eb8192ec5aef5d20a0a352d1de8d638
BLAKE2b-256 c8b6501b60165044caa8dfca86380797e71f85900cd49dc9dd1e0f0d1a63ad98

See more details on using hashes here.

File details

Details for the file resumeback-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: resumeback-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1032-azure

File hashes

Hashes for resumeback-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f2046ce1df7fe096d938b1c3babb1ec9e9b8aab8f2d92213f376bba80ffcc24
MD5 2584879de3379a969d8c2575f26a065f
BLAKE2b-256 3e5c00ba8fbebf0bde564525dc2551ee5a843f0e4d27311f52dad95164edede5

See more details on using hashes here.

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