Skip to main content

Python module to prevent macOS system sleep using the caffeinate(1) command

Project description

selfcaffeinate

Description

Python module to prevent macOS system sleep using the caffeinate(1) command

Introduction to caffeinate(1)

macOS users can prevent system sleep using the system command caffeinate like so:

$ caffeinate sh -c "echo sleeping; sleep 60; echo done"
sleeping
done
$

Or hold a power management assertion on an existing process:

$ pgrep long-running-process
555
$ caffeinate -w 555 && echo "done"
done

This module allows caffeinate to be used programmatically from Python code to prevent system sleep, without having to run the command externally.

Example usage

def main():
    print("Self caffeinating")
    SLEEP_PERIOD = 60
    sc = SelfCaffeinate()
    for i in range(0, 60):
        print("Sleeping {}".format(SLEEP_PERIOD))
        time.sleep(SLEEP_PERIOD)

Or use the with pattern:

def main():
    print("Self caffeinating")
    SLEEP_PERIOD = 60
    with SelfCaffeinate():
      for i in range(0, 60):
          print("Sleeping {}".format(SLEEP_PERIOD))
          time.sleep(SLEEP_PERIOD)

The default path to macOS's caffeinate should work, but if you have an alternate path, you can specify that:

def main():
    print("Self caffeinating")
    SLEEP_PERIOD = 60
    sc = SelfCaffeinate(caffeinate_path="/path/to/my/weird/caffeinate")
    for i in range(0, 60):
        print("Sleeping {}".format(SLEEP_PERIOD))
        time.sleep(SLEEP_PERIOD)

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

selfcaffeinate-0.1.0.tar.gz (3.3 kB view details)

Uploaded Source

Built Distribution

selfcaffeinate-0.1.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file selfcaffeinate-0.1.0.tar.gz.

File metadata

  • Download URL: selfcaffeinate-0.1.0.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.6.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.6

File hashes

Hashes for selfcaffeinate-0.1.0.tar.gz
Algorithm Hash digest
SHA256 be4a3df2ff9f766d9bed29e133c066bbcffbcba2383468836f2eb167889d11cd
MD5 b14eea5f95e7103880df31060b05ea4e
BLAKE2b-256 b6b3e61adb79e3c2ff353c84b20e602ddd0fcda10b4f21af0a26206221696cd4

See more details on using hashes here.

File details

Details for the file selfcaffeinate-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: selfcaffeinate-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.6.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.6

File hashes

Hashes for selfcaffeinate-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a10243591ff79b9280fd4d6d0362aed1ea5b0e22332b6a67fa7f63b430d4c23
MD5 68e075c82166fcc61aad8cb5062ef7d7
BLAKE2b-256 119e38d1628362a297b7841b46dd96a938817a2db57ac28b7a000d9e517c735c

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