{"id":15532821,"url":"https://github.com/tito/kaki","last_synced_at":"2025-04-05T19:09:34.487Z","repository":{"id":51134804,"uuid":"122851008","full_name":"tito/kaki","owner":"tito","description":"Kivy application library on steroid","archived":false,"fork":false,"pushed_at":"2025-01-12T21:57:41.000Z","size":54,"stargazers_count":52,"open_issues_count":5,"forks_count":17,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-29T18:06:01.255Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tito.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-25T15:57:20.000Z","updated_at":"2025-01-12T21:57:45.000Z","dependencies_parsed_at":"2023-01-30T18:15:34.870Z","dependency_job_id":"dd0b8852-7a50-49dd-a8da-1e86cfbfcd53","html_url":"https://github.com/tito/kaki","commit_stats":{"total_commits":47,"total_committers":3,"mean_commits":"15.666666666666666","dds":0.2978723404255319,"last_synced_commit":"94dc664ff898457040995af87d03aaded45230e1"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito%2Fkaki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito%2Fkaki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito%2Fkaki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito%2Fkaki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tito","download_url":"https://codeload.github.com/tito/kaki/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247386263,"owners_count":20930618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T11:33:17.436Z","updated_at":"2025-04-05T19:09:34.386Z","avatar_url":"https://github.com/tito.png","language":"Python","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"# Kaki - Advanced application library for Kivy\n\nThis library enhance Kivy frameworks with opiniated features such as:\n\n- Auto reloading kv or py (`watchdog` required, limited to some uses cases)\n- Idle detection support\n- Foreground lock (windows only)\n\n## Example\n\nThis is a bootstrap that will:\n- automatically declare the module `live.ui` (`live/ui.py`) as a provider for the widget `UI`\n- build the application widget, and show it to a window\n\nIf the bootstrap is started with the environment variable `DEBUG=1`, it will start a watchdog, and listen for changes, according to `AUTORELOADER_PATHS`.\nWhen something changes, the current application widget will be cleared out, and a new one will be instanciated, after reloading.\n\n```python\nfrom kaki.app import App\nfrom kivy.factory import Factory\n\nclass Live(App):\n    CLASSES = {\n        \"UI\": \"live.ui\"\n    }\n    AUTORELOADER_PATHS = [\n        (\".\", {\"recursive\": True}),\n    ]\n    def build_app(self):\n        return Factory.UI()\n\nLive().run()\n```\n\n## Application class configuration\n\n\n    #: Control either we activate debugging in the app or not\n    #: Defaults depend if \"DEBUG\" exists in os.environ\n    DEBUG = \"DEBUG\" in os.environ\n\n    #: If true, it will require the foreground lock on windows\n    FOREGROUND_LOCK = False\n\n    #: List of KV files under management for auto reloader\n    KV_FILES = []\n\n    #: List of path to watch for autoreloading\n    AUTORELOADER_PATHS = [\n        # (\".\", {\"recursive\": False}),\n    ]\n\n    #: List of extensions to ignore\n    AUTORELOADER_IGNORE_PATTERNS = [\n        \"*.pyc\", \"*__pycache__*\"]\n\n    #: Factory classes managed by kaki\n    CLASSES = {}\n\n    #: Idle detection (if True, event on_idle/on_wakeup will be fired)\n    #: Rearming idle can also be done with rearm_idle()\n    IDLE_DETECTION = False\n\n    #: Auto install idle detection check when activated\n    IDLE_DETECTION_AUTO_START = True\n\n    #: Default idle timeout\n    IDLE_TIMEOUT = 60\n\n    #: Raise error\n    #: When the DEBUG is activated, it will raise any error instead\n    #: of showing it on the screen. If you still want to show the error\n    #: when not in DEBUG, put this to False\n    RAISE_ERROR = True\n\n## Idle Management\n\nThe 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.\n\nTo enable idle detection, set the `IDLE_DETECTION` configuration to `True`.\nKaki 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.\n\nIf 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_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftito%2Fkaki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftito%2Fkaki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftito%2Fkaki/lists"}