diff mbox series

[libgpiod,v2,2/2] bindings: python: fix line request by name with multiple entries

Message ID 20240627153103.594107-2-chuang+git@melty.land
State New
Headers show
Series [libgpiod,v2,1/2] bindings: python: tests: add a test case for line request by name with multiple entries | expand

Commit Message

Chuang Zhu June 27, 2024, 3:31 p.m. UTC
From: Chuang Zhu <git@chuang.cz>

When multiple entries are requested using line names in
Chip.request_lines, only the the last entry is added to
LineRequest._name_map, causing a ValueError when trying to use functions
like LineRequest.set_value on any former entries.

This patch fixes that by moving the required variables to the correct
scope.

Signed-off-by: Chuang Zhu <git@chuang.cz>
---
 bindings/python/gpiod/chip.py | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/bindings/python/gpiod/chip.py b/bindings/python/gpiod/chip.py
index 19c62cd..55f0c3e 100644
--- a/bindings/python/gpiod/chip.py
+++ b/bindings/python/gpiod/chip.py
@@ -279,11 +279,12 @@  class Chip:
         else:
             mapped_output_values = None
 
+        name_map = dict()
+        offset_map = dict()
+        global_output_values = list()
+
         for lines, settings in config.items():
             offsets = list()
-            name_map = dict()
-            offset_map = dict()
-            global_output_values = list()
 
             if isinstance(lines, int) or isinstance(lines, str):
                 lines = (lines,)