Skip to content

Commit 9ea198a

Browse files
committed
updated
1 parent 09af8fb commit 9ea198a

File tree

6 files changed

+64
-33
lines changed

6 files changed

+64
-33
lines changed

.github/workflows/ci.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ jobs:
1717
- uses: actions/checkout@master
1818
- uses: actions/setup-python@master
1919
with:
20-
python-version: 3.13
21-
- run: pip install -r requirements-build-3_13.txt
20+
python-version: 3.14
21+
- run: pip install -r requirements-build-3_14.txt
2222
- run: python setup.py sdist
2323
- uses: actions/upload-artifact@v4
2424
with:
@@ -52,7 +52,8 @@ jobs:
5252
- {minor: 11, req_build: 'requirements-build-3_11.txt', req_test: 'requirements-dev-3_11.txt', ft: '0'}
5353
- {minor: 12, req_build: 'requirements-build-3_12.txt', req_test: 'requirements-dev-3_12.txt', ft: '0'}
5454
- {minor: 13, req_build: 'requirements-build-3_13.txt', req_test: 'requirements-dev-3_13.txt', ft: '0'}
55-
- {minor: 13t, req_build: 'requirements-build-3_13.txt', req_test: 'requirements-dev-3_13.txt', ft: '1'}
55+
- {minor: 14, req_build: 'requirements-build-3_14.txt', req_test: 'requirements-dev-3_14.txt', ft: '0'}
56+
- {minor: 14t, req_build: 'requirements-build-3_14.txt', req_test: 'requirements-dev-3_14.txt', ft: '1'}
5657

5758
runs-on: ${{ matrix.os }}
5859
outputs:
@@ -65,7 +66,7 @@ jobs:
6566
- run: echo '::add-matcher::.github/problem-matchers/msvc.json'
6667
if: startsWith(matrix.os, 'windows-')
6768

68-
- uses: pypa/cibuildwheel@v2.23.3
69+
- uses: pypa/cibuildwheel@v3.2.0
6970
if: matrix.os != 'macos-13-xlarge'
7071
with:
7172
output-dir: dist
@@ -80,7 +81,7 @@ jobs:
8081

8182
- run: pip install pipx
8283
if: matrix.os == 'macos-13-xlarge'
83-
- uses: pypa/cibuildwheel@v2.23.3
84+
- uses: pypa/cibuildwheel@v3.2.0
8485
if: matrix.os == 'macos-13-xlarge'
8586
with:
8687
output-dir: dist

noxfile.py

Lines changed: 54 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# noxfile.py
21
import nox
32
import sys
43
import os
@@ -11,52 +10,83 @@
1110
"src/*.so",
1211
)
1312

14-
# Optional: set defaults so `nox` with no args runs tests.
15-
# Comment this out if you don't want defaults.
13+
# Make `nox` default to running tests if you just do `nox`
1614
nox.options.sessions = ["test"]
1715

18-
@nox.session(python=False) # run in the current environment
19-
def clean(session):
20-
"""Clean build artifacts and uninstall arraykit."""
16+
# ----- helpers (not sessions) -----
17+
18+
def do_clean(session: nox.Session) -> None:
19+
# uninstall arraykit
2120
session.run(
2221
sys.executable, "-m", "pip",
2322
"--disable-pip-version-check", "uninstall", "--yes", "arraykit",
2423
external=True
2524
)
25+
# remove artifacts
2626
for artifact in sorted(ARTIFACTS):
2727
session.run("rm", "-rf", artifact, external=True)
2828

29-
@nox.session(python=False)
30-
def build(session):
31-
"""Build/install locally without build isolation (keeps verbose for warnings)."""
29+
def do_build(session: nox.Session) -> None:
30+
# keep -v to see warnings; no build isolation to match your invoke cmd
3231
session.run(
3332
sys.executable, "-m", "pip",
3433
"--disable-pip-version-check", "-v",
3534
"install", "--no-build-isolation", ".",
3635
external=True
3736
)
3837

39-
@nox.session(python=False)
40-
def test(session):
41-
"""Run pytest with native traceback."""
38+
def do_test(session: nox.Session) -> None:
4239
session.run(
43-
"pytest", "-s", "--disable-pytest-warnings", "--tb=native",
44-
external=True
40+
"pytest",
41+
"-s",
42+
"--disable-pytest-warnings",
43+
"--tb=native",
44+
external=True,
4545
)
4646

47-
@nox.session(python=False)
48-
def performance(session):
49-
"""Run performance benches. Pass names via env: NAMES='foo,bar' nox -s performance"""
50-
names = os.environ.get("NAMES", "")
47+
def do_performance(session: nox.Session) -> None:
48+
"""Run performance benchmarks."""
5149
args = [sys.executable, "-m", "performance"]
52-
if names:
53-
args.extend(["--names", names])
50+
51+
if session.posargs:
52+
args.extend(["--names"] + session.posargs)
53+
5454
session.run(*args, external=True)
5555

56+
def do_lint(session: nox.Session) -> None:
57+
session.run(
58+
"pylint",
59+
"-f", "colorized",
60+
"*.py", "performance", "src", "test",
61+
external=True,
62+
)
63+
64+
# ----- sessions -----
65+
66+
@nox.session(python=False) # use current environment
67+
def clean(session):
68+
"""Clean build artifacts and uninstall arraykit."""
69+
do_clean(session)
70+
71+
@nox.session(python=False)
72+
def build(session):
73+
"""Clean then build/install locally (like invoke: build depends on clean)."""
74+
do_clean(session)
75+
do_build(session)
76+
77+
@nox.session(python=False)
78+
def test(session):
79+
"""Build then run pytest (like invoke: test depends on build)."""
80+
do_build(session)
81+
do_test(session)
82+
83+
@nox.session(python=False)
84+
def performance(session):
85+
"""Build then run performance benches (like invoke: performance depends on build)."""
86+
do_build(session)
87+
do_performance(session)
88+
5689
@nox.session(python=False)
5790
def lint(session):
5891
"""Run pylint static analysis."""
59-
session.run(
60-
"pylint", "-f", "colorized", "*.py", "performance", "src", "test",
61-
external=True
62-
)
92+
do_lint(session)

requirements-dev-3_11.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
numpy==2.0.2
22
pytest==7.1.2
3-
invoke==2.2.0
3+
nox==2025.5.1
44
hypothesis==6.10.1

requirements-dev-3_12.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
numpy==2.2.6
22
pytest==7.1.2
3-
invoke==2.2.0
3+
nox==2025.5.1
44
hypothesis==6.10.1

requirements-dev-3_13.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
numpy==2.3.1
22
pytest==8.3.3
3-
invoke==2.2.0
3+
nox==2025.5.1
44
hypothesis==6.131.16

requirements-dev-3_14.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
numpy==2.3.3
22
pytest==8.3.3
3-
invoke==2.2.0
3+
nox==2025.5.1
44
hypothesis==6.131.16

0 commit comments

Comments
 (0)