Skip to main content

Monte Carlo Power Analysis for Statistical Models

Project description

Tests PyPI Python License: GPL v3 DOI

███╗   ███╗  ██████╗ ██████╗ 
████╗ ████║ ██╔════╝ ██╔══██╗ ██████╗ ██╗    ██╗███████╗██████╗ 
██╔████╔██║ ██║      ██║  ██║██╔═══██╗██║    ██║██╔════╝██╔══██╗
██║╚██╔╝██║ ██║      ██████╔╝██║   ██║██║ █╗ ██║█████╗  ██████╔╝
██║ ╚═╝ ██║ ██║      ██╔═══╝ ██║   ██║██║███╗██║██╔══╝  ██╔══██╗
██║     ██║ ╚██████╗ ██║     ╚██████╔╝╚███╔███╔╝███████╗██║  ██║
╚═╝     ╚═╝  ╚═════╝ ╚═╝      ╚═════╝  ╚══╝╚══╝ ╚══════╝╚═╝  ╚═╝

MCPower

Simple Monte Carlo power analysis for complex models. Find the sample size you need or check if your study has enough power - even with complex models that traditional power analysis can't handle.

Desktop Application

It's a Python package, but prefer a graphical interface? MCPower GUI is a standalone desktop app with built-in documentation — no Python installation required. Download ready-to-run executables for Windows, Linux, and macOS from the releases page.

Model setup Results
MCPower GUI — model setup MCPower GUI — results

Why MCPower?

Traditional power formulas break down with interactions, correlated predictors, categorical variables, or non-normal data. MCPower simulates instead — generates thousands of datasets like yours, fits your model, and counts how often the effects are detected.

  • Write your formula. Define your model the way you'd write it in R — outcome = treatment + covariate + treatment*covariate. MCPower parses it, sets up the simulation, and handles dummy coding, interactions, and factor variables automatically. You focus on the research question, not the mechanics.

  • Test your assumptions. Real studies rarely match textbook conditions — effect sizes may be smaller than expected, distributions may be skewed, variance may not be constant. Add scenarios=True and MCPower runs your analysis under optimistic, realistic, and worst-case conditions, giving you a range instead of a single number you can't trust.

  • All hypotheses at once. MCPower evaluates power for every effect in your model by default. Narrow it down with target_test="effect1, effect2" when needed. Built-in corrections (Bonferroni, FDR, Holm, Tukey) keep false positive rates under control across multiple comparisons.

  • Use your own data. Upload a CSV and MCPower auto-detects variable types (continuous, binary, categorical), preserves real distributions, and handles correlations between predictors. Especially useful when you have pilot data and want your power analysis to reflect actual conditions rather than idealized ones.

  • Mixed models. Clustered and longitudinal data are supported via standard R random-effects syntax — (1|group) for random intercepts, (1 + x|group) for random slopes, and nested structures like (1|school/classroom).

Get Started in 2 Minutes

Install

pip install mcpower

Update to the latest version.

pip install --upgrade mcpower

Your First Power Analysis

# 0. Import installed package
from mcpower import MCPower

# 1. Define your model (just like R)
model = MCPower("satisfaction = treatment + motivation")

# 2. Set effect sizes (how big you expect effects to be)
model.set_effects("treatment=0.5, motivation=0.3")

# 3. Change the treatment to "binary" (people receive treatment or not).
model.set_variable_type("treatment=binary")

# 4. Find the sample size you need
model.find_sample_size(target_test="treatment", from_size=50, to_size=200, summary="long")

Output: "You need N=75 for 80% power to detect the treatment effect"

That's it! 🎉

🎯 Scenario Analysis: Test Your Assumptions

Real studies rarely match perfect assumptions. MCPower's scenario analysis tests how robust your power calculations are under realistic conditions.

# Test robustness with scenario analysis
model.find_sample_size(
    target_test="treatment", 
    from_size=50, to_size=300,
    scenarios=True  # 🔥 The magic happens here
)

Output:

SCENARIO SUMMARY
================================================================================

Uncorrected Sample Sizes:
Test                                     Optimistic   Realistic    Doomer      
-------------------------------------------------------------------------------
treatment                                75           85           100         
================================================================================

What each scenario means:

  • Optimistic: Your ideal conditions (original settings)
  • Realistic: Moderate real-world complications (small effect variations, mild assumption violations)
  • Doomer: Conservative estimate (larger effect variations, stronger assumption violations)

💡 Pro tip: Use the Realistic scenario for planning. If Doomer is acceptable, you're really safe!

Understanding Effect Sizes

Effect sizes tell you how much the outcome changes when predictors change.

  • Effect size = 0.5 means the outcome increases by 0.5 standard deviations when:
    • Continuous variables: Predictor increases by 1 standard deviation
    • Binary variables: Predictor changes from 0 to 1 (e.g., control → treatment)
    • Factor variables: Each level compared to reference level (first level)

Practical examples:

model.set_effects("treatment=0.5, age=0.3, income=0.2")
  • treatment=0.5: Treatment increases outcome by 0.5 SD (medium-large effect)
  • age=0.3: Each 1 SD increase in age → 0.3 SD increase in outcome
  • income=0.2: Each 1 SD increase in income → 0.2 SD increase in outcome

Effect size guidelines:

  • 0.1 = Small effect (detectable but modest)
  • 0.25 = Medium effect (clearly noticeable)
  • 0.4 = Large effect (substantial impact)

Effect size guidelines (binary variables):

  • 0.2 = Small effect (detectable but modest)
  • 0.5 = Medium effect (clearly noticeable)
  • 0.8 = Large effect (substantial impact)

Your uploaded data is automatically standardized (mean=0, SD=1) so effect sizes work the same way whether you use synthetic or real data.

Copy-Paste Examples for Common Studies

Randomized Controlled Trial

from mcpower import MCPower

# RCT with treatment + control variables
model = MCPower("outcome = treatment + age + baseline_score")
model.set_effects("treatment=0.6, age=0.2, baseline_score=0.8")
model.set_variable_type("treatment=binary")  # 0/1 treatment

# Find sample size for treatment effect with scenario analysis
model.find_sample_size(target_test="treatment", from_size=100, to_size=500, 
                      by=50, scenarios=True)

A/B Test with Interaction

from mcpower import MCPower

# Test if treatment effect depends on user type
model = MCPower("conversion = treatment + user_type + treatment*user_type")
model.set_effects("treatment=0.4, user_type=0.3, treatment:user_type=0.5")
model.set_variable_type("treatment=binary, user_type=binary")

# Check power robustness for the interaction
model.find_power(sample_size=400, target_test="treatment:user_type", scenarios=True)

Multi-Group Study with Categorical Variables

from mcpower import MCPower

# Study with 3 treatment groups and 4 education levels
model = MCPower("wellbeing = treatment + education + age")
model.set_variable_type("treatment=(factor,3), education=(factor,4)")

# Set effects for each factor level (vs. reference level 1)
model.set_effects("treatment[2]=0.4, treatment[3]=0.6, education[2]=0.3, education[3]=0.5, education[4]=0.7, age=0.2")

# Find sample size for treatment effects
model.find_sample_size(target_test="treatment[2], treatment[3]", scenarios=True)

Survey with Correlated Predictors

from mcpower import MCPower

# Predictors are often correlated in real data
model = MCPower("wellbeing = income + education + social_support")
model.set_effects("income=0.4, education=0.3, social_support=0.6")
model.set_correlations("corr(income, education)=0.5, corr(income, social_support)=0.3")

# Find sample size for any effect
model.find_sample_size(target_test="all", from_size=200, to_size=800, 
                      by=100, scenarios=True)

Customize for Your Study

Different Variable Types

# Binary, factors, skewed, or other distributions
model.set_variable_type("treatment=binary, condition=(factor,3), income=right_skewed, age=normal")

# Binary with custom proportions (30% get treatment)
model.set_variable_type("treatment=(binary,0.3)")

# Factors with custom group sizes (20%, 50%, 30%)
model.set_variable_type("condition=(factor,0.2,0.5,0.3)")

Working with Factors (Categorical Variables)

# Factors automatically create dummy variables
model = MCPower("outcome = treatment + education")
model.set_variable_type("treatment=(factor,3), education=(factor,4)")

# Set effects for specific levels (level 1 is always reference)
model.set_effects("treatment[2]=0.5, treatment[3]=0.7, education[2]=0.3, education[3]=0.4, education[4]=0.6")

Your Own Data

Use upload_data() to preserve real-world distribution shapes and relationships:

import csv

# Load your data (no extra dependencies needed)
with open("my_data.csv") as f:
    reader = csv.DictReader(f)
    rows = list(reader)
data = {col: [float(r[col]) for r in rows] for col in ["hp", "wt", "cyl"]}

# Upload with automatic type detection
model = MCPower("mpg = hp + wt + cyl")
model.upload_data(data)
model.set_effects("hp=0.5, wt=0.3, cyl[6]=0.2, cyl[8]=0.4")
model.find_power(sample_size=100)

Or with pandas (optional: pip install pandas):

import pandas as pd
data = pd.read_csv("my_data.csv")
model.upload_data(data[["hp", "wt", "cyl"]])

Auto-Detection

Variables are automatically classified based on unique values:

  • 1 unique value: Dropped (constant)
  • 2 unique values: Binary variable
  • 3-6 unique values: Factor/categorical variable
  • 7+ unique values: Continuous variable

Correlation Preservation Modes

Control how correlations are handled with the preserve_correlation parameter:

# No correlation preservation
model.upload_data(data, preserve_correlation="no")

# Partial: Compute correlations from data, merge with user settings
model.upload_data(data, preserve_correlation="partial")

# Strict: Bootstrap whole rows to preserve exact relationships (default)
model.upload_data(data, preserve_correlation="strict")

Override Auto-Detection

Force specific variable types:

model.upload_data(
    data,
    data_types={"cyl": "factor", "hp": "continuous"}
)

Multiple Testing

# Testing multiple effects? Control false positives
model.find_power(
    sample_size=200,
    target_test="treatment,covariate,treatment:covariate",
    correction="Benjamini-Hochberg",
    scenarios=True  # Test robustness too!
)

Post-Hoc Pairwise Comparisons (Tukey HSD)

# Compare specific factor levels with Tukey correction
model = MCPower("outcome = group + covariate")
model.set_variable_type("group=(factor,3)")
model.set_effects("group[2]=0.4, group[3]=0.6, covariate=0.3")

# Use "vs" syntax for pairwise comparisons + correction="tukey"
model.find_power(
    sample_size=150,
    target_test="group[1] vs group[2], group[1] vs group[3]",
    correction="tukey"
)

Test Individual Assumption Violations

# Add specific violations via custom scenario configs
model.set_scenario_configs({
    "my_test": {"heterogeneity": 0.2, "heteroskedasticity": 0.15}
})

# Run with scenario variations
model.find_sample_size(target_test="treatment", scenarios=True)

Mixed-Effects Models

from mcpower import MCPower

# Random intercept — clustered data
model = MCPower("satisfaction ~ treatment + motivation + (1|school)")
model.set_cluster("school", ICC=0.2, n_clusters=20)
model.set_effects("treatment=0.5, motivation=0.3")
model.set_variable_type("treatment=binary")
model.set_max_failed_simulations(0.10)
model.find_power(sample_size=1000)  # 1000/20 = 50 per cluster

# Random slopes — effect varies across clusters
model = MCPower("y ~ x1 + (1 + x1|school)")
model.set_cluster("school", ICC=0.2, n_clusters=20,
                   random_slopes=["x1"], slope_variance=0.1,
                   slope_intercept_corr=0.3)
model.set_effects("x1=0.5")
model.set_max_failed_simulations(0.30)
model.find_power(sample_size=1000)

# Nested random effects — students in classrooms in schools
model = MCPower("y ~ treatment + (1|school/classroom)")
model.set_cluster("school", ICC=0.15, n_clusters=10)
model.set_cluster("classroom", ICC=0.10, n_per_parent=3)  # 3 classrooms per school
model.set_effects("treatment=0.5")
model.set_max_failed_simulations(0.30)
model.find_power(sample_size=1500)

See the Mixed-Effects Models documentation for detailed documentation on all model types, parameters, and design recommendations.

MCPower's mixed-effects solver is validated against R's lme4 across 95 scenarios using four independent strategies — all 230 scenario-strategy combinations pass.

More precision

# To make a more precise estimation, consider increasing the number of simulations.
model.set_simulations(10000)

# Parallelization is enabled by default for mixed models ("mixedmodels" mode).
# To enable it for all analyses:
model.set_parallel(True)

# To disable parallelization entirely:
model.set_parallel(False)

Reproducibility & programmatic use

# Set a seed for reproducible results
model.set_seed(42)

# All set_* methods support chaining
model.set_effects("x1=0.5").set_variable_type("x1=binary").set_alpha(0.01)

# Get results as a Python dict for further processing
results = model.find_power(sample_size=200, return_results=True)

# Custom progress callback (useful in notebooks or GUIs)
model.find_power(sample_size=200, progress_callback=lambda cur, tot: print(f"{cur}/{tot}"))

# Disable progress output entirely
model.find_power(sample_size=200, progress_callback=False)

Quick Reference

Want to... Use this
Find required sample size model.find_sample_size(target_test="effect_name")
Check power for specific N model.find_power(sample_size=150, target_test="effect_name")
Test robustness Add scenarios=True to either method
Detailed output with plots Add summary="long" to either method
Test overall model target_test="overall"
Test multiple effects target_test="effect1, effect2" or "all"
Binary variables model.set_variable_type("var=binary")
Factor variables model.set_variable_type("var=(factor,3)")
Factor effects model.set_effects("var[2]=0.5, var[3]=0.7")
Correlated predictors model.set_correlations("corr(var1, var2)=0.4")
Multiple testing correction Add correction="FDR", "Holm", "Bonferroni", or "Tukey"
Post-hoc pairwise comparison target_test="group[1] vs group[2]" with correction="tukey"
Mixed model (random intercept) MCPower("y ~ x + (1|group)") + model.set_cluster(...)
Random slopes MCPower("y ~ x + (1+x|group)") + set_cluster(..., random_slopes=["x"], slope_variance=0.1)
Nested random effects MCPower("y ~ x + (1|A/B)") + two set_cluster() calls
Reproducible results model.set_seed(42)
Get results as dict Add return_results=True to either method
Stricter significance model.set_alpha(0.01)
Target 90% power model.set_power(90)

When to Use MCPower

✅ Use MCPower when you have:

  • Interaction terms (treatment*covariate)
  • Categorical variables with multiple levels
  • Binary or non-normal variables
  • Correlated predictors
  • Multiple effects to test
  • Need to test assumption robustness
  • Complex models where traditional power analysis fails

✅ Use Scenario Analysis when:

  • Planning important studies
  • Working with messy real-world data
  • Effect sizes are uncertain
  • Want conservative sample size estimates
  • You need confidence in your numbers

❌ Use traditional power analysis for:

  • For models that are not yet implemented
  • For simple models where all assumptions are clearly met.
  • For large analyses with tens of thousands of observations, tiny effects, or very low alpha levels.

What Makes Scenarios Different? (Rule-of-thumb scenarios)

Traditional power analysis assumes perfect conditions. MCPower's scenarios add realistic "messiness":

Scenario What's Different When to Use
Optimistic Your exact settings Best-case planning
Realistic Mild effect variations, small assumption violations Recommended for most studies
Doomer Larger effect variations, stronger assumption violations Conservative/worst-case planning

Behind the scenes, scenarios randomly vary:

  • Effect sizes between participants
  • Correlation strengths
  • Variable distributions
  • Assumption violations

This gives you a range of realistic outcomes instead of a single optimistic estimate. ⚠️ Important: Scenario analysis uses rule-of-thumb adjustments and may not be accurate in all settings, as it attempts to cover a wide range of real-world conditions across different fields.

📚 Advanced Features (Click to expand)

Advanced Options

All Variable Types

model.set_variable_type("""
    treatment=binary,           # 0/1 with 50% split
    ses=(binary,0.3),          # 0/1 with 30% split  
    condition=(factor,3),       # 3-level factor (equal proportions)
    education=(factor,0.2,0.5,0.3), # 3-level factor (custom proportions)
    age=normal,                # Standard normal (default)
    income=right_skewed,       # Positively skewed
    depression=left_skewed,    # Negatively skewed
    response_time=high_kurtosis, # Heavy-tailed
    rating=uniform             # Uniform distribution
""")

Factor Variables in Detail

# Factor variables are categorical with multiple levels
model = MCPower("outcome = treatment + education")

# Create factors
model.set_variable_type("treatment=(factor,3), education=(factor,4)")

# This creates dummy variables automatically:
# treatment[2], treatment[3] (treatment[1] is reference)
# education[2], education[3], education[4] (education[1] is reference)

# Set effects for specific levels
model.set_effects("treatment[2]=0.5, treatment[3]=0.7, education[2]=0.3")

# Each non-reference level needs its own effect
model.set_effects("treatment[2]=0.5, treatment[3]=0.7")

# Important: Factors cannot be used in correlations
# This will error: model.set_correlations("corr(treatment, education)=0.3")
# Use continuous variables only: model.set_correlations("corr(age, income)=0.3")

Complex Correlation Structures

import numpy as np

# Full correlation matrix for 3 CONTINUOUS variables only
# (Factors are excluded from correlation matrices)
corr_matrix = np.array([
    [1.0, 0.4, 0.6],    # Variable 1 with others
    [0.4, 1.0, 0.2],    # Variable 2 with others
    [0.6, 0.2, 1.0]     # Variable 3 with others
])
model.set_correlations(corr_matrix)

Performance Tuning

# Adjust for your needs
model.set_power(90)           # Target 90% power instead of 80%
model.set_alpha(0.01)         # Stricter significance (p < 0.01)
model.set_simulations(10000)  # High precision (slower)

Model Misspecification Testing

Use test_formula to generate data with one model but test with a simpler one -- useful for evaluating the power impact of omitting variables:

# Generate with 3 predictors, test with 2 (omitting x3)
model = MCPower("y = x1 + x2 + x3")
model.set_effects("x1=0.5, x2=0.3, x3=0.2")
model.find_power(100, test_formula="y = x1 + x2")

# Generate with clusters, test without (ignoring clustering)
model = MCPower("y ~ treatment + (1|school)")
model.set_cluster("school", ICC=0.2, n_clusters=20)
model.set_effects("treatment=0.5")
model.find_power(1000, test_formula="y ~ treatment")

See the Test Formula Tutorial for details.

Formula Syntax

# These are equivalent:
"y = x1 + x2 + x1:x2"        # Assignment style
"y ~ x1 + x2 + x1:x2"        # R-style formula
"x1 + x2 + x1:x2"            # Predictors only

# Interactions:
"x1*x2"         # Main effects + interaction (x1 + x2 + x1:x2)
"x1:x2"         # Interaction only
"x1*x2*x3"      # All main effects + all interactions

Correlation Syntax (Continuous Variables Only)

# String format (recommended)
model.set_correlations("corr(x1, x2)=0.3, corr(x1, x3)=-0.2")

# Shorthand format  
model.set_correlations("(x1, x2)=0.3, (x1, x3)=-0.2")

# Note: Factor variables cannot be correlated
# Only use continuous/binary variables in correlations

Requirements

  • Python ≥ 3.10
  • NumPy (≥1.26.0), matplotlib, joblib, tqdm
  • pandas (optional, for DataFrame input — install with pip install mcpower[pandas])

Documentation

Full documentation is available at freestylerscientist.pl/mcpower, including:

Need Help?

Roadmap

  • ✅ Linear Regression
  • ✅ Scenarios, robustness analysis
  • ✅ Factor variables (categorical predictors)
  • ✅ C++ native backend (pybind11 + Eigen, 3x speedup)
  • ✅ Mixed Effects Models (random intercepts, random slopes, nested effects) — validated against lme4
  • 🚧 Logistic Regression (coming soon)
  • ✅ ANOVA (factor variables as ANOVA, post-hoc pairwise comparisons)
  • ✅ Guide about methods, corrections
  • 📋 2 groups comparison with alternative tests
  • 📋 Robust regression methods

License & Citation

GPL v3. If you use MCPower in research, please cite:

Lenartowicz, P. (2025). MCPower: Monte Carlo Power Analysis for Complex Statistical Models (Version ) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.16502734

Replace <your version> with the version you used — check with import mcpower; print(mcpower.__version__).

@software{mcpower2025,
  author    = {Lenartowicz, Pawe{\l}},
  title     = {{MCPower}: Monte Carlo Power Analysis for Complex Statistical Models},
  year      = {2025},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.16502734},
  url       = {https://doi.org/10.5281/zenodo.16502734}
}

🚀 Ready to start? Copy one of the examples above and adapt it to your study!

I created this project for free without receiving any payment, and if you'd like to support my work, donations are appreciated!

💖 Support this project

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

mcpower-0.6.1.tar.gz (672.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mcpower-0.6.1-cp314-cp314-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.14Windows x86-64

mcpower-0.6.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mcpower-0.6.1-cp314-cp314-macosx_11_0_arm64.whl (492.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mcpower-0.6.1-cp314-cp314-macosx_10_15_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

mcpower-0.6.1-cp313-cp313-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.13Windows x86-64

mcpower-0.6.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mcpower-0.6.1-cp313-cp313-macosx_11_0_arm64.whl (491.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mcpower-0.6.1-cp313-cp313-macosx_10_13_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

mcpower-0.6.1-cp312-cp312-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86-64

mcpower-0.6.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mcpower-0.6.1-cp312-cp312-macosx_11_0_arm64.whl (491.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mcpower-0.6.1-cp312-cp312-macosx_10_13_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

mcpower-0.6.1-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

mcpower-0.6.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mcpower-0.6.1-cp311-cp311-macosx_11_0_arm64.whl (491.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mcpower-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

mcpower-0.6.1-cp310-cp310-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10Windows x86-64

mcpower-0.6.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mcpower-0.6.1-cp310-cp310-macosx_11_0_arm64.whl (489.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mcpower-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file mcpower-0.6.1.tar.gz.

File metadata

  • Download URL: mcpower-0.6.1.tar.gz
  • Upload date:
  • Size: 672.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcpower-0.6.1.tar.gz
Algorithm Hash digest
SHA256 60e0a0a4dcea316ace0f33f623389f67a91c46db64db47e16863355ed5e92c4f
MD5 33915bc1b6ed179882c8f7b8e7ce7731
BLAKE2b-256 caab05555607ba1eab36c7bd932f65007eee266c906b8b358fc94c6be4b2d73f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1.tar.gz:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcpower-0.6.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fdc6c88ce8b31931673ee31508eaceb0fdadd31c6d4be1fb65fff2e9f88d85a1
MD5 c43838cc3f52504257dd717977eae24b
BLAKE2b-256 62a830c0a83bf64cb666408a199646a42dca264a0ba023c2f597048efa247363

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp314-cp314-win_amd64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 09144b71fa562706ebe170fe227db6c1afd41465ac80217a2a776cc6ff2a7d29
MD5 fbd482c86d16a42262641b381aa800d4
BLAKE2b-256 55036172282249ce39af036f80e0e8f8e2e3d15f985046422a193ec26fc7d55b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da8ae57fcdaedcd37d6081f0e83371effaf55894f0bcb7150b28e3bf256e27de
MD5 efc72f57d04c7c3279f27ff76b3fa851
BLAKE2b-256 e034edac343611312894a4fda1fb1c7a400672ce36cdccbb8118c3255b78c451

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 bb54c80a501bf76b8aa78cde1320b08446cc505ed96732872f11a4f2505fc166
MD5 18905d8dd81a845c22bd236715abb50a
BLAKE2b-256 71d518ecb4c1d1ac10bf4883773533b3a8fb670c0829ace938df14492b43b5c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcpower-0.6.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3aed036930a0233db2dccb0f74f81919cc719656a075cffbc2a39ea2915ee3d6
MD5 ab11391db54221d6578bbbdf8e9d4e6b
BLAKE2b-256 9d045031d2204866dabb157538e86ae0dc26b651be71b6dd707cb2c3269be5cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp313-cp313-win_amd64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83f6ec920e2ad821612124d2df52f89989a6b2bdcae3a07af72fd291a19cbdce
MD5 8d89d916b0783892c1177c75358cc70c
BLAKE2b-256 cdb2e67c88d8ccc429b3d622d459293584a8b7de0ba0f285c049c0207f894f20

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 427009933ff650f1bcf6736da06894794718360dd8701000db405358748407ed
MD5 158424bd5e952f8df16a674547a77db7
BLAKE2b-256 eafba823796e649fc6a6e1a404bd495a6cd3f2edbf79b6b420be3246bbde2f7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 90bfe9b059e762ff404e915cca86ce0c0d0330de3dc7a894855fe701eae1762b
MD5 da10f4a3b02ad1ebaabfb82c35ba8528
BLAKE2b-256 9e6d57049e1b0bfb5ca7d0441489d0c7a08899f7bc9faca564fec319b1dfa457

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcpower-0.6.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ad15da11b5bed99747dca43d84efb49a78f5407a3db555a49b4ec347287f2039
MD5 805ff6ecf7e56983117dc1b679cd0c65
BLAKE2b-256 07ac748dd878e78a4d7672143e54fea5be4c3088203a08db6d4b20c28513d267

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp312-cp312-win_amd64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1a0904e6a45d3a1d17a12e857cdcf2abdc262740ce061ad4ea18de43f6ad6aae
MD5 1e0c1a07b88346717f9a1c72192e6efe
BLAKE2b-256 ef26c11bb3aa471dd7920f6cdc99e5db747ff49f818bfb528206eaa7f992bed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31c077cfb018e56b9c5dc2b44e4379a06b7e1d1af321601880bebb936e5ee212
MD5 ee09328d42ddc932d6f95318aaa05630
BLAKE2b-256 11ca4aad3e7418c76c1d5124d0b5361ecd3b574ae66bf20bcb96bff971f932ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c5e578746c0749c4f892dfd7074dcb9867f53cc97ffc40e5a0f866640e61f6d9
MD5 1f88bad91b8eb258f0598be28a256ff2
BLAKE2b-256 b1bfe3482f3c3e8a8e34a17642132ce039b3a8e535c837374348656a05a1dfe5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcpower-0.6.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 35fe608513734da31643a12e1c60a0b5790bfdb8a28f57f82ca6dd2420c04785
MD5 ecd2b6424cbe6aa4a4ef0c6d762df5ee
BLAKE2b-256 72320732c002ff6e4f7dff13d8dd9f020276cd3ad72891264e91c94bd28cdfbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp311-cp311-win_amd64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 925cb3ed4f4bf3cf3ba26fda3f09926eb5a05a0327ae3daaafebe5cd1416be32
MD5 5103782205e4aaa064c08c544e171ea2
BLAKE2b-256 8113e0195e44fd13644ddde120c183857621f3e6b1dce5604dc40dad4044b36e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02a905056ba6d4ecaddfe943765a00421d97d62a81ccb6b032a0e5327d0317a3
MD5 406fe89752b0e9f91485006014ea4ee6
BLAKE2b-256 41749438ef964c3cab7af08ee79023dfd6a18b84734dfae0d535a7ffe42d045e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fa08f386cc45117938f1bcdd01aeab397357a60b525ca0fcec0c58c75fcd8e72
MD5 3936cd90acf708dc0daa7b0ae70954b0
BLAKE2b-256 8f7b7356ea3eb79d363a0a46835a39e5872381223a9cd6ee5a5c88adbcc0b209

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcpower-0.6.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 960e5770f9a81b7e3c070c9002defca62924f503626057b42176a787acf909eb
MD5 bb17ca3894c76cd48d1e9e42c7b46a90
BLAKE2b-256 f488251a16149c39cf08ecde2d0381856fbbe85dd479c6f2561dd3cf087142d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp310-cp310-win_amd64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74772c2a69a5368618b42e7280a8f47a13ab84d093694131cb13ac6f1c756b47
MD5 a33fc490bf9a71e239a71b444f6c2654
BLAKE2b-256 ff90444a5e808d54ec737aabe14fee962e37099c0b842a0040e6bb304a0e961d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9222a1c5006daa71469466d0589f9930bee0e68ed917823de3690c520219e363
MD5 b9afa7c9b38bb5468a592226cc7385c0
BLAKE2b-256 71bbb0560fb8a21f8823c1c46e54e15ba02b0dbc65b692f8e3e3fc896ac11a88

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpower-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 899ed45163aa3f38adcf96b3f80facc666c7d93a803f54ea045ab91eec946e41
MD5 65bb41e1fea3b3b229e749dba6df0405
BLAKE2b-256 c2b576de442ef05db55d0454d01287b9c872a9f91afe58d3cd9d5376ebb26039

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: release.yml on pawlenartowicz/MCPower

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page