From bdfbffb0f121ea1eebd3077109fbe62ba6404976 Mon Sep 17 00:00:00 2001 From: Moritz Hardt Date: Sun, 9 Aug 2026 11:40:10 +0200 Subject: [PATCH] Drop a stray editor swap file and note the Python requirement whynot/simulators/opioid/.experiments.py.swo has been tracked since the initial commit. .gitignore covers *.swo, but gitignore does not apply to files already tracked, so it survived and the package-data glob swept it into the 0.13.0 wheel. Removing it keeps it out of later releases; 0.13.0 cannot be re-uploaded. Also record the Python floor where people meet it. On 3.11, pip correctly skips 0.13.0 and backtracks to WhyNot releases from 2020, which fail while building sklearn, an error that says nothing about the Python version. Verified against a real 3.11 interpreter rather than assumed. Co-Authored-By: Claude --- README.md | 5 +++++ docs/source/installation.rst | 11 +++++++++-- whynot/simulators/opioid/.experiments.py.swo | Bin 24576 -> 0 bytes 3 files changed, 14 insertions(+), 2 deletions(-) delete mode 100644 whynot/simulators/opioid/.experiments.py.swo diff --git a/README.md b/README.md index b1b9d0a..c4405bf 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,11 @@ source whynot-env/bin/activate pip install whynot ``` +WhyNot requires Python 3.12 or newer. On an older Python, `pip` skips the +current release and falls back to WhyNot versions from 2020, which fail to +build with an error about `sklearn` that does not mention the Python version. +If you see that, check `python --version` first. + You can also install WhyNot directly from source. ``` git clone https://github.com/socialfoundations/whynot.git diff --git a/docs/source/installation.rst b/docs/source/installation.rst index add6615..ddc09dd 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -6,8 +6,15 @@ Installation Basic Installation Instructions ------------------------------- -WhyNot supports Python3 on both OS X and Linux systems. We recommend using `pip` -for installation and isolating the installation inside a `virtualenv`_. +WhyNot requires Python 3.12 or newer, on both OS X and Linux systems. We +recommend using `pip` for installation and isolating the installation inside a +`virtualenv`_. + +.. note:: + On an older Python, ``pip`` skips the current release and falls back to + WhyNot versions from 2020, which fail to build with an error about + ``sklearn`` that does not mention the Python version. If you see that, + check ``python --version`` first. 1. (Optionally) create a virtual environment. diff --git a/whynot/simulators/opioid/.experiments.py.swo b/whynot/simulators/opioid/.experiments.py.swo deleted file mode 100644 index 586fad650c161bbdc868819cf8bbcee11b39bdce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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 E09v5AdH?_b