Skip to content

Commit 03ff9e2

Browse files
authored
Merge pull request #266 from jumpstarter-dev/doctest-more
Hide __init__ signature from autogenerated client classes, expand doctest coverage
2 parents 3ff0893 + 841add4 commit 03ff9e2

File tree

8 files changed

+61
-7
lines changed

8 files changed

+61
-7
lines changed

docs/source/api-reference/drivers/can.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
The CAN driver is a driver for using CAN bus connections.
44

55
```{eval-rst}
6-
.. autoclass:: jumpstarter_driver_can.client.CanClient
6+
.. autoclass:: jumpstarter_driver_can.client.CanClient()
77
:members:
88
```
99

1010
```{eval-rst}
11-
.. autoclass:: jumpstarter_driver_can.client.IsoTpClient
11+
.. autoclass:: jumpstarter_driver_can.client.IsoTpClient()
1212
:members:
13-
```
13+
```

docs/source/api-reference/drivers/pyserial.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export:
2424
2525
## PySerialClient API
2626
```{eval-rst}
27-
.. autoclass:: jumpstarter_driver_pyserial.client.PySerialClient
27+
.. autoclass:: jumpstarter_driver_pyserial.client.PySerialClient()
2828
:members: pexpect, open, stream, open_stream, close
2929
```
3030

docs/source/api-reference/drivers/sdwire.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,27 @@ The SDWire driver is an storgate multiplexer driver for using the SDWire
44
multiplexer. This device multiplexes an SD card between the DUT and the
55
exporter host.
66

7+
## Driver Configuration
8+
9+
```{literalinclude} sdwire.yaml
10+
:language: yaml
11+
```
12+
13+
```{doctest}
14+
:hide:
15+
>>> from jumpstarter.config import ExporterConfigV1Alpha1DriverInstance
16+
>>> ExporterConfigV1Alpha1DriverInstance.from_path("source/api-reference/drivers/sdwire.yaml").instantiate()
17+
Traceback (most recent call last):
18+
...
19+
FileNotFoundError: failed to find sd-wire device
20+
```
21+
22+
## Client API
23+
724
The SDWire driver implements the `StorageMuxClient` class, which is a generic
825
storage class.
926

1027
```{eval-rst}
11-
.. autoclass:: jumpstarter_driver_opendal.client.StorageMuxClient
28+
.. autoclass:: jumpstarter_driver_opendal.client.StorageMuxClient()
1229
:members:
1330
```
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
type: "jumpstarter_driver_sdwire.driver.SDWire"
2+
config:
3+
# optional serial number of the sd-wire device
4+
# the first one found would be used if unset
5+
serial: "sdw-00001"
6+
# optional path to the block device exposed by sd-wire
7+
# automatically detected if unset
8+
storage_device: "/dev/disk/by-diskseq/1"

docs/source/api-reference/drivers/ustreamer.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,24 @@ The Ustreamer driver is a driver for using the ustreamer video streaming server
44
driven by the jumpstarter exporter. This driver takes a video device and
55
exposes both snapshot and streaming interfaces.
66

7+
## Driver configuration
8+
9+
```{literalinclude} ustreamer.yaml
10+
:language: yaml
11+
```
12+
13+
```{doctest}
14+
:hide:
15+
>>> from jumpstarter.config import ExporterConfigV1Alpha1DriverInstance
16+
>>> ExporterConfigV1Alpha1DriverInstance.from_path("source/api-reference/drivers/ustreamer.yaml").instantiate()
17+
Traceback (most recent call last):
18+
...
19+
io.UnsupportedOperation: fileno
20+
```
21+
22+
## Client API
23+
724
```{eval-rst}
8-
.. autoclass:: jumpstarter_driver_ustreamer.client.UStreamerClient
25+
.. autoclass:: jumpstarter_driver_ustreamer.client.UStreamerClient()
926
:members:
1027
```
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
type: "jumpstarter_driver_ustreamer.driver.UStreamer"
2+
config:
3+
# name or path of the ustreamer executable
4+
# defaults to finding ustreamer from path
5+
executable: "ustreamer"
6+
args: # extra arguments to pass to ustreamer
7+
brightness: auto # --brightness=auto
8+
contrast: default # --contract=default

docs/source/api-reference/drivers/yepkit.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export:
3636
The yepkit ykush driver provides a `PowerClient` with the following API:
3737

3838
```{eval-rst}
39-
.. autoclass:: jumpstarter_driver_power.client.PowerClient
39+
.. autoclass:: jumpstarter_driver_power.client.PowerClient()
4040
:members: on, off
4141
```
4242

packages/jumpstarter/jumpstarter/config/exporter.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ def instantiate(self) -> Driver:
2929

3030
return driver_class(children=children, **self.config)
3131

32+
@classmethod
33+
def from_path(cls, path: str) -> ExporterConfigV1Alpha1DriverInstance:
34+
with open(path) as f:
35+
return cls.model_validate(yaml.safe_load(f))
3236

3337
class ExporterConfigV1Alpha1(BaseModel):
3438
BASE_PATH: ClassVar[Path] = Path("/etc/jumpstarter/exporters")

0 commit comments

Comments
 (0)