Skip to main content

Statistics Toolkit CLI 📊

A comprehensive command-line statistics learning and analysis tool with step-by-step explanations

Python 3.8+ License: MIT GitHub issues

🎯 Overview

Transform your terminal into a comprehensive statistics education platform! This toolkit provides step-by-step explanations for statistical concepts, making it perfect for students, educators, and anyone who wants to understand the "why" behind statistical calculations.

✨ Features

  • 📈 Descriptive Statistics: Mean, median, mode, variance, standard deviation, five-number summary, outlier detection
  • 🧪 Hypothesis Testing: One-sample and two-sample t-tests with complete explanations
  • 📊 Data Visualization: Histograms, box plots, scatter plots with statistical overlays
  • 💾 Data Management: CSV import/export, save/load datasets
  • 🎓 Educational Focus: Every calculation shows mathematical steps and reasoning
  • 🖥️ Interactive CLI: User-friendly menu-driven interface

🚀 Quick Start

Installation

# Clone the repository
git clone https://github.com/connorodea/statistics-toolkit-cli.git
cd statistics-toolkit-cli

# Install dependencies
pip install -r requirements.txt

# Run the toolkit
python stats_cli.py

One-Line Setup

curl -sSL https://raw.githubusercontent.com/connorodea/statistics-toolkit-cli/main/setup_stats_toolkit.sh | bash

📖 Usage Examples

Interactive Menu

python stats_cli.py

Sample Data Demo

python stats_cli.py --demo

Quick Analysis

Enter values: 85 92 78 88 95 82 79 91 87 84

=== MEASURES OF CENTER ===
Sample size: n = 10
MEAN CALCULATION:
x̄ = Σx/n = 861/10 = 86.1000

MEDIAN CALCULATION:
Sorted data: [78 79 82 84 85 87 88 91 92 95]
n is even: median = (85 + 87)/2 = 86.0000

🎓 Educational Philosophy

This toolkit is designed for learning statistics, not just computing answers. Every calculation shows:

  • 📝 The formula being used
  • 🔢 Step-by-step substitution of values
  • 📊 Intermediate calculations
  • 💡 Interpretation of results
  • ✅ Assumption checking

📁 Project Structure

statistics-toolkit-cli/
├── stats_cli.py              # Main application
├── requirements.txt          # Python dependencies
├── setup.py                  # Package installation
├── Makefile                  # Development commands
├── examples/
│   ├── data/                 # Sample CSV datasets
│   └── create_sample_data.py # Generate sample data
├── tests/
│   └── test_basic.py         # Unit tests
└── docs/                     # Documentation

🛠️ Development

Setup Development Environment

# Clone and setup
git clone https://github.com/connorodea/statistics-toolkit-cli.git
cd statistics-toolkit-cli

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Install as editable package
pip install -e .

Available Commands

make run          # Run the CLI tool
make demo         # Run sample data demo
make test         # Run tests
make sample-data  # Generate sample datasets
make clean        # Clean build artifacts
make help         # Show all commands

Running Tests

python -m pytest tests/ -v
# or
make test

📊 Sample Datasets

The toolkit includes sample datasets for practice:

  • test_scores.csv - Student academic performance data
  • sales_data.csv - Business sales and advertising data
  • study_vs_scores.csv - Study time vs exam performance

Generate fresh sample data:

make sample-data

🤝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Add tests for new functionality
  5. Run tests: make test
  6. Commit your changes: git commit -m 'Add amazing feature'
  7. Push to the branch: git push origin feature/amazing-feature
  8. Open a Pull Request

Development Guidelines

  • Follow PEP 8 style guidelines
  • Add docstrings to new functions
  • Include tests for new features
  • Update README if adding major features
  • Maintain the educational focus of explanations

🐛 Issues & Support

📚 Documentation

🏆 Inspiration

Originally inspired by TI-84 calculator programs, this toolkit brings the same step-by-step educational approach to modern Python development, making statistics accessible and understandable for everyone.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Built for statistics education and learning
  • Inspired by the need for transparent statistical calculations
  • Designed to complement traditional statistics textbooks and courses

Made with ❤️ for statistics education

GitHub stars GitHub forks

📦 PyPI Package Installation

Once published to PyPI, install with:

pip install statistics-toolkit-cli

Then use anywhere:

statstoolkit
# or  
stats-cli

🏗️ Building the Package

# Build for PyPI
make build

# Test locally
python -m statistics_toolkit_cli.cli --demo

# Check package
make package-info

🚀 Publishing to PyPI

# Publish to Test PyPI first
bash scripts/publish_to_pypi.sh  # Choose option 1

# Test installation
pip install --index-url https://test.pypi.org/simple/ statistics-toolkit-cli

# Then publish to real PyPI
bash scripts/publish_to_pypi.sh  # Choose option 2

Metadata

Release files for statistics-toolkit-cli 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for statistics-toolkit-cli 1.0.0
File Size Uploaded
statistics_toolkit_cli-1.0.0.tar.gz 20.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for statistics-toolkit-cli 1.0.0
File Interpreter ABI Platform
statistics_toolkit_cli-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.5 kB

Release files / statistics_toolkit_cli-1.0.0.tar.gz

Download URL statistics_toolkit_cli-1.0.0.tar.gz
Size 20.1 kB
Tags Source
SHA-256 checksum
How to use checksums
86559ce4e9f405611c426e8b11d74d0d970891641824b306142894592037a05e
BLAKE2b-256 checksum
How to use checksums
c0cfcb0149acd87825a808f2db20db35bb12d021eb85c66b04f9a3a02b973e3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release files / statistics_toolkit_cli-1.0.0-py3-none-any.whl

Download URL statistics_toolkit_cli-1.0.0-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a70cdde22e115737fc774db614f5a5ad87dcdfd70597f39060872d669ab3917
BLAKE2b-256 checksum
How to use checksums
b4de2a8ba02b09550ff4240aacd719bb9fefd03ad2cc25ba6511d9d72df01e0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page