^= dZddlmZddlZddlZddlZejdkrddlmZn5ejdkrddl mZn#e d ejd d Z d Z ed kr e dSdS) aAThis 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_importNnt)comportsposixz;Sorry: no implementation for your platform ('{}') availableFc#Ktj|tj}t|D]K}|\}}}||s*||s||r|VLdS)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)recompileIrsearch)regexp include_linksrinfoportdeschwids 9/usr/lib/python3/dist-packages/serial/tools/list_ports.pygrepr's 624  A''dD 88D>> QXXd^^ qxx~~ JJJcddl}|d}|ddd|dd d d |d dd d |dtd|ddd d |}d}|jrg|js7tj d |jtt|j|j }n"tt|j }t|dD]\}\}}}|j |j|krtj d ||jrdtj d |tj d ||dz }|jsW|r4tj d |dStj ddSdS)NrzSerial port enumeration) descriptionr ?z%only show ports that match this regex)nargshelpz-vz --verbose store_truezshow more messages)actionrz-qz--quietzsuppress all messagesz-nzonly output the N-th entry)typerz-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 zno ports found )argparseArgumentParser add_argumentint parse_argsr quietsysstderrwriteformatsortedrr r enumeratenstdoutverbose) rparserargshitsiteratorr+rrrs rmainr25sOOO  $ $1J $ K KF  4666   k !###   i $&&&    )+++    @BBB     D D {Fz V J  @GG TT U U U$t{$:LMMMNN(1CDDDEE!*8Q!7!7 D$ 6>TVq[[ J  Y--d33 4 4 4| @   !1!8!8!>!>???   !1!8!8!>!>???   :1  1 J  /66t<< = = = = = J  / 0 0 0 0 0 11r__main__)F)__doc__ __future__rr%osrnameserial.tools.list_ports_windowsrserial.tools.list_ports_posix ImportErrorr(rr2__name__rrr=s'&&&&& 7d??8888888W6666666 +SZZ[][bcc d dd    414141p zDFFFFFr