@@ -315,6 +315,7 @@ class Chip:
req_internal = self._chip.request_lines(line_cfg, consumer, event_buffer_size)
request = LineRequest(req_internal)
+ request._chip_path = self.path
request._offsets = req_internal.offsets
request._name_map = name_map
request._offset_map = offset_map
@@ -212,10 +212,18 @@ class LineRequest:
if not self._req:
return "<LineRequest RELEASED>"
- return "<LineRequest num_lines={} offsets={} fd={}>".format(
- self.num_lines, self.offsets, self.fd
+ return '<LineRequest chip_path="{}" num_lines={} offsets={} fd={}>'.format(
+ self.chip_path, self.num_lines, self.offsets, self.fd
)
+ @property
+ def chip_path(self) -> str:
+ """
+ Path of the chip this request was made on.
+ """
+ self._check_released()
+ return self._chip_path
+
@property
def num_lines(self) -> int:
"""
@@ -529,11 +529,14 @@ class LineRequestStringRepresentation(TestCase):
del self.sim
def test_str(self):
- with gpiod.request_lines(self.sim.dev_path, config={(2, 6, 4, 1): None}) as req:
- self.assertEqual(
- str(req),
- "<LineRequest num_lines=4 offsets=[2, 6, 4, 1] fd={}>".format(req.fd),
- )
+ with gpiod.Chip(self.sim.dev_path) as chip:
+ with chip.request_lines(config={(2, 6, 4, 1): None}) as req:
+ self.assertEqual(
+ str(req),
+ '<LineRequest chip_path="{}" num_lines=4 offsets=[2, 6, 4, 1] fd={}>'.format(
+ chip.path, req.fd
+ ),
+ )
def test_str_released(self):
req = gpiod.request_lines(self.sim.dev_path, config={(2, 6, 4, 1): None})