
    h
                     b    d Z ddlZddlZddlZddlZddlZddddddddddd
Zd	Zg d
Z	d Z
d Zy)z:
Commandline argument parsing for our interpreter prompt.
    Nz	127.0.0.1defaultFz/var/run/tor/controltor)
control_addresscontrol_portuser_provided_portcontrol_socketuser_provided_sockettor_pathrun_cmdrun_pathdisable_color
print_helpzi:s:h)z
interface=zsocket=ztor=zrun=zno-colorhelpc                    t        t              }	 t        j                  | t        t              \  }}|r<t        |      dkD  rdnd}t        j                  ddj                  |      d|      	 |D ]  \  }}|d	v rd
|v r|j                  d
d      \  }}	nd|}	}|<t        j                  j                  j                  |      st        d|z        ||d<   t        j                  j                  j                  |	      st        d|	z        t!        |	      |d<   d|d<   |dv r||d<   d|d<   |dv r||d<   |dv r+t"        j$                  j'                  |      r||d<   ||d<   |dk(  rd|d<   |dv sd|d<    t)        j*                  d|j-                               }
 |
di |S # t        $ r}t        d|z        d}~ww xY w)z
  Parses our arguments, providing a named tuple with their values.

  :param list argv: input arguments to be parsed

  :returns: a **named tuple** with our parsed arguments

  :raises: **ValueError** if we got an invalid argument
     zaren't recognized argumentszisn't a recognized argument'z', 'z' z%s (for usage provide --help)N)z-iz--interface:z'%s' isn't a valid IPv4 addressr   z'%s' isn't a valid port numberr   Tr   )z-sz--socketr   r	   z--torr
   z--runr   r   z
--no-colorr   )z-hz--helpr   Args )dictDEFAULT_ARGSgetoptOPTOPT_EXPANDEDlenGetoptErrorjoin	Exception
ValueErrorrsplitstemutil
connectionis_valid_ipv4_addressis_valid_portintospathexistscollections
namedtuplekeys)argvargsrecognized_argsunrecognized_args	error_msgexcoptargaddressportr   s              d/var/www/betterdocs.net/sherlock_api/venv/lib/python3.12/site-packages/stem/interpreter/arguments.pyparser8       s    
l	$<)/tS,)O&O&367H3IA3M/SpiFKK8I,JIVWW  "  hc3
##	

3*c		yy##99'B<wFG
G")YY!!//59D@AA Yd>#'d 	"	""d%)d!"		d:				ZY		"d?	 	 d<? F 
					4$	O 
 <
4s:
;;<s   A F4 4	G=GGc                  r    t         j                  j                  dt        d   t        d   t        d         S )z\
  Provides our --help usage information.

  :returns: **str** with our usage information
  zmsg.helpr   r   r   )r5   r6   socket)r!   interpretermsgr   r       r7   get_helpr>   ]   s?     
				,-'*+	 
 
 r=   )__doc__r*   r   r'   stem.interpreterr!   stem.util.connectionr   r   r   r8   r>   r   r=   r7   <module>rB      sY      	   !* L:zr=   