Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from 4 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
2 changes: 1 addition & 1 deletion .github/workflows/pytest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
strategy:
matrix:
runs-on: [ubuntu-24.04, macos-15]
python-version: ["3.11", "3.12", "3.13"]
python-version: ["3.11", "3.12", "3.13", "3.14", "3.14t"]
steps:
- uses: actions/checkout@v4

Expand Down
2 changes: 1 addition & 1 deletion __templates__/driver/pyproject.toml.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors = [
]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
]

Expand Down
3 changes: 1 addition & 2 deletions packages/jumpstarter-cli-admin/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ dependencies = [
[dependency-groups]
dev = [
"pytest>=8.3.2",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=5.0.0",
]

Expand Down
3 changes: 1 addition & 2 deletions packages/jumpstarter-cli-common/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ dependencies = [
[dependency-groups]
dev = [
"pytest>=8.3.2",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=5.0.0",
]

Expand Down
3 changes: 1 addition & 2 deletions packages/jumpstarter-cli-driver/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ dependencies = ["jumpstarter-cli-common", "click>=8.1.7.2"]
[dependency-groups]
dev = [
"pytest>=8.3.2",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=5.0.0",
]

Expand Down
3 changes: 1 addition & 2 deletions packages/jumpstarter-cli/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ dependencies = [
[dependency-groups]
dev = [
"pytest>=8.3.2",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=5.0.0",
]

Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-ble/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license = "Apache-2.0"
authors = [{ name = "Andreas Karner", email = "andreas.karner@outlook.com" }]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"bleak>=1.1.1",
]
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-energenie/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors = [
]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-power"
]
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-flashers/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ authors = [
requires-python = ">=3.11"
dependencies = [
"oras>=0.2.25",
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-opendal",
"jumpstarter-driver-pyserial",
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-http-power/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors = [
]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-power",
]
Expand Down
5 changes: 2 additions & 3 deletions packages/jumpstarter-driver-http/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license = "Apache-2.0"
authors = [{ name = "Benny Zlotnik", email = "bzlotnik@redhat.com" }]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-composite",
"jumpstarter-driver-opendal",
Expand Down Expand Up @@ -35,8 +35,7 @@ build-backend = "hatchling.build"
dev = [
"pytest-cov>=6.0.0",
"pytest>=8.3.3",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=0.24.0",
"pytest-asyncio>=1.3.0",
]

[tool.hatch.build.hooks.pin_jumpstarter]
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-iscsi/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ readme = "README.md"
authors = [{ name = "Benny Zlotnik", email = "bzlotnik@redhat.com" }]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-composite",
"jumpstarter-driver-opendal",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import ctypes
import socket
from abc import ABCMeta, abstractmethod
from asyncio import get_running_loop
from contextlib import asynccontextmanager
from dataclasses import dataclass, field
from os import getenv, getuid
Expand All @@ -14,7 +13,7 @@
create_connected_udp_socket,
create_memory_object_stream,
)
from anyio._backends._asyncio import SocketStream, StreamProtocol
from anyio._core._eventloop import get_async_backend
Comment thread
NickCao marked this conversation as resolved.
from anyio.streams.stapled import StapledObjectStream

from .streams.websocket import WebsocketClientStream
Expand Down Expand Up @@ -120,6 +119,7 @@ async def address(self):
else:
raise ValueError("enable_address mode is not true in the exporter configuration")


@dataclass(kw_only=True)
class UdpNetwork(NetworkInterface, Driver):
'''
Expand Down Expand Up @@ -207,12 +207,7 @@ async def connect(self):
if libc.connect(sock.fileno(), ctypes.byref(addr), ctypes.sizeof(addr)) < 0:
raise OSError(ctypes.get_errno(), "vsock connect() failed")

transport, protocol = await get_running_loop().create_connection(
StreamProtocol,
sock=sock,
)

yield SocketStream(transport, protocol)
yield await get_async_backend().wrap_stream_socket(sock)


@dataclass(kw_only=True)
Expand Down Expand Up @@ -301,26 +296,27 @@ class EchoNetwork(NetworkInterface, Driver):
@exportstream
@asynccontextmanager
async def connect(self):
tx, rx = create_memory_object_stream[bytes](32) # ty: ignore[call-non-callable]
tx, rx = create_memory_object_stream[bytes](32) # ty: ignore[call-non-callable]
self.logger.debug("Connecting Echo")
async with StapledObjectStream(tx, rx) as stream:
yield stream


@dataclass(kw_only=True)
class WebsocketNetwork(NetworkInterface, Driver):
'''
"""
Handles websocket connections from a given url.
'''
"""

url: str
enable_address: bool = True

@exportstream
@asynccontextmanager
async def connect(self):
'''
"""
Create a websocket connection to `self.url` and streams its output.
'''
"""
self.logger.info("Connecting to %s", self.url)

async with websockets.connect(self.url) as websocket:
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-probe-rs/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license = "Apache-2.0"
authors = [{ name = "Miguel Angel Ajo", email = "miguelangel@ajo.es" }]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"click>=8.1.7.2",
"jumpstarter",
"jumpstarter-driver-opendal",
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-ridesx/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ build-backend = "hatchling.build"
dev = [
"pytest-cov>=6.0.0",
"pytest>=8.3.3",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
]

[tool.hatch.build.hooks.pin_jumpstarter]
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-shell/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ readme = "README.md"
authors = [{ name = "Miguel Angel Ajo", email = "miguelangel@ajo.es" }]
requires-python = ">=3.11"
license = "Apache-2.0"
dependencies = ["anyio>=4.10.0", "jumpstarter", "click>=8.1.8"]
dependencies = ["anyio>=4.12.1", "jumpstarter", "click>=8.1.8"]

[project.entry-points."jumpstarter.drivers"]
Shell = "jumpstarter_driver_shell.driver:Shell"
Expand Down
3 changes: 1 addition & 2 deletions packages/jumpstarter-driver-snmp/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ dependencies = [
dev = [
"pytest>=8.3.2",
"pytest-cov>=6.0.0",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"jumpstarter-testing",
]

Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-ssh-mitm/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors = [
]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-network",
"paramiko>=3.6.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-ssh/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors = [
]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
Comment thread
mangelajo marked this conversation as resolved.
"click>=8.0.0",
"jumpstarter",
"jumpstarter-driver-composite",
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-tasmota/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license = "Apache-2.0"
authors = [{ name = "Nick Cao", email = "nickcao@nichi.co" }]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter_driver_power",
"jumpstarter",
"paho-mqtt>=2.1.0",
Expand Down
5 changes: 2 additions & 3 deletions packages/jumpstarter-driver-tftp/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license = "Apache-2.0"
authors = [{ name = "Benny Zlotnik", email = "bzlotnik@redhat.com" }]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-composite",
"jumpstarter-driver-opendal",
Expand All @@ -17,8 +17,7 @@ dependencies = [
dev = [
"pytest>=8.3.2",
"pytest-cov>=6.0.0",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"jumpstarter-testing",
]

Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-tmt/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors = [
]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-network",
"jumpstarter-driver-composite",
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-vnc/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors = [
]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"jumpstarter",
"jumpstarter-driver-composite",
"jumpstarter-driver-network",
Expand Down
2 changes: 1 addition & 1 deletion packages/jumpstarter-driver-yepkit/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license = "Apache-2.0"
authors = [{ name = "Miguel Angel Ajo", email = "miguelangel@ajo.es" }]
requires-python = ">=3.11"
dependencies = [
"anyio>=4.10.0",
"anyio>=4.12.1",
"pyusb>=1.2.1",
"jumpstarter_driver_power",
"jumpstarter",
Expand Down
3 changes: 1 addition & 2 deletions packages/jumpstarter-kubernetes/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ dependencies = [
[dependency-groups]
dev = [
"pytest>=8.3.2",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=5.0.0",
]

Expand Down
3 changes: 1 addition & 2 deletions packages/jumpstarter-protocol/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ dependencies = [
[dependency-groups]
dev = [
"pytest>=8.3.2",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=5.0.0",
]

Expand Down
3 changes: 1 addition & 2 deletions packages/jumpstarter-testing/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ requires-python = ">=3.11"
dependencies = [
"jumpstarter",
"pytest>=8.3.2",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=5.0.0",
]

Expand Down
5 changes: 2 additions & 3 deletions packages/jumpstarter/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ requires-python = ">=3.11"
dependencies = [
"jumpstarter-protocol",
"pyyaml>=6.0.2",
"anyio>=4.4.0,!=4.6.2",
"anyio>=4.12.1",
"aiohttp>=3.10.5",
"pydantic>=2.8.2",
"xdg-base-dirs>=6.0.2",
Expand All @@ -27,8 +27,7 @@ dependencies = [
dev = [
"pytest>=8.3.2",
"pytest-cov>=6.0.0",
"pytest-anyio>=0.0.0",
"pytest-asyncio>=0.0.0",
"pytest-asyncio>=1.3.0",
"cryptography>=43.0.3",
"jumpstarter-driver-power",
"jumpstarter-driver-network",
Expand Down
Loading
Loading