[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[PATCH] Fixed parsing of strings with multiple values in pyudev



Some of the values which are returned by udev are strings,
which contain more values for the same key.
The string format is "val1 key=val2 key=val3 ...".
This fix makes sure we split this string into a list of values.
---
 pyudev.py |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/pyudev.py b/pyudev.py
index 6ab5d30..a16f9c3 100644
--- a/pyudev.py
+++ b/pyudev.py
@@ -3,6 +3,7 @@ from __future__ import print_function
 import sys
 import os
 import fnmatch
+import re
 from ctypes import *
 
 
@@ -145,6 +146,11 @@ class UdevDevice(dict):
             name = libudev_udev_list_entry_get_name(property_entry)
             value = libudev_udev_list_entry_get_value(property_entry)
 
+            # XXX some of the strings contain a list of values in them,
+            # we want to split them and make a list
+            if re.match(".* %s=.*" % name, value):
+                value = re.split(" %s=" % name, value)
+
             self[name] = value
 
             # get next property entry
-- 
1.6.6


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]