Skip to content

Commit 9d4fd53

Browse files
committed
Use Astral uv
1 parent c792122 commit 9d4fd53

File tree

8 files changed

+1307
-41
lines changed

8 files changed

+1307
-41
lines changed

Diff for: .github/workflows/build.yml

+6-9
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,18 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- uses: actions/checkout@v4
13+
- uses: astral-sh/setup-uv@v4
14+
with:
15+
enable-cache: true
16+
cache-dependency-glob: uv.lock
1317
- uses: actions/setup-python@v5
1418
with:
1519
python-version: 3.13
1620
allow-prereleases: true
17-
- uses: actions/cache@v4
18-
with:
19-
path: ~/.cache/pip
20-
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
21-
- name: Install dependencies
22-
run: |
23-
python -m pip install --upgrade pip setuptools wheel
24-
python -m pip install pytest-cov -r requirements.txt
21+
- run: uv sync --dev
2522
- name: Run tests
2623
# TODO: #8818 Re-enable quantum tests
27-
run: pytest
24+
run: uvx pytest
2825
--ignore=computer_vision/cnn_classification.py
2926
--ignore=docs/conf.py
3027
--ignore=dynamic_programming/k_means_clustering_tensorflow.py

Diff for: .github/workflows/project_euler.yml

+6-10
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,21 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- uses: actions/checkout@v4
18+
- uses: astral-sh/setup-uv@v4
1819
- uses: actions/setup-python@v5
1920
with:
2021
python-version: 3.x
21-
- name: Install pytest and pytest-cov
22-
run: |
23-
python -m pip install --upgrade pip
24-
python -m pip install --upgrade numpy pytest pytest-cov
25-
- run: pytest --doctest-modules --cov-report=term-missing:skip-covered --cov=project_euler/ project_euler/
22+
- run: uv sync --group=euler-validate
23+
- run: uvx pytest --doctest-modules --cov-report=term-missing:skip-covered --cov=project_euler/ project_euler/
2624
validate-solutions:
2725
runs-on: ubuntu-latest
2826
steps:
2927
- uses: actions/checkout@v4
28+
- uses: astral-sh/setup-uv@v4
3029
- uses: actions/setup-python@v5
3130
with:
3231
python-version: 3.x
33-
- name: Install pytest and requests
34-
run: |
35-
python -m pip install --upgrade pip
36-
python -m pip install --upgrade numpy pytest requests
37-
- run: pytest scripts/validate_solutions.py
32+
- run: uv sync --group=euler-validate
33+
- run: uvx pytest scripts/validate_solutions.py
3834
env:
3935
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Diff for: .github/workflows/ruff.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ jobs:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- uses: actions/checkout@v4
15-
- run: pip install --user ruff
16-
- run: ruff check --output-format=github .
15+
- uses: astral-sh/setup-uv@v4
16+
- run: uvx ruff check --output-format=github .

Diff for: .github/workflows/sphinx.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ jobs:
2626
runs-on: ubuntu-latest
2727
steps:
2828
- uses: actions/checkout@v4
29+
- uses: astral-sh/setup-uv@v4
2930
- uses: actions/setup-python@v5
3031
with:
3132
python-version: 3.13
3233
allow-prereleases: true
33-
- run: pip install --upgrade pip
34-
- run: pip install myst-parser sphinx-autoapi sphinx-pyproject
34+
- run: uv sync --group=docs
3535
- uses: actions/configure-pages@v5
36-
- run: sphinx-build -c docs . docs/_build/html
36+
- run: uvx sphinx-build -c docs . docs/_build/html
3737
- uses: actions/upload-pages-artifact@v3
3838
with:
3939
path: docs/_build/html

Diff for: .pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ repos:
1616
- id: auto-walrus
1717

1818
- repo: https://github.com/astral-sh/ruff-pre-commit
19-
rev: v0.8.0
19+
rev: v0.8.1
2020
hooks:
2121
- id: ruff
2222
- id: ruff-format

Diff for: pyproject.toml

+43-10
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,48 @@ requires-python = ">=3.13"
77
classifiers = [
88
"Programming Language :: Python :: 3 :: Only",
99
"Programming Language :: Python :: 3.13",
10+
]
11+
dependencies = [
12+
"beautifulsoup4>=4.12.3",
13+
"fake-useragent>=1.5.1",
14+
"imageio>=2.36.1",
15+
"keras>=3.7",
16+
"lxml>=5.3",
17+
"matplotlib>=3.9.3",
18+
"numpy>=2.1.3",
19+
"opencv-python>=4.10.0.84",
20+
"pandas>=2.2.3",
21+
"pillow>=11",
22+
"requests>=2.32.3",
23+
"rich>=13.9.4",
24+
"scikit-learn>=1.5.2",
25+
"sphinx-pyproject>=0.3",
26+
"statsmodels>=0.14.4",
27+
"sympy>=1.13.3",
28+
"tweepy>=4.14",
29+
"typing-extensions>=4.12.2",
30+
"xgboost>=2.1.3",
31+
]
1032

33+
[dependency-groups]
34+
dev = [
35+
"pytest>=8.3.4",
36+
"pytest-cov>=6",
37+
]
38+
docs = [
39+
"myst-parser>=4",
40+
"sphinx-autoapi>=3.4",
41+
"sphinx-pyproject>=0.3",
1142
]
12-
optional-dependencies.docs = [
13-
"myst-parser",
14-
"sphinx-autoapi",
15-
"sphinx-pyproject",
43+
euler-validate = [
44+
"numpy>=2.1.3",
45+
"pytest>=8.3.4",
46+
"pytest-cov>=6",
47+
"requests>=2.32.3",
48+
]
49+
lint = [
50+
"codespell>=2.3",
51+
"ruff>=0.8.1",
1652
]
1753

1854
[tool.ruff]
@@ -61,8 +97,8 @@ lint.select = [
6197
"UP", # pyupgrade
6298
"W", # pycodestyle
6399
"YTT", # flake8-2020
64-
# "ANN", # flake8-annotations # FIX ME?
65-
# "COM", # flake8-commas
100+
# "ANN", # flake8-annotations -- FIX ME?
101+
# "COM", # flake8-commas -- DO NOT FIX
66102
# "D", # pydocstyle -- FIX ME?
67103
# "ERA", # eradicate -- DO NOT FIX
68104
# "FBT", # flake8-boolean-trap # FIX ME
@@ -129,10 +165,7 @@ lint.pylint.max-statements = 88 # default: 50
129165

130166
[tool.codespell]
131167
ignore-words-list = "3rt,ans,bitap,crate,damon,fo,followings,hist,iff,kwanza,manuel,mater,secant,som,sur,tim,toi,zar"
132-
skip = "./.*,*.json,ciphers/prehistoric_men.txt,project_euler/problem_022/p022_names.txt,pyproject.toml,strings/dictionary.txt,strings/words.txt"
133-
134-
[tool.pyproject-fmt]
135-
max_supported_python = "3.13"
168+
skip = "./.*,*.json,*.lock,ciphers/prehistoric_men.txt,project_euler/problem_022/p022_names.txt,pyproject.toml,strings/dictionary.txt,strings/words.txt"
136169

137170
[tool.pytest.ini_options]
138171
markers = [

Diff for: requirements.txt

-6
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,12 @@ numpy
88
opencv-python
99
pandas
1010
pillow
11-
# projectq # uncomment once quantum/quantum_random.py is fixed
12-
qiskit ; python_version < '3.12'
13-
qiskit-aer ; python_version < '3.12'
1411
requests
1512
rich
16-
# scikit-fuzzy # uncomment once fuzzy_logic/fuzzy_operations.py is fixed
1713
scikit-learn
1814
sphinx_pyproject
1915
statsmodels
2016
sympy
21-
tensorflow ; python_version < '3.13'
2217
tweepy
23-
# yulewalker # uncomment once audio_filters/equal_loudness_filter.py is fixed
2418
typing_extensions
2519
xgboost

0 commit comments

Comments
 (0)