Prevent your computer from going to sleep.
Reason this release was yanked:
Concurrent safe problem
Project description
Keep Awake
Keep your system on and screen on, it will not fall asleep. It is useful in some long term calculations.
How to use?
pip install keep_awake==1.1.0
This module exposes only two methods: prevent_sleep and allow_sleep, both of them taks no arguments.
prevent_sleep returns a boolean value that indicates whether the operation is successful. After you call this method, your system and screen will keep working until you invoke allow_sleep.
You won't have any exceptions by calling any methods twice, or calling allow_sleep without calling prevent_sleep, they have built-in protection.
If you forget to call allow_sleep before exiting your program, it doesn't matter, it will back to usual once the module is released.
We also provide a context manager for you to manage the state automatically, just like this:
from keep_awake import KeepAwakeGuard
with KeepAwakeGuard():
# do your work here
Supported platforms
macOS✅
Both arm64 and x64 are OK, this code only depends on IOKit and CoreFoundation, which is built-in macOS Framework.
Methods on macOS are concurrent safe.
Windows✅
We didn't test widely on various versions of Windows because I have no Windows computer :(
But basically, it can work fine on Windows 10 x64 and Windows 11 x64. I have already tested.
Keeping system awake on Windows needs a dedicated thread to sync periodically(typically 1 second), so it is hard to perform concurrent-control. Do NOT try to call methods in less than 1 second!
Linux⚠️
Linux distros are various, we can only support Gnome and KDE. They have dbus api so this part is implemented in pure python. If you need this feature, please install with this command:
pip install keep_awake[linux]
If you failed to install, try to use your package manager to install cmake, pkg-config, libdbus-1-dev and libglib2.0-dev.
Methods on Linux are concurrent safe.
Building & Debugging
We use uv to manage the project, so it is very easy to build and test it.
For building:
uv build
For testing
uv run pytest
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keep_awake-1.1.0.tar.gz.
File metadata
- Download URL: keep_awake-1.1.0.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61ba787431472b82d4e952061241135099389247fd7531ec445d0e86333c53e8
|
|
| MD5 |
7a3825f32d72a3924359403e03ecafa1
|
|
| BLAKE2b-256 |
c829f8fe1ea095b72134f85054fb76049ef1db432e19c593090df31562f7c5ec
|
File details
Details for the file keep_awake-1.1.0-cp314-cp314-macosx_26_0_arm64.whl.
File metadata
- Download URL: keep_awake-1.1.0-cp314-cp314-macosx_26_0_arm64.whl
- Upload date:
- Size: 8.1 kB
- Tags: CPython 3.14, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f044be917bdfb206a01b38d91a7111197f8c272413d564d36f33d51764e1cc87
|
|
| MD5 |
afb2ecd3e979514079d36da623700a4c
|
|
| BLAKE2b-256 |
6425b5fee469d36102776d2bf52e56e8281405fcf2a009940cfa4d13427c8d64
|