Simple Windows-only Python package to read your current power plan (name and GUID) and switch to one of the standard Windows power plans.
Project description
powerplan (v1.2.0)
Simple Windows-only Python package to read your current power plan (name and GUID) and switch to one of the standard Windows power plans using powercfg.
Features
- Get the GUID of the active Windows power plan
- Get the name of the active Windows power plan
- Switch the power plan to Power saver, Balanced, or High performance
- Recognizes Ultimate Performance and the Atlas Power Scheme when active (read-only detection)
Requirements
- Windows (10/11)
- Python 3.0+
powercfgavailable on PATH (comes with Windows)
Installation
From PyPI:
pip install powerplan
From source (local wheel):
python3 setup.py sdist bdist_wheel
pip install dist/powerplan-{VERSION}-py3-none-any.whl
Usage
import powerplan
# Read current plan
name = powerplan.get_current_scheme_name()
guid = powerplan.get_current_scheme_guid()
print(name, guid)
# Change plan
powerplan.change_current_scheme_to_powersaver()
powerplan.change_current_scheme_to_balanced()
powerplan.change_current_scheme_to_high()
API
get_current_scheme_name() -> str- Returns the name of the currently active power plan.
get_current_scheme_guid() -> str- Returns the GUID of the currently active power plan.
change_current_scheme_to_powersaver() -> boolchange_current_scheme_to_balanced() -> boolchange_current_scheme_to_high() -> bool- Current behavior: returns
Trueif the subprocess call did not raise an exception, andFalseonly if an exception occurred (e.g.,powercfgnot found). The implementation does not check thepowercfgexit code, so a failed switch (non-zero return code) may still returnTrue.
- Current behavior: returns
Notes:
- Detection supports the standard plan GUIDs:
- Power saver:
a1841308-3541-4fab-bc81-f71556f20b4a - Balanced:
381b4222-f694-41f0-9685-ff5bb260df2e - High performance:
8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c - Ultimate performance:
e9a42b02-d5df-448d-aa00-03f14749eb61 - Atlas Power Scheme:
11111111-1111-1111-1111-111111111111
- Power saver:
- The active plan is determined by running
powercfg -getactivescheme. - Plan information is captured at import time. If the system power plan changes after importing the module, restart the Python process or re-import the module to refresh values.
Verifying a switch
If you need to confirm a switch occurred, either:
- Check the return code yourself (update the code to use
subprocess.run(..., check=True)), or - Re-query after switching:
powerplan.change_current_scheme_to_balanced()
# Re-import or reload to refresh cached values
import importlib; importlib.reload(powerplan)
print(powerplan.get_current_scheme_name())
License
MIT
Author
Made in Germany by Temal - https://colinm.de/
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 powerplan-1.2.0.tar.gz.
File metadata
- Download URL: powerplan-1.2.0.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0741f236039b11cc8e5bb5b1d6a5a967bb30f4470ff69d32ae2949bcf94c25d0
|
|
| MD5 |
b55cabfa35464769d714e653452e8b8f
|
|
| BLAKE2b-256 |
9d1f3086dbf766ff7cfe204ea486c877575c464b93488cf4416076234dd9f8f8
|
File details
Details for the file powerplan-1.2.0-py3-none-any.whl.
File metadata
- Download URL: powerplan-1.2.0-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
634795039aa834faa2eb8ae7b9d7b4d8c91b611bfcfe20741a44e1bd5a5eaf75
|
|
| MD5 |
14e94c51699507dad217308159344adf
|
|
| BLAKE2b-256 |
c6ae4368103886ed5b4914ff2c39a9b894fbc7cf8a0b4a1fd8a2f696af87279f
|