o
    ȷe=                     @   s   d Z ddlmZ ddlZddlZddlZejdkr ddlmZ nejdkr,ddl	mZ ne
dejdd	d
Zdd ZedkrFe  dS dS )aA  This module will provide a function called comports that returns an
iterable (generator or list) that will enumerate available com ports. Note that
on some systems non-existent ports may be listed.

Additionally a grep function is supplied that can be used to search for ports
based on their descriptions or hardware ID.
    )absolute_importNnt)comportsposixz;Sorry: no implementation for your platform ('{}') availableFc                 c   sP    t | t j}t|D ]}|\}}}||s"||s"||r%|V  qdS )z    Search for ports using a regular expression. Port name, description and
    hardware ID are searched. The function returns an iterable that returns the
    same tuples as comport() would do.
    N)recompileIr   search)regexpinclude_linksrinfoportdeschwid r   N/var/www/ideatree/venv/lib/python3.10/site-packages/serial/tools/list_ports.pygrep'   s   
r   c            	      C   sb  dd l } | jdd}|jdddd |jdd	d
dd |jddd
dd |jdtdd |jddd
dd | }d}|jrV|jsKtj	d
|j tt|j|jd}ntt|jd}t|dD ]3\}\}}}|jd u st|j|krtj	d
| |jrtj	d
| tj	d
| |d7 }qc|js|rtj	d
| d S tj	d d S d S )Nr   zSerial port enumeration)descriptionr
   ?z%only show ports that match this regex)nargshelpz-vz	--verbose
store_truezshow more messages)actionr   z-qz--quietzsuppress all messagesz-nzonly output the N-th entry)typer   z-sz--include-linksz1include entries that are symlinks to real devicesz Filtered list with regexp: {!r}
)r      z{:20}
z    desc: {}
z    hwid: {}
z{} ports found
zno ports found
)argparseArgumentParseradd_argumentint
parse_argsr
   quietsysstderrwriteformatsortedr   r   r   	enumeratenstdoutverbose)	r   parserargshitsiteratorr(   r   r   r   r   r   r   main5   s\   
r/   __main__)F)__doc__
__future__r   r"   osr   nameserial.tools.list_ports_windowsr   serial.tools.list_ports_posixImportErrorr%   r   r/   __name__r   r   r   r   <module>   s   		


8
