Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ jobs:
strategy:
matrix:
python-version:
- '3.10'
- '3.13'
- '3.11'
- '3.14'
requirements-file:
- 'requirements-dev.txt' # pinned, for predictability
- 'requirements-dev.in' # un-pinned, so we catch problems early
Expand Down
2 changes: 1 addition & 1 deletion README-PYPI.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Download Results:

## Usage

DP Wizard requires Python 3.10 or later.
DP Wizard requires Python 3.11 or later.
You can check your current version with `python --version`.
The exact upgrade process will depend on your environment and operating system.

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Download Results:

## Usage

DP Wizard requires Python 3.10 or later.
DP Wizard requires Python 3.11 or later.
You can check your current version with `python --version`.
The exact upgrade process will depend on your environment and operating system.

Expand Down Expand Up @@ -91,8 +91,8 @@ DP-Wizard will run across multiple Python versions, but for the fewest surprises
```shell
$ git clone https://github.com/opendp/dp-wizard.git
$ cd dp-wizard
$ brew install python@3.10
$ python3.10 -m venv .venv
$ brew install python@3.11
$ python3.11 -m venv .venv
$ source .venv/bin/activate
```

Expand Down
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -646,7 +646,7 @@ <h1>Return to the class grades example ✋</h1>
<td>
<p><strong><a
href="https://pypi.org/project/dp_wizard/"><code>pip install 'dp_wizard[app]'</code></a><br><code>dp_wizard --cloud</code><br><small>(requires
Python&gt;=3.10)</small></strong></p>
Python&gt;=3.11)</small></strong></p>
</td>
<td>
<p><strong>… or go to: <a
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ Divide into four teams, and on one computer either:
<tr>
<td>

**[`pip install 'dp_wizard[app]'`](https://pypi.org/project/dp_wizard/)<br>`dp_wizard --cloud`<br><small>(requires Python>=3.10)</small>**
**[`pip install 'dp_wizard[app]'`](https://pypi.org/project/dp_wizard/)<br>`dp_wizard --cloud`<br><small>(requires Python>=3.11)</small>**

</td>
<td>
Expand Down
2 changes: 1 addition & 1 deletion dp_wizard/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def get_template_root(path: str) -> Path:
def main() -> None: # pragma: no cover
import sys

min_version = "3.10"
min_version = "3.11"
if sys.version_info < tuple(int(v) for v in min_version.split(".")):
raise Exception(
f"DP Wizard requires Python {min_version}"
Expand Down
8 changes: 3 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ dependencies = [
]

[options]
python_requires = ">=3.10"
python_requires = ">=3.11"

[project.scripts]
# Prefer dash in name where allowed (repo named and executable)
Expand Down Expand Up @@ -84,7 +84,6 @@ app = [
"defusedxml==0.7.1",
"deprecated==1.2.18",
"dp-wizard-templates==0.7.0",
"exceptiongroup==1.3.0",
"executing==2.2.0",
"faicons==0.2.2",
"fastjsonschema==2.21.1",
Expand All @@ -94,8 +93,8 @@ app = [
"idna==3.10",
"ipykernel==6.29.5",
"ipython==8.35.0",
"jax==0.6.2",
"jaxlib==0.6.2",
"jax==0.9.0",
"jaxlib==0.9.0",
"jedi==0.19.2",
"jinja2==3.1.6",
"joblib==1.4.2",
Expand Down Expand Up @@ -164,7 +163,6 @@ app = [
"starlette==0.49.1",
"threadpoolctl==3.6.0",
"tinycss2==1.4.0",
"tomli==2.2.1",
"toolz==1.0.0",
"tornado==6.5.1",
"traitlets==5.14.3",
Expand Down
47 changes: 14 additions & 33 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile requirements-dev.in
Expand Down Expand Up @@ -77,19 +77,13 @@ distlib==0.3.9
docutils==0.21.2
# via flit
dp-wizard-templates==0.7.0
# via -r .../dp-wizard/requirements.in
exceptiongroup==1.3.0
# via
# anyio
# hypothesis
# ipython
# pytest
# via -r requirements.in
execnet==2.1.1
# via pytest-xdist
executing==2.2.0
# via stack-data
faicons==0.2.2
# via -r .../dp-wizard/requirements.in
# via -r requirements.in
fastjsonschema==2.21.1
# via nbformat
filelock==3.20.2
Expand All @@ -108,7 +102,7 @@ flit-core==3.12.0
# via flit
fonttools==4.61.0
# via
# -r .../dp-wizard/requirements.in
# -r requirements.in
# matplotlib
greenlet==3.2.0
# via playwright
Expand All @@ -134,12 +128,12 @@ ipython==8.35.0
# via ipykernel
isort==6.0.1
# via -r requirements-dev.in
jax==0.6.2
jax==0.9.0
# via
# chex
# mbi
# optax
jaxlib==0.6.2
jaxlib==0.9.0
# via
# chex
# jax
Expand Down Expand Up @@ -185,7 +179,7 @@ markupsafe==3.0.2
# jinja2
# nbconvert
matplotlib==3.10.1
# via -r .../dp-wizard/requirements.in
# via -r requirements.in
matplotlib-inline==0.1.7
# via
# ipykernel
Expand Down Expand Up @@ -243,7 +237,7 @@ numpy==2.2.4
# scikit-learn
# scipy
opendp[mbi]==0.14.1
# via -r .../dp-wizard/requirements.in
# via -r requirements.in
opt-einsum==3.4.0
# via jax
optax==0.2.5
Expand Down Expand Up @@ -273,7 +267,7 @@ pexpect==4.9.0
# via ipython
pillow==11.3.0
# via
# -r .../dp-wizard/requirements.in
# -r requirements.in
# diffimg
# matplotlib
pip-tools==7.4.1
Expand Down Expand Up @@ -368,7 +362,7 @@ referencing==0.36.2
# jsonschema-specifications
requests==2.32.4
# via
# -r .../dp-wizard/requirements.in
# -r requirements.in
# flit
# pytest-base-url
rpds-py==0.24.0
Expand All @@ -384,7 +378,7 @@ scipy==1.15.2
# mbi
# scikit-learn
shiny==1.4.0
# via -r .../dp-wizard/requirements.in
# via -r requirements.in
six==1.17.0
# via python-dateutil
sniffio==1.3.1
Expand All @@ -397,22 +391,14 @@ stack-data==0.6.3
# via ipython
starlette==0.49.1
# via
# -r .../dp-wizard/requirements.in
# -r requirements.in
# shiny
text-unidecode==1.3
# via python-slugify
threadpoolctl==3.6.0
# via scikit-learn
tinycss2==1.4.0
# via bleach
tomli==2.2.1
# via
# black
# build
# coverage
# jupytext
# pip-tools
# pytest
tomli-w==1.2.0
# via flit
tomlkit==0.13.2
Expand All @@ -421,7 +407,7 @@ toolz==1.0.0
# via chex
tornado==6.5.1
# via
# -r .../dp-wizard/requirements.in
# -r requirements.in
# ipykernel
# jupyter-client
traitlets==5.14.3
Expand All @@ -438,27 +424,22 @@ traitlets==5.14.3
typing-extensions==4.13.2
# via
# anyio
# asgiref
# beautifulsoup4
# black
# chex
# exceptiongroup
# htmltools
# ipython
# mistune
# pyee
# pyright
# referencing
# shiny
# starlette
# uvicorn
tzdata==2025.2
# via pandas
uc-micro-py==1.0.3
# via linkify-it-py
urllib3==2.6.0
# via
# -r .../dp-wizard/requirements.in
# -r requirements.in
# requests
uvicorn==0.34.1
# via shiny
Expand Down
19 changes: 3 additions & 16 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile requirements.in
Expand Down Expand Up @@ -60,10 +60,6 @@ deprecated==1.2.18
# via opendp
dp-wizard-templates==0.7.0
# via -r requirements.in
exceptiongroup==1.3.0
# via
# anyio
# ipython
executing==2.2.0
# via stack-data
faicons==0.2.2
Expand All @@ -88,12 +84,12 @@ ipykernel==6.29.5
# via dp-wizard-templates
ipython==8.35.0
# via ipykernel
jax==0.6.2
jax==0.9.0
# via
# chex
# mbi
# optax
jaxlib==0.6.2
jaxlib==0.9.0
# via
# chex
# jax
Expand Down Expand Up @@ -301,10 +297,6 @@ threadpoolctl==3.6.0
# via scikit-learn
tinycss2==1.4.0
# via bleach
tomli==2.2.1
# via
# black
# jupytext
toolz==1.0.0
# via chex
tornado==6.5.1
Expand All @@ -326,18 +318,13 @@ traitlets==5.14.3
typing-extensions==4.13.2
# via
# anyio
# asgiref
# beautifulsoup4
# black
# chex
# exceptiongroup
# htmltools
# ipython
# mistune
# referencing
# shiny
# starlette
# uvicorn
tzdata==2025.2
# via pandas
uc-micro-py==1.0.3
Expand Down
4 changes: 2 additions & 2 deletions tests/test_misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def test_opendp_pin(rel_path):
)
def test_python_min_version(rel_path):
text = (package_root.parent / rel_path).read_text()
assert "3.10" in text
assert "3.11" in text
if "README" in rel_path:
# Make sure we haven't upgraded one reference by mistake.
assert not re.search(r"3.1[^0]", text)
assert not re.search(r"3.1[^1]", text)
Loading