linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Mantas Mikulėnas" <grawity@gmail.com>
To: linux-usb@vger.kernel.org
Cc: gregkh@linuxfoundation.org, "Mantas Mikulėnas" <grawity@gmail.com>
Subject: [PATCH 16/34] lsusb.py: entirely remove Usb* classes
Date: Mon,  6 May 2019 12:02:23 +0300	[thread overview]
Message-ID: <20190506090241.169665-17-grawity@gmail.com> (raw)
In-Reply-To: <20190506090241.169665-1-grawity@gmail.com>

Their main purpose in life was to be sortable, which we no longer do.

Signed-off-by: Mantas Mikulėnas <grawity@gmail.com>
---
 lsusb.py.in | 53 ++++++-----------------------------------------------
 1 file changed, 6 insertions(+), 47 deletions(-)

diff --git a/lsusb.py.in b/lsusb.py.in
index e1a30d7..73b4e67 100644
--- a/lsusb.py.in
+++ b/lsusb.py.in
@@ -43,47 +43,6 @@ def readlink(path, name):
 	"Read symlink and return basename"
 	return os.path.basename(os.readlink(prefix + path + "/" + name));
 
-class UsbClass:
-	"Container for USB Class/Subclass/Protocol"
-	def __init__(self, cl, sc, pr, strg = ""):
-		self.pclass = cl
-		self.subclass = sc
-		self.proto = pr
-		self.desc = strg
-	def __str__(self):
-		return self.desc
-	def __lt__(self, oth):
-		return (self.pclass, self.subclass, self.proto) < \
-				(oth.pclass, oth.subclass, oth.proto)
-	def __eq__(self, oth):
-		return (self.pclass, self.subclass, self.proto) == \
-				(oth.pclass, oth.subclass, oth.proto)
-
-class UsbVendor:
-	"Container for USB Vendors"
-	def __init__(self, vid, vname = ""):
-		self.vid = vid
-		self.vname = vname
-	def __str__(self):
-		return self.vname
-	def __lt__(self, oth):
-		return self.vid < oth.vid
-	def __eq__(self, oth):
-		return self.vid == oth.vid
-
-class UsbProduct:
-	"Container for USB VID:PID devices"
-	def __init__(self, vid, pid, pname = ""):
-		self.vid = vid
-		self.pid = pid
-		self.pname = pname
-	def __str__(self):
-		return self.pname
-	def __lt__(self, oth):
-		return (self.vid, self.pid) < (oth.vid, oth.pid)
-	def __eq__(self, oth):
-		return (self.vid, self.pid) == (oth.vid, oth.pid)
-
 usbvendors = {}
 usbproducts = {}
 usbclasses = {}
@@ -125,7 +84,7 @@ def parse_usb_ids():
 		if ishexdigit(ln[0:4]):
 			mode = modes.Vendor
 			vid = int(ln[:4], 16)
-			usbvendors[vid] = UsbVendor(vid, ln[6:])
+			usbvendors[vid] = ln[6:]
 			continue
 		if ln[0] == '\t' and ishexdigit(ln[1:3]):
 			# usb.ids has a device id of 01xy, sigh
@@ -135,7 +94,7 @@ def parse_usb_ids():
 				did = int(ln[1:5], 16)
 			# USB devices
 			if mode == modes.Vendor:
-				usbproducts[vid, did] = UsbProduct(vid, did, ln[7:])
+				usbproducts[vid, did] = ln[7:]
 				continue
 			elif mode == modes.Class:
 				nm = ln[5:]
@@ -143,20 +102,20 @@ def parse_usb_ids():
 					strg = cstrg + ":" + nm
 				else:
 					strg = cstrg + ":"
-				usbclasses[vid, did, -1] = UsbClass(vid, did, -1, strg)
+				usbclasses[vid, did, -1] = strg
 				continue
 		if ln[0] == 'C':
 			mode = modes.Class
 			cid = int(ln[2:4], 16)
 			cstrg = ln[6:]
-			usbclasses[cid, -1, -1] = UsbClass(cid, -1, -1, cstrg)
+			usbclasses[cid, -1, -1] = cstrg
 			continue
 		if mode == modes.Class and ln[0] == '\t' and ln[1] == '\t' and ishexdigit(ln[2:4]):
 			prid = int(ln[2:4], 16)
-			usbclasses[cid, did, prid] = UsbClass(cid, did, prid, strg + ":" + ln[6:])
+			usbclasses[cid, did, prid] = ln[6:]
 			continue
 		mode = modes.Misc
-	usbclasses[0xFF, 0xFF, 0xFF] = UsbClass(0xFF, 0xFF, 0xFF, "Vendor Specific")
+	usbclasses[0xFF, 0xFF, 0xFF] = "Vendor Specific"
 
 def find_usb_prod(vid, pid):
 	"Return device name from USB Vendor:Product list"
-- 
2.21.0


  parent reply	other threads:[~2019-05-06  9:03 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-06  9:02 usbutils - various patches to the lsusb.py script Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 01/34] lsusb.py: sort devices and interfaces numerically Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 02/34] lsusb.py: sort toplevel entries Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 03/34] lsusb.py: improve usage text Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 04/34] lsusb.py: replace fake deepcopy() Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 05/34] lsusb.py: remove -w (warn if usb.ids not sorted) option Mantas Mikulėnas
2019-05-06 11:12   ` Greg KH
2019-05-06 11:21     ` Mantas Mikulėnas
2019-05-06 12:19       ` Greg KH
2019-05-06  9:02 ` [PATCH 06/34] lsusb.py: ensure all error messages are written to stderr Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 07/34] lsusb.py: support long options Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 08/34] lsusb.py: do not entirely hide usb.ids exceptions Mantas Mikulėnas
2019-05-06 12:29   ` Greg KH
2019-05-06 12:47     ` Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 09/34] lsusb.py: use regular print() instead of hand-rolling the same thing Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 10/34] lsusb.py: avoid shadowing Python's built-in 'str' Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 11/34] lsusb.py: replace usb.ids binary search with dict lookup Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 12/34] lsusb.py: remove now-unused bin_search() Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 13/34] lsusb.py: avoid manual calls to __foo__() Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 14/34] lsusb.py: replace __repr__() for USB IDs with __str__() Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 15/34] lsusb.py: insert class FF:FF:FF into usbclasses to avoid special casing Mantas Mikulėnas
2019-05-06  9:02 ` Mantas Mikulėnas [this message]
2019-05-06  9:02 ` [PATCH 17/34] lsusb.py: cosmetic - replace tuples-as-"immutable lists" with regular lists Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 18/34] lsusb.py: use 'elif' where suitable Mantas Mikulėnas
2019-05-06 12:22   ` Greg KH
2019-05-06  9:02 ` [PATCH 19/34] lsusb.py: remove dead code Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 20/34] lsusb.py: move unrelated code out of try..except Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 21/34] lsusb.py: allow - as well as _ when matching hci module names Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 22/34] lsusb.py: use a constant for the magic class number 9 Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 23/34] lsusb.py: Usb* classes: call read() automatically from constructor Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 24/34] lsusb.py: UsbEndpoint: indent is a class implementation detail Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 25/34] lsusb.py: a few cosmetic changes Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 26/34] lsusb.py: shorten find_usb_class() Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 27/34] lsusb.py: give all Usb* objects a .path attribute Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 28/34] lsusb.py: add an actual __repr__() to classes Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 29/34] lsusb.py: give all Usb* classes a superclass Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 30/34] lsusb.py: convert readattr() and readlink() to methods of the container Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 31/34] lsusb.py: use color by default Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 32/34] lsusb.py: rework output for more consistent indent of both columns Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 33/34] lsusb.py: fix endpoint interval spacing Mantas Mikulėnas
2019-05-06  9:02 ` [PATCH 34/34] lsusb.py: visually group USB-version-related fields Mantas Mikulėnas
2019-05-06 12:32 ` usbutils - various patches to the lsusb.py script Greg KH
2019-05-06 12:57   ` Mantas Mikulėnas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190506090241.169665-17-grawity@gmail.com \
    --to=grawity@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).