Skip to content

Commit 97ac235

Browse files
Update Python to 3.14 (#71)
Drop support for Python 3.9.
1 parent 2431e5d commit 97ac235

File tree

12 files changed

+1157
-1255
lines changed

12 files changed

+1157
-1255
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@ jobs:
1212
fail-fast: false
1313
matrix:
1414
os: [ubuntu-latest, macos-latest, windows-latest]
15-
pixi-version: ['0.39.0', '0.54.2']
15+
pixi-version: ["0.39.0", "0.59.0"]
1616
runs-on: ${{ matrix.os }}
1717
steps:
1818
- name: Checkout repo
1919
uses: actions/checkout@v5
2020

2121
- name: Install Pixi ${{ matrix.pixi-version }}
22-
uses: prefix-dev/[email protected].0
22+
uses: prefix-dev/[email protected].2
2323
with:
2424
pixi-version: v${{ matrix.pixi-version }}
2525
run-install: false
2626

2727
- name: Install uv
28-
uses: astral-sh/setup-uv@v6
28+
uses: astral-sh/setup-uv@v7
2929

3030
- name: Test, lint and typecheck
3131
run: uv run tox

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Release
33
on:
44
push:
55
tags:
6-
- 'v*'
6+
- "v*"
77

88
jobs:
99
pypi-publish:
@@ -17,7 +17,7 @@ jobs:
1717
uses: actions/checkout@v5
1818

1919
- name: Install uv
20-
uses: astral-sh/setup-uv@v6
20+
uses: astral-sh/setup-uv@v7
2121

2222
- name: Build release
2323
run: uv build

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.13
1+
3.14

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ You can also list and select one specific test by running:
4444

4545
```
4646
uv run tox -l
47-
uv run tox run -e py313-test
47+
uv run tox run -e py314-test
4848
```
4949

5050
## Code quality

package.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pixi-kernel",
3-
"version": "0.6.7",
3+
"version": "0.7.0",
44
"description": "Jupyter kernels using Pixi for reproducible notebooks.",
55
"keywords": [
66
"kernel",
@@ -54,30 +54,30 @@
5454
"watch:labextension": "jupyter labextension watch ."
5555
},
5656
"dependencies": {
57-
"@jupyterlab/application": "^4.4.7",
58-
"@jupyterlab/coreutils": "^6.4.7",
59-
"@jupyterlab/notebook": "^4.4.7",
60-
"@jupyterlab/services": "^7.4.7",
57+
"@jupyterlab/application": "^4.4.10",
58+
"@jupyterlab/coreutils": "^6.4.10",
59+
"@jupyterlab/notebook": "^4.4.10",
60+
"@jupyterlab/services": "^7.4.10",
6161
"@rjsf/utils": "^5.24.13",
6262
"react": "^18.3.1"
6363
},
6464
"devDependencies": {
6565
"@eslint/eslintrc": "^3.3.1",
66-
"@eslint/js": "^9.35.0",
67-
"@jupyterlab/builder": "^4.4.7",
66+
"@eslint/js": "^9.39.0",
67+
"@jupyterlab/builder": "^4.4.10",
6868
"@types/json-schema": "^7.0.15",
69-
"@types/react": "^18.3.24",
69+
"@types/react": "^18.3.26",
7070
"@types/react-addons-linked-state-mixin": "^0.14.27",
71-
"@typescript-eslint/eslint-plugin": "^8.43.0",
72-
"@typescript-eslint/parser": "^8.43.0",
73-
"eslint": "^9.35.0",
71+
"@typescript-eslint/eslint-plugin": "^8.46.2",
72+
"@typescript-eslint/parser": "^8.46.2",
73+
"eslint": "^9.39.0",
7474
"eslint-config-prettier": "^10.1.8",
7575
"eslint-plugin-prettier": "^5.5.4",
7676
"npm-run-all2": "^8.0.4",
7777
"prettier": "^3.6.2",
78-
"rimraf": "^6.0.1",
78+
"rimraf": "^6.1.0",
7979
"source-map-loader": "^5.0.0",
80-
"typescript": "5.9.2"
80+
"typescript": "5.9.3"
8181
},
8282
"jupyterlab": {
8383
"discovery": {

pixi_kernel/compatibility.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import shutil
22
import sys
33
from pathlib import Path
4-
from typing import Any, Optional
4+
from typing import Any
55

66
from returns.result import Failure, Result, Success
77

@@ -44,7 +44,7 @@
4444

4545

4646
# Cache for the Pixi path
47-
_pixi_path_cache: Optional[str] = None
47+
_pixi_path_cache: str | None = None
4848

4949

5050
def get_config_file() -> Path:

pixi_kernel/provisioner.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import os
33
import sys
44
from pathlib import Path
5-
from typing import Any, Optional, cast
5+
from typing import Any, cast
66

77
from jupyter_client.kernelspec import KernelSpec
88
from jupyter_client.provisioning.local_provisioner import LocalProvisioner
@@ -25,7 +25,7 @@ async def pre_launch(self, **kwargs: Any) -> dict[str, Any]:
2525
# Reload argv from the original kernel spec to avoid side effects from previous launches
2626
kernel_spec.argv = KernelSpec.from_resource_dir(kernel_spec.resource_dir).argv
2727

28-
kernel_metadata: Optional[dict[str, str]] = kernel_spec.metadata.get("pixi-kernel")
28+
kernel_metadata: dict[str, str] | None = kernel_spec.metadata.get("pixi-kernel")
2929
if kernel_metadata is None:
3030
message = (
3131
f"Kernel {kernel_spec.display_name} uses the PixiKernelProvisioner but it"

pixi_kernel/types.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
from __future__ import annotations
22

3-
from typing import Optional
4-
53
import msgspec
64

75

86
class PixiInfo(msgspec.Struct, frozen=True, kw_only=True):
97
environments: list[Environment] = msgspec.field(name="environments_info")
10-
project: Optional[Project] = msgspec.field(name="project_info")
8+
project: Project | None = msgspec.field(name="project_info")
119

1210

1311
class Environment(msgspec.Struct, frozen=True, kw_only=True):

pyproject.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "pixi-kernel"
3-
version = "0.6.7"
3+
version = "0.7.0"
44
description = "Jupyter kernels using Pixi for reproducible notebooks"
55
license = { text = "MIT" }
66
authors = [
@@ -23,15 +23,15 @@ classifiers = [
2323
"Programming Language :: Python",
2424
"Programming Language :: Python :: 3",
2525
"Programming Language :: Python :: 3 :: Only",
26-
"Programming Language :: Python :: 3.9",
2726
"Programming Language :: Python :: 3.10",
2827
"Programming Language :: Python :: 3.11",
2928
"Programming Language :: Python :: 3.12",
3029
"Programming Language :: Python :: 3.13",
30+
"Programming Language :: Python :: 3.14",
3131
"Typing :: Typed",
3232
]
3333

34-
requires-python = ">=3.9,<4.0"
34+
requires-python = ">=3.10,<4.0"
3535
dependencies = [
3636
"ipykernel>=6",
3737
"jupyter-client>=7",
@@ -46,8 +46,8 @@ Documentation = "https://github.com/renan-r-santos/pixi-kernel"
4646
Homepage = "https://github.com/renan-r-santos/pixi-kernel"
4747
Repository = "https://github.com/renan-r-santos/pixi-kernel"
4848

49-
[tool.uv]
50-
dev-dependencies = [
49+
[dependency-groups]
50+
dev = [
5151
"jupyter-kernel-test>=0.7",
5252
"jupyterlab>=4",
5353
"msgspec[toml]>=0.18",
@@ -65,7 +65,7 @@ pixi-kernel-provisioner = "pixi_kernel.provisioner:PixiKernelProvisioner"
6565
[tool.ruff]
6666
src = ["pixi_kernel"]
6767
line-length = 99
68-
target-version = "py39"
68+
target-version = "py310"
6969

7070
[tool.ruff.lint]
7171
extend-select = [

tox.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = py{39,310,311,312,313}-{test,ipykernel,r-irkernel}, lint, type_check, cov
2+
envlist = py{310,311,312,313,314}-{test,ipykernel,r-irkernel}, lint, type_check, cov
33

44
[testenv]
55
commands =
@@ -20,7 +20,7 @@ setenv =
2020
usedevelop = true # https://stackoverflow.com/a/77187200
2121

2222

23-
[testenv:py{39,310,311,312,313}]
23+
[testenv:py{310,311,312,313,314}]
2424
commands = {[testenv]commands}
2525
deps = {[testenv]deps}
2626
runner = uv-venv-runner
@@ -54,7 +54,7 @@ commands =
5454
coverage report
5555
coverage html
5656
coverage xml
57-
depends = py{39,310,311,312,313}-{test,ipykernel,r-irkernel}
57+
depends = py{310,311,312,313,314}-{test,ipykernel,r-irkernel}
5858
runner = uv-venv-lock-runner
5959
setenv =
6060
COVERAGE_DEBUG = 1

0 commit comments

Comments
 (0)