Changelog
All notable changes to Real Simple Stats are documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.0] - 2025-07-26
This is a major quality improvement release focusing on code standards, testing, and developer experience.
Added
Comprehensive Type Hints: Added detailed type annotations to all functions
Enhanced Documentation: Google-style docstrings with examples and mathematical explanations
Testing Infrastructure: 35 comprehensive unit tests with pytest framework
Command Line Interface:
rss-calcCLI tool for quick statistical calculationsDevelopment Tools:
Black code formatting
Flake8 linting
MyPy type checking
Pre-commit hooks
Makefile for development tasks
Quality Assurance:
Automated code formatting
Comprehensive error handling
Input validation with meaningful error messages
Coverage reporting
Documentation:
Professional Sphinx documentation with RTD theme
Installation guide
Quick start guide
CLI reference
Contributing guidelines
Code quality standards
Jupyter notebook tutorial
Package Improvements:
Enhanced
pyproject.tomlwith tool configurationsDevelopment dependencies and optional extras
Project metadata and classifiers
.gitignorefor Python projects
Changed
Version: Bumped from 0.1.1 to 0.2.0
Code Quality: All code now follows Black formatting standards
Error Handling: Improved error messages and input validation
Documentation: Completely rewritten README with badges and comprehensive information
Package Structure: Better organization and modern Python packaging practices
Fixed
Coefficient of Variation: Fixed calculation bug for edge cases
Empty Input Handling: Proper error handling for empty datasets
Division by Zero: Added checks for zero denominators
Import Issues: Cleaned up unused imports and circular dependencies
Type Safety: Fixed type inconsistencies and added proper annotations
Removed
Unused Imports: Cleaned up all unused import statements
Dead Code: Removed commented-out and unreachable code
Redundant Functions: Consolidated duplicate functionality
Security
Input Validation: Added comprehensive input validation to prevent errors
Type Safety: Static type checking helps prevent runtime errors
[0.1.1] - 2024-XX-XX
Initial release with basic statistical functionality.
Added
Basic descriptive statistics (mean, median, mode, variance, standard deviation)
Probability utilities (simple, joint, conditional probability)
Hypothesis testing functions (t-tests, F-tests, critical values)
Probability distributions (normal, binomial, Poisson)
Linear regression utilities
Chi-square test functions
Confidence interval calculations
Basic plotting capabilities
Statistical glossary
Sphinx documentation setup
PyPI package distribution
[0.3.1] - 2025-01-XX
Fixed
Fixed several critical bugs that were causing crashes and incorrect results:
Resolved segmentation fault when running tests. The issue was caused by incompatible system-wide NumPy/SciPy installations. Package initialization now prefers the bundled virtualenv dependencies.
five_number_summary()was crashing on small datasets. It now handles n=1, n=2, and n=3 cases properly instead of trying to calculate quartiles from empty halves.One-sided power analysis was ignoring the sign of effect sizes. Negative effects with “less-than” alternatives were returning the same power as positive effects. The calculations now correctly handle directionality.
Added
Normal distribution functions are now fully implemented. The CLI previously lacked normal distribution support;
normal_pdf()andnormal_cdf()are now available both in Python and via the command line.CLI argument validation across all subcommands. Missing or invalid arguments now show helpful error messages instead of cryptic Python exceptions.
Input validation for probability helper functions. Functions like
joint_probability(),bayes_theorem(), andexpected_value()now check that probabilities are in valid ranges and raise clear errors.stratified_split()now ensures minority classes get at least one test sample when possible, preventing rare classes from being completely excluded from test sets.
Changed
Package initialization was tweaked to avoid dependency conflicts. The
__init__.pynow sets up the environment before any imports happen.Error messages are more helpful. Instead of cryptic Python exceptions, you’ll see clear messages like “Error: –n (number of trials) is required for binomial distribution”.
Added 10 new tests covering edge cases and validation (511 tests total, all passing).
[0.3.2] - 2026-03-21
Fixed
CLI tests were failing in CI because commands use
logger.info()but logging was only configured inmain(). Tests that call commands directly now configure logging with the captured stdout.
Changed
Removed emojis project-wide from docs, examples, and scripts
Interactive examples documentation now recommends Chart.js and Observable for web visualizations instead of Streamlit
[Unreleased]
(No unreleased changes)
Migration Guide
Upgrading from 0.1.1 to 0.2.0
Breaking Changes: None - this is a backward-compatible release.
Recommended Actions:
Update your installation:
pip install --upgrade real-simple-stats
Try the new CLI:
rss-calc --help
Check the new documentation for enhanced examples and tutorials
Consider using type hints in your code for better IDE support
Deprecated Features: None in this release.
New Opportunities:
Use the CLI for quick calculations
Leverage improved error messages for debugging
Benefit from comprehensive type hints in your IDE
Contribute to the project using our development tools
Version Support
Supported Versions:
0.2.x: Active development, bug fixes, and new features
0.1.x: Security fixes only (until 0.3.0 release)
Python Version Support:
Python 3.7+: Fully supported
Python 3.6: No longer supported (use version 0.1.x)
Dependency Updates:
NumPy: 1.19.0+ (was 1.18.0+)
SciPy: 1.5.0+ (was 1.4.0+)
Matplotlib: 3.3.0+ (was 3.1.0+)
Contributing to Changelog
When contributing to the project:
Add entries to the [Unreleased] section
Use the standard format: Added/Changed/Deprecated/Removed/Fixed/Security
Be descriptive: Explain what changed and why
Link to issues: Reference GitHub issues when applicable
Credit contributors: Acknowledge community contributions
For more details, see our Contributing to Real Simple Stats guide.