a µZÎã@sJddlZejddkZGdd„deƒZGdd„deƒZGdd„deƒZdS) éNéc@s2eZdZdZdZdZd dd„Zdd„Zdd „ZdS) ÚUSBz) Interace to usb.ids from hwdata package z/usr/share/hwdata/usb.idsNc CsÀ|r ||_ntj|_d|_|jr¼tjs¼it_trDt|jdd}n t|jƒ}d}d}d}| ¡D]V}|d7}| ¡}| d¡r˜| d¡rbq¼nqbqbt |ƒdkr¨qbqb| d¡r0|d  ¡}t |ƒd kràd   |dd…¡} nd } z| tj|d|d|<Wn*t y,t j d  ||j¡¡Yn0qb| d ¡rr|d  ¡}d   |dd…¡} | igtj|d|<qb|d  ¡}d   |dd…¡} |tjvr¬| igtj|<qb| tj|d<qbdS)ú Load pci.ids from file to internal data structure. parameter 'filename' can specify location of this file éú ISO8859-1©ÚencodingrNú#z8# List of known device classes, subclasses and protocolsú éú Úz!Unknown line at line {0} in {1}. ú )ÚfilenamerÚcacheÚdevicesÚinPy3kÚopenÚ readlinesÚsplitÚ startswithÚlenÚlowerÚjoinÚ TypeErrorÚsysÚstderrÚwriteÚformat) ÚselfrÚfÚlinenoÚvendorÚdeviceÚlineÚlZ interface_idZinterface_nameÚ device_nameÚ vendor_name©r(ú*/usr/lib/python3.9/site-packages/hwdata.pyÚ__init__sN           z USB.__init__cCs2| ¡}|jr,|tjvr&tj|dSdSn‚dS©z~ Return description of vendor. Parameter is two byte code in hexa. If vendor is unknown None is returned. rN©rrrr©rr"r(r(r)Ú get_vendorOs  zUSB.get_vendorcCsZ| ¡}| ¡}|jrT|tjvrN|tj|dvrHtj|d|dSdSqVdSn‚dS)úŠ Return description of device. Parameters are two byte code variables in hexa. If device is unknown None is returned. rrNr,©rr"r#r(r(r)Ú get_device\s zUSB.get_device)N© Ú__name__Ú __module__Ú __qualname__Ú__doc__rrr*r.r1r(r(r(r)rs  4 rc@s2eZdZdZdZdZd dd„Zdd„Zdd „ZdS) ÚPCIz) Interace to pci.ids from hwdata package z/usr/share/hwdata/pci.idsNc Cs$|r ||_ntj|_d|_|jr tjs it_trDt|jdd}n t|jƒ}d}| ¡D]Ä}| ¡}| d¡rtqZqZt |ƒdkr„qZqZ| d¡r’qZqZ| d¡rÎ|d  ¡}d   |dd…¡}|tj|d|<qZ|d  ¡}d   |dd…¡}|t tj  ¡ƒvr|igtj|<qZ|tj|d<qZdS) rrrrNr rr rr )rr7rrrrrrrrrrÚlistÚkeys) rrr r"r$r%r#r&r'r(r(r)r*rs6        z PCI.__init__cCs:| ¡}|jr4|ttj ¡ƒvr.tj|dSdSn‚dSr+©rrr8r7rr9r-r(r(r)r.˜s zPCI.get_vendorcCsf| ¡}| ¡}|jr`|ttj ¡ƒvrZ|ttj|d ¡ƒvrTtj|d|SdSqbdSn‚dS)r/rNr:r0r(r(r)r1¥szPCI.get_device)Nr2r(r(r(r)r7ms  & r7c@s*eZdZdZdZdZddd„Zdd„ZdS) ÚPNPz) Interace to pnp.ids from hwdata package z/usr/share/hwdata/pnp.idsNcCs¦|r ||_ntj|_d|_|jr¢tjs¢it_tr@t|jdd}n t|jƒ}| ¡D]N}| ¡}| d¡rlqRqRt |ƒdkr|qRqR|d  ¡}d  |dd…¡tj|<qRdS)z Load pnp.ids from file to internal data structure. parameter 'filename' can specify location of this file rrrr rr N) rr;rÚVENDORSrrrrrrÚupperr)rrr r$r%Ú vendor_idr(r(r)r*»s"      z PNP.__init__cCs6| ¡}|jr0|ttj ¡ƒvr*tj|SdSn‚dS)z† Return description of vendor. Parameter is 3 character long id of vendor. If vendor is unknown None is returned. N)r=rr8r;r<r9)rr>r(r(r)r.Ös  zPNP.get_vendor)N)r3r4r5r6rr<r*r.r(r(r(r)r;¶s  r;)rÚ version_inforÚobjectrr7r;r(r(r(r)ÚsWI