
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
U�ZÎ  ã               @   sJ   d dl Z e jd  dkZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )	é    Né   c               @   s2   e Zd ZdZdZdZd
dd„Zdd„ Zdd	„ ZdS )ÚUSBz) Interace to usb.ids from hwdata package z/usr/share/hwdata/usb.idsNc             C   sÄ  |r|| _ ntj | _ d| _| jo&tj �rÀi t_trDt| j dd�}n
t| j ƒ}d}d}d}�xb|jƒ D �]T}|d7 }|jƒ }|jdƒr˜|jdƒrfP nqfqft	|ƒdkr¨qfqf|jdƒ�r2|d j
ƒ }t	|ƒd	kràd
j|dd… ƒ}	nd}	y|	tj| d | d |< W n, tk
�r.   tjjdj|| j ƒƒ Y nX qf|jdƒ�rt|d j
ƒ }d
j|dd… ƒ}
|
i gtj| d |< qf|d j
ƒ }d
j|dd… ƒ}|tjk�r®|i gtj|< qf|tj| d< qfW dS )z Load pci.ids from file to internal data structure.
            parameter 'filename' can specify location of this file
        é   z	ISO8859-1)Úencodingr   Nú#z8# List of known device classes, subclasses and protocolsz		é   ú Ú 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_idZinterface_nameÚdevice_nameÚvendor_name© r$   ú/usr/lib/python3.6/hwdata.pyÚ__init__   sN    


zUSB.__init__c             C   s2   |j ƒ }| jr,|tjkr&tj| d S dS n‚ dS )z~ Return description of vendor. Parameter is two byte code in hexa.
            If vendor is unknown None is returned.
        r   N)r   r   r   r   )r   r   r$   r$   r%   Ú
get_vendorO   s    
zUSB.get_vendorc             C   sZ   |j ƒ }|j ƒ }| jrT|tjkrN|tj| d krHtj| d | d S dS qVdS n‚ dS )zŠ Return description of device. Parameters are two byte code variables in hexa.
            If device is unknown None is returned.
        r   r   N)r   r   r   r   )r   r   r   r$   r$   r%   Ú
get_device\   s    
zUSB.get_device)N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r&   r'   r(   r$   r$   r$   r%   r      s   
4r   c               @   s2   e Zd ZdZdZdZd
dd„Zdd„ Zdd	„ ZdS )ÚPCIz) Interace to pci.ids from hwdata package z/usr/share/hwdata/pci.idsNc       	      C   s(  |r|| _ ntj | _ d| _| jo&tj �r$i t_trDt| j dd�}n
t| j ƒ}d}xÐ|jƒ D ]Ä}|jƒ }|jdƒrvq\q\t	|ƒdkr†q\q\|jdƒr”q\q\|jdƒrÐ|d j
ƒ }d	j|dd… ƒ}|tj| d |< q\|d j
ƒ }d	j|dd… ƒ}|ttjjƒ ƒk�r|i gtj|< q\|tj| d< q\W dS )
z Load pci.ids from file to internal data structure.
            parameter 'filename' can specify location of this file
        r   z	ISO8859-1)r   Nr   r   z		r
   r   )r   r-   r   r   r   r   r   r   r   r   r   r   ÚlistÚkeys)	r   r   r   r   r    r!   r   r"   r#   r$   r$   r%   r&   r   s6    



zPCI.__init__c             C   s:   |j ƒ }| jr4|ttjjƒ ƒkr.tj| d S dS n‚ dS )z~ Return description of vendor. Parameter is two byte code in hexa.
            If vendor is unknown None is returned.
        r   N)r   r   r.   r-   r   r/   )r   r   r$   r$   r%   r'   ˜   s    zPCI.get_vendorc             C   sf   |j ƒ }|j ƒ }| jr`|ttjjƒ ƒkrZ|ttj| d jƒ ƒkrTtj| d | S dS qbdS n‚ dS )zŠ Return description of device. Parameters are two byte code variables in hexa.
            If device is unknown None is returned.
        r   N)r   r   r.   r-   r   r/   )r   r   r   r$   r$   r%   r(   ¥   s    zPCI.get_device)N)	r)   r*   r+   r,   r   r   r&   r'   r(   r$   r$   r$   r%   r-   m   s   
&r-   c               @   s*   e Zd ZdZdZdZddd„Zdd„ ZdS )	ÚPNPz) Interace to pnp.ids from hwdata package z/usr/share/hwdata/pnp.idsNc             C   s¬   |r|| _ ntj | _ d| _| jr¨tj r¨i t_trBt| j dd�}n
t| j ƒ}xZ|jƒ D ]N}|jƒ }|jdƒrpqVqVt	|ƒdkr€qVqV|d j
ƒ }dj|dd… ƒtj|< qVW dS )z Load pnp.ids from file to internal data structure.
            parameter 'filename' can specify location of this file
        r   z	ISO8859-1)r   r   r   r   N)r   r0   r   ÚVENDORSr   r   r   r   r   r   Úupperr   )r   r   r   r    r!   Ú	vendor_idr$   r$   r%   r&   »   s"    

zPNP.__init__c             C   s6   |j ƒ }| jr0|ttjjƒ ƒkr*tj| S dS n‚ dS )z† Return description of vendor. Parameter is 3 character long id of vendor.
            If vendor is unknown None is returned.
        N)r2   r   r.   r0   r1   r/   )r   r3   r$   r$   r%   r'   Ö   s    
zPNP.get_vendor)N)r)   r*   r+   r,   r   r1   r&   r'   r$   r$   r$   r%   r0   ¶   s
   
r0   )r   Úversion_infor   Úobjectr   r-   r0   r$   r$   r$   r%   Ú<module>   s   WI