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 — 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 wiki page 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 on the MCPower Wiki, 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.0.tar.gz (556.4 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.0-cp314-cp314-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.14Windows x86-64

mcpower-0.6.0-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.0-cp314-cp314-macosx_11_0_arm64.whl (492.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

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

Uploaded CPython 3.13Windows x86-64

mcpower-0.6.0-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.0-cp313-cp313-macosx_11_0_arm64.whl (491.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

mcpower-0.6.0-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.0-cp312-cp312-macosx_11_0_arm64.whl (491.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

mcpower-0.6.0-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.0-cp311-cp311-macosx_11_0_arm64.whl (490.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows x86-64

mcpower-0.6.0-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.0-cp310-cp310-macosx_11_0_arm64.whl (489.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mcpower-0.6.0-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.0.tar.gz.

File metadata

  • Download URL: mcpower-0.6.0.tar.gz
  • Upload date:
  • Size: 556.4 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.0.tar.gz
Algorithm Hash digest
SHA256 0f480c5f4d8707984996a24ad1dc231fbfe548b46953dc57dd59103a0ded53cc
MD5 a295d8806b3cd085cfb79ba471523e98
BLAKE2b-256 95a400b4039da779c55263f16e583b83bbca234711aca31dd2ed9b655a4ed0cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0.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.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.0-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.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9faee4e7894b78798de598dca652c009967980363b497ffeb62cf472c1836847
MD5 0a56acbadf2b6f1db49ed8bcfe4ec9fd
BLAKE2b-256 2039bb0ea4686d9681df33bbccc387701dbce49d5239e17b5fe6242efd25c1a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e89cc7241478e9a4ebcf70da8e75f1ccdb2c6e51e630c5af9ea65fff83f2ea1f
MD5 af5217ff95ff66d2737854022dbb0624
BLAKE2b-256 5ec9c87182f3bbd5cd617ac6d049ee274f0d9d401f4c7af8afa3ca73657a3861

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08f684ebcbd917da8d7f8617528a1b6eac9950472b3d83410269c3b7582b51a1
MD5 01c7665cee44bbcfdc94b00f86119a76
BLAKE2b-256 834d3042f7d06d4dc369b4f66d54c05527c4b8dc0105ebe90cc76dc6a8b6f7a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 560cb2bb917b829b11abb18e1fc5505b0f7cf41e91c0cfe7e9c1ba83a8fad7c8
MD5 b0d3bcaa9765586e9f0ab0922fbc5291
BLAKE2b-256 b3421e454f1e9ec6560cba593b3ca441b8ce77e4e2fb2501e869426e16d847ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.0-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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a7a3c02fd667f552461737ba64f72feeb69e637721a533226ded5c56c0738064
MD5 3f7d869ec44abab8da279a0fbb6f32b0
BLAKE2b-256 c59349375307e728b17cfb489943de2ddc163168fc51eecf27e9d2963665c6d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 afe01755f3fd783294124e2f2fe7d7713649647348d88f2bb7d62e8c54bad789
MD5 02e414d2eb341c439625db09c39100a4
BLAKE2b-256 f1743fc167064b5bb8b21e08a59c0ff385ca080b4007aed5c0aa9197c2e4aa53

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ff7c33dcfb46e0f4bb3c83bcac2bb4bc9336b828e820288ffd4c4faf6824a469
MD5 1d801b719a2f541e256f38119844b86e
BLAKE2b-256 32d0080bfef339464e97e201de34b3ae7b71b25f2d54876dc73747a41c23de92

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ef6bd6a0aa5bc6fc0d2ffd1cfeb303263b87d866f106d6a9035a4f254107e89c
MD5 93581dfb15a8bd25263d4883be3992a3
BLAKE2b-256 5bf1b139dd3c7e2aff989ce481cfdf9227e6d2226f3f5220cf8449daad0037fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e83f13610c32a295f6f7bb62dd773c26befc864b4498f9cd90fbe671c972ba74
MD5 ca8920d7528c18af19dc2a3923b2a495
BLAKE2b-256 a59025e24a5d128b7bce29d2704196e4dd95ea9119586324925e55f8aac270ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62f6dc2cf54eab99d0001f1873577b5ae4c843fdadc199ed2086b1cfae410844
MD5 453865d98a8a22d6eff50e35913a5dca
BLAKE2b-256 a50049d44bef2d6a84c349c71ce791c1b3e50ec9235e54a5620bb1304d454e96

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d268a6e571fecac72c23defeab6352ddfe1089237d7d384e32a68e593beb89c
MD5 bc53c6ca03ca98d117b5b277cff4ac9f
BLAKE2b-256 3e5e743eb4c846a1c06b9bb4f0595a0eb65ec84e3a335d78e4bdf82bc7863cea

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e7ce36e0b4a5b996de07b734a1c81771aef97e0e34d8bd612faea7572643b0ba
MD5 439ffe2bc149e72f3104c5fb30cf2fce
BLAKE2b-256 f885bf8ea7d0136aa091854b9af193bd12644de5e460a72c6ff86695e2736c05

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.0-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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1ffaded7db967b410e29348884eec207d1a63cce25bbd762dd58a8ab8e30bede
MD5 d1b32f1c965917640cde64c555d83fea
BLAKE2b-256 73862df9cb6197b9a70785683605b5a27773dcb9261068517ea5b4571b3cbd64

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ddcfad9807e28ee3cee7d4497410858c4a047a819b75e9ab754683acc53ec6e3
MD5 27d8041baac91593fac9f123c7319169
BLAKE2b-256 0061f8d69d9e872dc38ee456d0174bceb038173d2867296254e16849dc52f89f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a136506fe7766edc6a8095f2699b412735ab9a270b67557c0c84f74d4965cb41
MD5 82aaff93be79fbcc949cbd926386a9cc
BLAKE2b-256 917d4ce1f62d54fbe38228e4792c1526958e91b0a92076678ef0148f0782262b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4c37ec621bfc533ee25cb9be0891e82a788b3ce0681d8c54e6c3aca4028dfa5b
MD5 73154298d87840a945a5ed32597760ba
BLAKE2b-256 6252fe21d04bd97531db38aa5c6c70376934de37917e395d60332f2cb651d8c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mcpower-0.6.0-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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1c5903699c80bc2255e366ce05db95100a1a04d93663e497bbbc431d6fe11389
MD5 f89f158d486368bb7faf5148078788c4
BLAKE2b-256 2a92f24995406233d456fa3471c5b6fe6ae66ca365b88d1882c8c5f369583882

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1775d0b5e917a7c7ff555a6ec704b457c5c8b509d22cef8b8aced8e7399c7038
MD5 00a6154a93d0ab23af9ceaa87287132c
BLAKE2b-256 f8b3d359bab0a9d7e3ef98d67ea5d02239a45b079f7ef266bbdad24267d36b73

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e3643f4828ad2b55d2581f6f82e34cc1d082d89e293d4d5b06c57b4ce146933
MD5 2f842179fc4911aed475bc12f7e23694
BLAKE2b-256 671c64295b4d2a0d1cf88ac5bb6f2dc854fc88e44f505803b541b6f6b464a7d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mcpower-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 31fd4d6ee959989a49f323aedf7673d960e14775efab04bd2040c3f70ffd352d
MD5 38ba3aac7b560440769a93773fecf293
BLAKE2b-256 bd0e619a7a8b01a8e5a383313022349d4c972b334a1759bdb5b815ad963175ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpower-0.6.0-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