@@ -635,7 +635,7 @@ class DeviceCategory(Enum):
635
635
)
636
636
Wireless = ("ue0****" , "p0d****" )
637
637
Bluetooth = ("ue00101" , "p0d11**" )
638
- Mass_Data = ("b******" , "u08****" , "p01****" )
638
+ Storage = ("b******" , "u08****" , "p01****" )
639
639
Network = ("p02****" ,)
640
640
Memory = ("p05****" ,)
641
641
PCI_Bridge = ("p06****" ,)
@@ -750,23 +750,28 @@ def __str__(self):
750
750
"no subclass" ,
751
751
"unused" ,
752
752
"undefined" ,
753
+ "vendor specific subclass" ,
753
754
):
754
755
# if not, try interface
755
756
result = self ._load_classes (self .devclass ).get (
756
757
self ._interface_encoding [1 :], None
757
758
)
758
759
if result is None or result .lower () in (
759
760
"none" ,
760
- "no subclass" ,
761
761
"unused" ,
762
762
"undefined" ,
763
763
):
764
764
# if not, try class
765
765
result = self ._load_classes (self .devclass ).get (
766
766
self ._interface_encoding [1 :- 4 ] + "****" , None
767
767
)
768
- if result is None :
769
- result = f"Unclassified { self .devclass } device"
768
+ if result is None or result .lower () in (
769
+ "none" ,
770
+ "unused" ,
771
+ "undefined" ,
772
+ "vendor specific class" ,
773
+ ):
774
+ result = f"{ self .devclass .upper ()} device"
770
775
return result
771
776
if self .devclass == "mic" :
772
777
return "Microphone"
@@ -954,9 +959,17 @@ def description(self) -> str:
954
959
else :
955
960
vendor = "unknown vendor"
956
961
957
- cat = self .interfaces [0 ].category .name
958
- if cat == "Other" :
959
- cat = str (self .interfaces [0 ])
962
+ for interface in self .interfaces :
963
+ if interface .category .name != "Other" :
964
+ cat = interface .category .name
965
+ break
966
+ else :
967
+ for interface in self .interfaces :
968
+ if str (interface ) != f"{ self .devclass .upper ()} device" :
969
+ cat = str (interface )
970
+ break
971
+ else :
972
+ cat = f"{ self .devclass .upper ()} device"
960
973
return f"{ cat } : { vendor } { prod } "
961
974
962
975
@property
0 commit comments