
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!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rŽt|ƒd }|dk rªtd
j|ƒƒ‚q<|dkrœd}q<tdj|ƒƒ‚q<W xxttj	j
j|ƒƒD ]R\}	}
}|�rytj|	ƒ}W n tjk
rø   wÂY 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