Skip to main content

Kivy application library on steroids

Project description

Kaki - Advanced application library for Kivy

This library enhance Kivy frameworks with opiniated features such as:

  • Auto reloading kv or py (watchdog required, limited to some uses cases)
  • Idle detection support
  • Foreground lock (windows only)

Example

This is a bootstrap that will:

  • automatically declare the module live.ui (live/ui.py) as a provider for the widget UI
  • build the application widget, and show it to a window

If the bootstrap is started with the environment variable DEBUG=1, it will start a watchdog, and listen for changes, according to AUTORELOADER_PATHS. When something changes, the current application widget will be cleared out, and a new one will be instanciated, after reloading.

from kaki.app import App
from kivy.factory import Factory

class Live(App):
    CLASSES = {
        "UI": "live.ui"
    }
    AUTORELOADER_PATHS = [
        (".", {"recursive": True}),
    ]
    def build_app(self):
        return Factory.UI()

Live().run()

Application class configuration

#: Control either we activate debugging in the app or not
#: Defaults depend if "DEBUG" exists in os.environ
DEBUG = "DEBUG" in os.environ

#: If true, it will require the foreground lock on windows
FOREGROUND_LOCK = False

#: List of KV files under management for auto reloader
KV_FILES = []

#: List of path to watch for autoreloading
AUTORELOADER_PATHS = [
    # (".", {"recursive": False}),
]

#: List of extensions to ignore
AUTORELOADER_IGNORE_PATTERNS = [
    "*.pyc", "*__pycache__*"]

#: Factory classes managed by kaki
CLASSES = {}

#: Idle detection (if True, event on_idle/on_wakeup will be fired)
#: Rearming idle can also be done with rearm_idle()
IDLE_DETECTION = False

#: Auto install idle detection check when activated
IDLE_DETECTION_AUTO_START = True

#: Default idle timeout
IDLE_TIMEOUT = 60

#: Raise error
#: When the DEBUG is activated, it will raise any error instead
#: of showing it on the screen. If you still want to show the error
#: when not in DEBUG, put this to False
RAISE_ERROR = True

Idle Management

The idle detection feature is designed to trigger an action if the user has not touched the screen for a certain period of time. This can be used to display an attractor screen, screensaver, or other content.

To enable idle detection, set the IDLE_DETECTION configuration to True. Kaki will then listen for touch down/move events. If no such events occur within the IDLE_TIMEOUT interval, or if the rearm_idle function has not been called, the on_idle event will be triggered on the application class. If a touch event occurs or rearm_idle is called while the system is in idle mode, the on_wakeup event will be triggered on the application class.

If you are playing a video and do not want idle detection to be triggered, you can use the rearm_idle function on the application class to reset the idle timer to 0 seconds.

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

kaki-0.1.8.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

kaki-0.1.8-py2.py3-none-any.whl (7.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file kaki-0.1.8.tar.gz.

File metadata

  • Download URL: kaki-0.1.8.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for kaki-0.1.8.tar.gz
Algorithm Hash digest
SHA256 215e1b3e187a07ebfb6e067834ea5cc0c46520d9f65db080daf45fe4f280a47b
MD5 85c4abeb9dbb9f4005052cf074f69af0
BLAKE2b-256 bf8bf0c3aa81b800961aafdfc07d9229f84cb8e979c84c89a4bde5baca998983

See more details on using hashes here.

File details

Details for the file kaki-0.1.8-py2.py3-none-any.whl.

File metadata

  • Download URL: kaki-0.1.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for kaki-0.1.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bf7f988c160a4a92d15c5dbd953872c562bb8048911a4b499c62f2e12c05c0ed
MD5 f75ebbb1b9ef0a7d1ae66965a0f3ec85
BLAKE2b-256 d150ac20d827a12881e7e77446f0148761ee695bb0db5bd62daadd19d84ed7d6

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