σ
ΉσPOc           @   s0   d  Z  d d d     YZ d d d     YZ d S(   sF    Query hwdata database and return decription of vendor and/or device. t   USBc           B   s8   e  Z d  Z d Z d Z d d  Z d   Z d   Z RS(   s)    Interace to usb.ids from hwdata package s   /usr/share/hwdata/usb.idsc   
      C   sΜ  | r | |  _  n t j  |  _  d |  _ |  j rΘt j rΘi  t _ xt |  j   j   D]h} | j   } | j d  r | j d  rY PqΑqY qY t |  d k r« qY qY | j d  r| d j	   } t |  d k rς d j
 | d  } n d } | t j | d | d | <qY | j d	  rh| d j	   } d j
 | d  } | i  g t j | d | <qY | d j	   } d j
 | d  }	 | t j k r°|	 i  g t j | <qY |	 t j | d <qY Wn  d
 S(   s    Load pci.ids from file to internal data structure.
            parameter 'filename' can specify location of this file
        i   t   #s8   # List of known device classes, subclasses and protocolsi    s   		i   t    t    s   	N(   t   filenameR    t   cachet   devicest   opent	   readlinest   splitt
   startswitht   lent   lowert   join(
   t   selfR   t   linet   lt   interface_idt   interface_namet   vendort   devicet   device_namet   vendor_name(    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyt   __init__   s:    		 c         C   sA   | j    } |  j r: | t j k r3 t j | d Sd Sn   d S(   s~    Return description of vendor. Parameter is two byte code in hexa.
            If vendor is unknown None is returned.
        i    N(   R   R   R    R   t   None(   R   R   (    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyt
   get_vendor@   s    	c         C   ss   | j    } | j    } |  j rl | t j k re | t j | d k r^ t j | d | d Sd Sqo d Sn   d S(   s    Return description of device. Parameters are two byte code variables in hexa.
            If device is unknown None is returned.
        i   i    N(   R   R   R    R   R   (   R   R   R   (    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyt
   get_deviceM   s    	N(	   t   __name__t
   __module__t   __doc__R   R   R   R   R   R   (    (    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyR       s   )	t   PCIc           B   s8   e  Z d  Z d Z d Z d d  Z d   Z d   Z RS(   s)    Interace to pci.ids from hwdata package s   /usr/share/hwdata/pci.idsc   	      C   sm  | r | |  _  n t j  |  _  d |  _ |  j rit j rii  } i  t _ xt |  j   j   D]} | j   } | j d  r q_ q_ t |  d k r q_ q_ | j d  r³ q_ q_ | j d  rύ | d j	   } d j
 | d  } | t j | d | <q_ | d j	   } d j
 | d  } | t t j j    k rQ| i  g t j | <q_ | t j | d <q_ Wn  d S(   s    Load pci.ids from file to internal data structure.
            parameter 'filename' can specify location of this file
        i   R   i    s   		s   	R   N(   R   R   R   R   R   R   R	   R
   R   R   R   t   listt   keys(	   R   R   t   pcirecR   R   R   R   R   R   (    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyR   c   s0    		c         C   sM   | j    } |  j rF | t t j j    k r? t j | d Sd Sn   d S(   s~    Return description of vendor. Parameter is two byte code in hexa.
            If vendor is unknown None is returned.
        i    N(   R   R   R   R   R   R    R   (   R   R   (    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyR      s    	c         C   s   | j    } | j    } |  j r | t t j j    k ry | t t j | d j    k rr t j | d | Sd Sq d Sn   d S(   s    Return description of device. Parameters are two byte code variables in hexa.
            If device is unknown None is returned.
        i   N(   R   R   R   R   R   R    R   (   R   R   R   (    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyR      s    	#N(	   R   R   R   R   R   R   R   R   R   (    (    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyR   ^   s   "	N(    (    (   R   R    R   (    (    (    s*   /usr/lib/python2.7/site-packages/hwdata.pyt   <module>   s   L