From cdbd5682672dd6ef675196a044e5370e52e29f4b Mon Sep 17 00:00:00 2001 From: Benjamin Elbers Date: Thu, 26 Feb 2026 09:41:21 +0100 Subject: [PATCH 1/2] Release 4.1.0 Co-Authored-By: Claude Opus 4.6 --- HISTORY.rst | 12 +++++++++--- pyproject.toml | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index f68eaf9..2b8291f 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -2,9 +2,15 @@ History ======= -in development --------------- -* Modernize infrastructure (pyproject.toml, uv, ruff, update dependencies) +4.1.0 (2026-02-26) +------------------ +* Modernize build infrastructure: migrate to pyproject.toml, remove setup.py/setup.cfg/Makefile +* Switch to ruff for linting and formatting, add ty for type checking +* Use uv and tox-uv for faster CI and local development +* Add type annotations throughout the codebase (Optional parameters, return types, abstract methods) +* Remove dead code: unused functions, constants, and commented-out class stubs +* Fix pandas deprecation warnings +* Remove BetaBinomial.as_cumulative() classmethod (unused, untested) 4.0.0 (2024-11-24) ------------------ diff --git a/pyproject.toml b/pyproject.toml index c5eda9c..1f2aaae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "spotify-confidence" -version = "4.0.0" +version = "4.1.0" description = "Package for calculating and visualising confidence intervals, e.g. for A/B test analysis." readme = "README.md" license = {file = "LICENSE"} From 075eaab061c772539cef61ba64529d95b1755173 Mon Sep 17 00:00:00 2001 From: Benjamin Elbers Date: Thu, 26 Feb 2026 10:47:09 +0100 Subject: [PATCH 2/2] Badge --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ee73955..caa4a6f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Spotify Confidence ======== ![Status](https://img.shields.io/badge/Status-Beta-blue.svg) -![Latest release](https://img.shields.io/badge/release-4.0.0-green.svg "Latest release: 4.0.0") +![Latest release](https://img.shields.io/badge/release-4.1.0-green.svg "Latest release: 4.1.0") ![Python](https://img.shields.io/badge/Python-3.9-blue.svg "Python") ![Python](https://img.shields.io/badge/Python-3.10-blue.svg "Python") ![Python](https://img.shields.io/badge/Python-3.11-blue.svg "Python") @@ -12,15 +12,15 @@ Python library for AB test analysis. Why use Spotify Confidence? ----------------- -Spotify Confidence provides convenience wrappers around statsmodel's various functions for computing p-values and confidence intervalls. -With Spotify Confidence it's easy to compute several p-values and confidence bounds in one go, e.g. one for each country or for each date. -Each function comes in two versions: +Spotify Confidence provides convenience wrappers around statsmodel's various functions for computing p-values and confidence intervalls. +With Spotify Confidence it's easy to compute several p-values and confidence bounds in one go, e.g. one for each country or for each date. +Each function comes in two versions: - one that return a pandas dataframe, - one that returns a [Chartify](https://github.com/spotify/chartify) chart. -Spotify Confidence has support calculating p-values and confidence intervals using Z-statistics, Student's T-statistics -(or more exactly [Welch's T-test](https://en.wikipedia.org/wiki/Welch%27s_t-test)), as well as Chi-squared statistics. -It also supports a variance reduction technique based on using pre-exposure data to fit a linear model. +Spotify Confidence has support calculating p-values and confidence intervals using Z-statistics, Student's T-statistics +(or more exactly [Welch's T-test](https://en.wikipedia.org/wiki/Welch%27s_t-test)), as well as Chi-squared statistics. +It also supports a variance reduction technique based on using pre-exposure data to fit a linear model. There is also a Bayesian alternative in the BetaBinomial class. @@ -44,7 +44,7 @@ test = confidence.ZTest( denominator_column='total', categorical_group_columns='variation_name', correction_method='bonferroni') - + test.summary() test.difference(level_1='control', level_2='treatment1') test.multiple_difference(level='control', level_as_reference=True) @@ -74,4 +74,3 @@ Spotify Confidence can be installed via pip: ### Code of Conduct This project adheres to the [Open Code of Conduct](https://github.com/spotify/code-of-conduct/blob/master/code-of-conduct.md) By participating, you are expected to honor this code. -