Skip to content

Commit 42c92d2

Browse files
authored
Merge branch 'main' into tftp-checksum
2 parents 6204ef9 + 675b96c commit 42c92d2

File tree

14 files changed

+49
-26
lines changed

14 files changed

+49
-26
lines changed

__templates__/driver/jumpstarter_driver/driver.py.tmpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ class ${DRIVER_CLASS}(Driver):
1010
some_other_config: int = 69
1111

1212
def __post_init__(self):
13-
super().__post_init__()
13+
if hasattr(super(), "__post_init__"):
14+
super().__post_init__()
1415
# some initialization here.
1516

1617
@classmethod

packages/jumpstarter-driver-can/jumpstarter_driver_can/client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,13 @@ class CanClient(DriverClient, can.BusABC):
3333
"""
3434

3535
def __post_init__(self):
36+
if hasattr(super(), "__post_init__"):
37+
super().__post_init__()
38+
3639
self._periodic_tasks: List[_SelfRemovingCyclicTask] = []
3740
self._filters = None
3841
self._is_shutdown: bool = False
3942

40-
super().__post_init__()
41-
4243
@property
4344
@validate_call(validate_return=True)
4445
def state(self) -> can.BusState:

packages/jumpstarter-driver-can/jumpstarter_driver_can/driver.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ def client(cls) -> str:
4545
return "jumpstarter_driver_can.client.CanClient"
4646

4747
def __post_init__(self):
48-
super().__post_init__()
48+
if hasattr(super(), "__post_init__"):
49+
super().__post_init__()
50+
4951
self.bus = can.Bus(channel=self.channel, interface=self.interface)
5052

5153
@export
@@ -195,7 +197,9 @@ def client(cls) -> str:
195197
return "jumpstarter_driver_can.client.IsoTpClient"
196198

197199
def __post_init__(self):
198-
super().__post_init__()
200+
if hasattr(super(), "__post_init__"):
201+
super().__post_init__()
202+
199203
self.bus = can.Bus(channel=self.channel, interface=self.interface)
200204
self.notifier = can.Notifier(self.bus, [])
201205
self.stack = isotp.NotifierBasedCanStack(

packages/jumpstarter-driver-dutlink/jumpstarter_driver_dutlink/driver.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ class DutlinkConfig:
2929
tty: str | None = field(init=False, default=None)
3030

3131
def __post_init__(self):
32+
if hasattr(super(), "__post_init__"):
33+
super().__post_init__()
34+
3235
for dev in usb.core.find(idVendor=0x2B23, idProduct=0x1012, find_all=True):
3336
serial = usb.util.get_string(dev, dev.iSerialNumber)
3437
if serial == self.serial or self.serial is None:
@@ -80,15 +83,17 @@ def control(self, direction, ty, actions, action, value):
8083

8184

8285
@dataclass(kw_only=True)
83-
class DutlinkSerial(DutlinkConfig, PySerial):
84-
url: str | None = field(init=False, default=None)
85-
86+
class DutlinkSerialConfig(DutlinkConfig, Driver):
8687
def __post_init__(self):
87-
super().__post_init__()
88+
if hasattr(super(), "__post_init__"):
89+
super().__post_init__()
8890

8991
self.url = self.tty
9092

91-
super(PySerial, self).__post_init__()
93+
94+
@dataclass(kw_only=True)
95+
class DutlinkSerial(PySerial, DutlinkSerialConfig):
96+
url: str | None = field(init=False, default=None)
9297

9398

9499
@dataclass(kw_only=True)
@@ -247,7 +252,8 @@ class Dutlink(DutlinkConfig, CompositeInterface, Driver):
247252
"""
248253

249254
def __post_init__(self):
250-
super().__post_init__()
255+
if hasattr(super(), "__post_init__"):
256+
super().__post_init__()
251257

252258
self.children["power"] = DutlinkPower(serial=self.serial, timeout_s=self.timeout_s)
253259
self.children["storage"] = DutlinkStorageMux(

packages/jumpstarter-driver-http/jumpstarter_driver_http/driver.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ class HttpServer(Driver):
2929
runner: Optional[web.AppRunner] = field(init=False, default=None)
3030

3131
def __post_init__(self):
32-
super().__post_init__()
32+
if hasattr(super(), "__post_init__"):
33+
super().__post_init__()
34+
3335
os.makedirs(self.root_dir, exist_ok=True)
3436
self.app.router.add_routes(
3537
[

packages/jumpstarter-driver-pyserial/jumpstarter_driver_pyserial/driver.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ class PySerial(Driver):
3333
baudrate: int = field(default=115200)
3434

3535
def __post_init__(self):
36-
super().__post_init__()
36+
if hasattr(super(), "__post_init__"):
37+
super().__post_init__()
38+
3739
self.device = serial_for_url(self.url, baudrate=self.baudrate)
3840

3941
@classmethod

packages/jumpstarter-driver-raspberrypi/jumpstarter_driver_raspberrypi/driver.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ def client(cls) -> str:
1515
return "jumpstarter_driver_raspberrypi.client.DigitalOutputClient"
1616

1717
def __post_init__(self):
18-
super().__post_init__()
18+
if hasattr(super(), "__post_init__"):
19+
super().__post_init__()
1920
# Initialize as InputDevice first
2021
self.device = InputDevice(pin=self.pin)
2122

@@ -49,7 +50,8 @@ def client(cls) -> str:
4950
return "jumpstarter_driver_raspberrypi.client.DigitalInputClient"
5051

5152
def __post_init__(self):
52-
super().__post_init__()
53+
if hasattr(super(), "__post_init__"):
54+
super().__post_init__()
5355
self.device = DigitalInputDevice(pin=self.pin)
5456

5557
@export

packages/jumpstarter-driver-sdwire/jumpstarter_driver_sdwire/driver.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ class SDWire(StorageMuxInterface, Driver):
2222
storage_device: str | None = field(default=None)
2323

2424
def __post_init__(self):
25-
super().__post_init__()
25+
if hasattr(super(), "__post_init__"):
26+
super().__post_init__()
27+
2628
for dev in usb.core.find(idVendor=0x04E8, idProduct=0x6001, find_all=True):
2729
if self.storage_device is None:
2830
context = pyudev.Context()

packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/driver.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ class Tftp(Driver):
4141
_loop: Optional[asyncio.AbstractEventLoop] = field(init=False, default=None)
4242

4343
def __post_init__(self):
44-
super().__post_init__()
44+
if hasattr(super(), "__post_init__"):
45+
super().__post_init__()
46+
4547
os.makedirs(self.root_dir, exist_ok=True)
4648
if self.host == '':
4749
self.host = self.get_default_ip()

packages/jumpstarter-driver-ustreamer/jumpstarter_driver_ustreamer/driver.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ def client(cls) -> str:
3434
return "jumpstarter_driver_ustreamer.client.UStreamerClient"
3535

3636
def __post_init__(self):
37-
super().__post_init__()
37+
if hasattr(super(), "__post_init__"):
38+
super().__post_init__()
3839

3940
cmdline = [self.executable]
4041

0 commit comments

Comments
 (0)