
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
M]W/                 @   sf   d dl Z d dlZ ye W n ek
r0   eZY nX G dd de jZedkrbedZde_e	e dS )    Nc               @   s*   e Zd ZdZejjjdd Zdd ZdS )SerialzOJust inherit the native Serial port implementation and patch the port property.c             C   s@   t |tr,|jdr,tjjj| | j| ntjjj| | dS )z%translate port name before storing itz	hwgrep://N)
isinstance
basestring
startswithserialr   port__set__from_url)selfvalue r   %/usr/lib/python3.6/protocol_hwgrep.pyr   $   s    zSerial.portc             C   s,  |j  jdr|dd }d}d}|jd}|jd}xv|D ]n}d|krZ|jdd\}}n|}d}|d	krt|d }|dk rtd
j|q<|dkrd}q<tdj|q<W xxttj	j
j|D ]R\}	}
}|rytj|	}W n tjk
r   wY n
X |j  |r|d8 }q|	S W tjdj|dS )z(extract host and port from an URL stringz	hwgrep://	   Nr   F&=   nz9option "n" expects a positive integer larger than 1: {!r}Z	skip_busyTzunknown option: {!r}z#no ports found matching regexp {!r})lowerr   splitpopint
ValueErrorformatsortedr   ZtoolsZ
list_portsZgrepr   ZSerialExceptionclose)r
   Zurlr   Z	test_openargsZregexpargZoptionr   r   ZdescZhwidsr   r   r   r	   ,   s<    


zSerial.from_urlN)	__name__
__module____qualname____doc__r   r   r   setterr	   r   r   r   r   r       s   r   __main__zhwgrep://ttyS0)
r   Zserial.tools.list_portsr   	NameErrorstrr   r   r   r   printr   r   r   r   <module>   s   
6