o
    |ÑžSêM  ã                   @   sv  d Z ddlZddlZdgZdZG dd„ deƒZG dd„ deƒZG d	d
„ d
e	ƒZ
G dd„ de
ƒZG dd„ de
ƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd „ d eƒZd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd<d.d/„Zd0d1„ Zd2d3„ Zd4d5„ Z d6d7„ Z!G d8d9„ d9e"ƒZ#d=d;d„Z$dS )>a  Pythonic command-line interface parser that will make you smile.

 * http://docopt.org
 * Repository and issue-tracker: https://github.com/docopt/docopt
 * Licensed under terms of MIT license (see LICENSE-MIT)
 * Copyright (c) 2013 Vladimir Keleshev, vladimir@keleshev.com

é    NÚdocoptz0.6.2c                   @   ó   e Zd ZdZdS )ÚDocoptLanguageErrorz4Error in construction of usage-message by developer.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r
   r
   ú8/var/www/html/env/lib/python3.10/site-packages/docopt.pyr      ó    r   c                   @   s   e Zd ZdZdZddd„ZdS )Ú
DocoptExitz;Exit in case user invoked program with incorrect arguments.Ú c                 C   s   t  | |d | j  ¡ ¡ d S )NÚ
)Ú
SystemExitÚ__init__ÚusageÚstrip)ÚselfÚmessager
   r
   r   r      s   zDocoptExit.__init__N)r   )r   r   r   r	   r   r   r
   r
   r
   r   r      s    r   c                   @   sB   e Zd Zdd„ Zdd„ Zdd„ Zddd	„Zd
d„ Zedd„ ƒZ	dS )ÚPatternc                 C   s   t | ƒt |ƒkS ©N©Úrepr)r   Úotherr
   r
   r   Ú__eq__"   s   zPattern.__eq__c                 C   s   t t| ƒƒS r   )Úhashr   ©r   r
   r
   r   Ú__hash__%   s   zPattern.__hash__c                 C   s   |   ¡  |  ¡  | S r   )Úfix_identitiesÚfix_repeating_argumentsr   r
   r
   r   Úfix(   s   zPattern.fixNc                 C   sx   t | dƒs| S |du rtt|  ¡ ƒƒn|}t| jƒD ]\}}t |dƒs4||v s)J ‚|| |¡ | j|< q| |¡ qdS )z>Make pattern-tree tips point to same object if they are equal.ÚchildrenN)ÚhasattrÚlistÚsetÚflatÚ	enumerater"   Úindexr   )r   ÚuniqÚiÚcr
   r
   r   r   -   s   

ûzPattern.fix_identitiesc                    sª   dd„ | j jD ƒ}|D ]G‰ ‡ fdd„ˆ D ƒD ];}t|ƒtu s't|ƒtu r=|jr=|jdu r0g |_nt|jƒtur=|j ¡ |_t|ƒt	u sNt|ƒtu rQ|jdkrQd|_qq| S )z5Fix elements that should accumulate/increment values.c                 S   s   g | ]}t |jƒ‘qS r
   ©r$   r"   ©Ú.0r+   r
   r
   r   Ú
<listcomp>;   ó    z3Pattern.fix_repeating_arguments.<locals>.<listcomp>c                    s   g | ]}ˆ   |¡d kr|‘qS )é   )Úcountr-   ©Úcaser
   r   r/   =   s    Nr   )
Úeitherr"   ÚtypeÚArgumentÚOptionÚargcountÚvaluer$   ÚsplitÚCommand)r   r5   Úer
   r3   r   r    9   s   
"€ùzPattern.fix_repeating_argumentsc           
      C   s”  g }| gg}|rÁ|  d¡}dd„ |D ƒ}t|v r8dd„ |D ƒd }|  | |¡¡ |jD ]
}| |g| ¡ q,n‡t|v rXdd„ |D ƒd }|  | |¡¡ | t|jƒ| ¡ ngt|v rxdd„ |D ƒd }|  | |¡¡ | t|jƒ| ¡ nGt|v r˜dd„ |D ƒd }|  | |¡¡ | t|jƒ| ¡ n't	|v rºdd„ |D ƒd }	|  | |	¡¡ | t|	jƒd	 | ¡ n| |¡ |std
d„ |D ƒŽ S )zATransform pattern into an equivalent, with only top-level Either.r   c                 S   s   g | ]}t |ƒ‘qS r
   ©r6   r-   r
   r
   r   r/   P   ó    z"Pattern.either.<locals>.<listcomp>c                 S   ó   g | ]
}t |ƒtu r|‘qS r
   )r6   ÚEitherr-   r
   r
   r   r/   R   ó    c                 S   r@   r
   )r6   ÚRequiredr-   r
   r
   r   r/   W   rB   c                 S   r@   r
   )r6   ÚOptionalr-   r
   r
   r   r/   [   rB   c                 S   r@   r
   )r6   Ú
AnyOptionsr-   r
   r
   r   r/   _   rB   c                 S   r@   r
   )r6   Ú	OneOrMorer-   r
   r
   r   r/   c   rB   é   c                 S   s   g | ]}t |Ž ‘qS r
   )rC   )r.   r=   r
   r
   r   r/   h   r?   )
ÚpoprA   r(   r"   ÚappendrC   r$   rD   rE   rF   )
r   ÚretÚgroupsr"   Útypesr5   r+   ÚrequiredÚoptionalÚ	oneormorer
   r
   r   r5   G   s<   

ÿ
çzPattern.eitherr   )
r   r   r   r   r   r!   r   r    Úpropertyr5   r
   r
   r
   r   r       s    
r   c                   @   s0   e Zd Zd
dd„Zdd„ Zdd„ Zd
dd	„ZdS )ÚChildPatternNc                 C   ó   || _ || _d S r   ©Únamer:   ©r   rT   r:   r
   r
   r   r   m   ó   
zChildPattern.__init__c                 C   s   d| j j| j| jf S )Nz
%s(%r, %r))Ú	__class__r   rT   r:   r   r
   r
   r   Ú__repr__q   ó   zChildPattern.__repr__c                 G   s   |rt | ƒ|v r| gS g S r   r>   ©r   rL   r
   r
   r   r&   t   s   zChildPattern.flatc                    sæ   |d u rg n|}ˆ   |¡\}}|d u rd||fS |d |… ||d d …  }‡ fdd„|D ƒ}tˆ jƒttfv rktˆ jƒtu rBd}nt|jƒtu rM|jgn|j}|s]||_d|||g fS |d  j|7  _d||fS d|||g fS )NFr1   c                    s   g | ]
}|j ˆ j kr|‘qS r
   )rT   ©r.   Úar   r
   r   r/   }   rB   z&ChildPattern.match.<locals>.<listcomp>Tr   )Úsingle_matchr6   r:   Úintr$   Ústr)r   ÚleftÚ	collectedÚposÚmatchÚleft_Ú	same_nameÚ	incrementr
   r   r   rc   w   s$   
ÿ
zChildPattern.matchr   )r   r   r   r   rX   r&   rc   r
   r
   r
   r   rQ   k   s
    
rQ   c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚParentPatternc                 G   s   t |ƒ| _d S r   r,   )r   r"   r
   r
   r   r   Ž   s   zParentPattern.__init__c                 C   s"   d| j jd dd„ | jD ƒ¡f S )Nz%s(%s)ú, c                 s   s   � | ]}t |ƒV  qd S r   r   r[   r
   r
   r   Ú	<genexpr>“   ó   € z)ParentPattern.__repr__.<locals>.<genexpr>)rW   r   Újoinr"   r   r
   r
   r   rX   ‘   s   ÿzParentPattern.__repr__c                    s,   t | ƒˆ v r	| gS t‡ fdd„| jD ƒg ƒS )Nc                    s   g | ]}|j ˆ Ž ‘qS r
   )r&   r-   ©rL   r
   r   r/   ˜   r0   z&ParentPattern.flat.<locals>.<listcomp>)r6   Úsumr"   rZ   r
   rm   r   r&   •   s   zParentPattern.flatN)r   r   r   r   rX   r&   r
   r
   r
   r   rh   Œ   s    rh   c                   @   s    e Zd Zdd„ Zedd„ ƒZdS )r7   c                 C   s8   t |ƒD ]\}}t|ƒtu r|t| j|jƒf  S qdS ©N©NN)r'   r6   r7   rT   r:   ©r   r`   ÚnÚpr
   r
   r   r]   �   s
   ÿzArgument.single_matchc                 C   s:   t  d|¡d }t jd|t jd�}| ||r|d ƒS d ƒS )Nz(<\S*?>)r   ú\[default: (.*)\]©Úflags)ÚreÚfindallÚI)Úclass_ÚsourcerT   r:   r
   r
   r   Úparse£   s   zArgument.parseN)r   r   r   r]   Úclassmethodr|   r
   r
   r
   r   r7   ›   s    r7   c                   @   s   e Zd Zddd„Zdd„ ZdS )r<   Fc                 C   rR   r   rS   rU   r
   r
   r   r   ¬   rV   zCommand.__init__c                 C   sH   t |ƒD ]\}}t|ƒtu r!|j| jkr|t| jdƒf  S  dS qdS )NTrp   )r'   r6   r7   r:   rT   r<   rq   r
   r
   r   r]   °   s   ûzCommand.single_matchN©F)r   r   r   r   r]   r
   r
   r
   r   r<   ª   s    
r<   c                   @   s>   e Zd Zddd„Zedd„ ƒZdd	„ Zed
d„ ƒZdd„ Z	dS )r8   Nr   Fc                 C   sH   |dv sJ ‚||| _ | _||| _| _|du r|rd | _d S || _d S )N)r   r1   F©ÚshortÚlongr9   r:   )r   r€   r�   r9   r:   r
   r
   r   r   ¼   s    zOption.__init__c                 C   sš   d\}}}}|  ¡  d¡\}}}| dd¡ dd¡}| ¡ D ]}	|	 d¡r(|	}q|	 d¡r0|	}qd}q|rFtjd	|tjd
�}
|
rD|
d nd }| ||||ƒS )N©NNr   Fz  ú,ú ú=ú--ú-r1   rt   ru   r   )r   Ú	partitionÚreplacer;   Ú
startswithrw   rx   ry   )rz   Úoption_descriptionr€   r�   r9   r:   ÚoptionsÚ_ÚdescriptionÚsÚmatchedr
   r
   r   r|   Â   s   

zOption.parsec                 C   s.   t |ƒD ]\}}| j|jkr||f  S qdS ro   )r'   rT   rq   r
   r
   r   r]   Ó   s
   ÿzOption.single_matchc                 C   s   | j p| jS r   )r�   r€   r   r
   r
   r   rT   Ù   s   zOption.namec                 C   s   d| j | j| j| jf S )NzOption(%r, %r, %r, %r)r   r   r
   r
   r   rX   Ý   s   
ÿzOption.__repr__r‚   )
r   r   r   r   r}   r|   r]   rP   rT   rX   r
   r
   r
   r   r8   º   s    


r8   c                   @   ó   e Zd Zddd„ZdS )rC   Nc                 C   sR   |d u rg n|}|}|}| j D ]}| ||¡\}}}|s#d||f  S qd||fS )NFT©r"   rc   )r   r`   ra   Úlr+   rs   r�   r
   r
   r   rc   ä   s   
ÿ
zRequired.matchr   ©r   r   r   rc   r
   r
   r
   r   rC   â   ó    rC   c                   @   r‘   )rD   Nc                 C   s8   |d u rg n|}| j D ]}| ||¡\}}}qd||fS )NTr’   )r   r`   ra   rs   Úmr
   r
   r   rc   ñ   s   

zOptional.matchr   r”   r
   r
   r
   r   rD   ï   r•   rD   c                   @   r   )rE   z*Marker/placeholder for [options] shortcut.Nr   r
   r
   r
   r   rE   ø   r   rE   c                   @   r‘   )rF   Nc                 C   s�   t | jƒdks	J ‚|d u rg n|}|}|}d }d}d}|r:| jd  ||¡\}}}||r.dnd7 }||kr6n|}|s|dkrCd||fS d||fS )Nr1   Tr   F)Úlenr"   rc   )r   r`   ra   r“   r+   Úl_r�   Útimesr
   r
   r   rc   ÿ   s"   ú

zOneOrMore.matchr   r”   r
   r
   r
   r   rF   ý   r•   rF   c                   @   r‘   )rA   Nc                 C   sb   |d u rg n|}g }| j D ]}| ||¡ \}}}}|r!| |¡ q|r,t|dd„ d�S d||fS )Nc                 S   s   t | d ƒS )Nr1   ©r—   )Úoutcomer
   r
   r   Ú<lambda>  s    zEither.match.<locals>.<lambda>)ÚkeyF)r"   rc   rI   Úmin)r   r`   ra   Úoutcomesrs   r�   r�   r›   r
   r
   r   rc     s   

€
zEither.matchr   r”   r
   r
   r
   r   rA     r•   rA   c                   @   rg   )ÚTokenStreamc                 C   s$   | t |dƒr
| ¡ n|7 } || _d S )Nr;   )r#   r;   Úerror)r   r{   r¡   r
   r
   r   r   #  s   
zTokenStream.__init__c                 C   s   t | ƒr	|  d¡S d S ©Nr   )r—   rH   r   r
   r
   r   Úmove'  rY   zTokenStream.movec                 C   s   t | ƒr| d S d S r¢   rš   r   r
   r
   r   Úcurrent*  s   zTokenStream.currentN)r   r   r   r   r£   r¤   r
   r
   r
   r   r    !  s    r    c                    s–  |   ¡  d¡\‰ }}ˆ  d¡sJ ‚||  krdkrn ndn|}‡ fdd„|D ƒ}| jtu r<|g kr<‡ fdd„|D ƒ}t|ƒdkrS|  d	ˆ d
 dd„ |D ƒ¡f ¡‚t|ƒdk r|dkr_dnd}tdˆ |ƒ}| |¡ | jtu r|tdˆ ||ry|ndƒ}|gS t|d j	|d j
|d j|d jƒ}|jdkr¤|dur£|  d|j
 ¡‚n|du rº|  ¡ du r¶|  d|j
 ¡‚|   ¡ }| jtu rÈ|durÅ|nd|_|gS )z-long ::= '--' chars [ ( ' ' | '=' ) chars ] ;r…   r†   r   Nc                    ó   g | ]	}|j ˆ kr|‘qS r
   ©r�   ©r.   Úor¦   r
   r   r/   3  ó    zparse_long.<locals>.<listcomp>c                    s"   g | ]}|j r|j  ˆ ¡r|‘qS r
   )r�   rŠ   r§   r¦   r
   r   r/   5  s   " r1   z%s is not a unique prefix: %s?ri   c                 s   s   � | ]}|j V  qd S r   r¦   r§   r
   r
   r   rj   8  s   € zparse_long.<locals>.<genexpr>r   Tz%s must not have an argumentú%s requires argument)r£   rˆ   rŠ   r¡   r   r—   rl   r8   rI   r€   r�   r9   r:   r¤   )ÚtokensrŒ   Úeqr:   Úsimilarr9   r¨   r
   r¦   r   Ú
parse_long.  s>    ÿ

ôÿ
ÿ
r®   c                    sT  |   ¡ }| d¡r| d¡rJ ‚| d¡}g }|dkr¨d|d  |dd… ‰ }‡ fdd„|D ƒ}t|ƒdkrB|  d	ˆ t|ƒf ¡‚t|ƒdk r`tˆ ddƒ}| |¡ | jtu r_tˆ ddd
ƒ}n?tˆ |d j|d j	|d j
ƒ}d}|j	dkr‘|dkr�|  ¡ du rˆ|  dˆ  ¡‚|   ¡ }n|}d}| jtu rŸ|durœ|nd
|_
| |¡ |dks|S )z-shorts ::= '-' ( chars )* [ [ ' ' ] chars ] ;r‡   r†   r   r   r1   Nc                    r¥   r
   ©r€   r§   r¯   r
   r   r/   W  r©   z parse_shorts.<locals>.<listcomp>z$%s is specified ambiguously %d timesTrª   )r£   rŠ   Úlstripr—   r¡   r8   rI   r   r�   r9   r:   r¤   )r«   rŒ   Útokenr`   Úparsedr­   r¨   r:   r
   r¯   r   Úparse_shortsO  sB   

ÿ

€ÿ



çr³   c                 C   sF   t t dd| ¡tƒ}t||ƒ}| ¡ d ur| dd |¡ ¡‚t|Ž S )Nz([\[\]\(\)\|]|\.\.\.)z \1 zunexpected ending: %rr„   )	r    rw   Úsubr   Ú
parse_exprr¤   r¡   rl   rC   )r{   rŒ   r«   Úresultr
   r
   r   Úparse_patternr  s   ÿ
r·   c                 C   s–   t | |ƒ}|  ¡ dkr|S t|ƒdkrt|Ž gn|}|  ¡ dkr>|  ¡  t | |ƒ}|t|ƒdkr5t|Ž gn|7 }|  ¡ dks t|ƒdkrIt|Ž gS |S )zexpr ::= seq ( '|' seq )* ;ú|r1   )Ú	parse_seqr¤   r—   rC   r£   rA   )r«   rŒ   Úseqr¶   r
   r
   r   rµ   {  s   

ýrµ   c                 C   sP   g }|   ¡ dvr&t| |ƒ}|   ¡ dkrt|Ž g}|  ¡  ||7 }|   ¡ dvs|S )zseq ::= ( atom [ '...' ] )* ;)Nú]ú)r¸   z...)r¤   Ú
parse_atomrF   r£   )r«   rŒ   r¶   Úatomr
   r
   r   r¹   ˆ  s   

ûr¹   c                 C   sì   |   ¡ }g }|dv r2|  ¡  dtgdtgdœ| \}}|t| |ƒŽ }|  ¡ |kr/|  d| ¡‚|gS |dkr>|  ¡  tƒ gS | d¡rL|dkrLt| |ƒS | d¡rZ|d	vrZt	| |ƒS | d
¡rd| 
d¡sh| ¡ rot|  ¡ ƒgS t|  ¡ ƒgS )ziatom ::= '(' expr ')' | '[' expr ']' | 'options'
             | long | shorts | argument | command ;
    z([r¼   r»   )ú(ú[zunmatched '%s'rŒ   r†   r‡   )r‡   r†   ú<ú>)r¤   r£   rC   rD   rµ   r¡   rE   rŠ   r®   r³   ÚendswithÚisupperr7   r<   )r«   rŒ   r±   r¶   ÚmatchingÚpatternr
   r
   r   r½   ”  s&   

r½   Fc                 C   s°   g }|   ¡ durV|   ¡ dkr|dd„ | D ƒ S |   ¡  d¡r&|t| |ƒ7 }n*|   ¡  d¡r;|   ¡ dkr;|t| |ƒ7 }n|rF|dd„ | D ƒ S | td|  ¡ ƒ¡ |   ¡ dus|S )zÝParse command-line argument vector.

    If options_first:
        argv ::= [ long | shorts ]* [ argument ]* [ '--' [ argument ]* ] ;
    else:
        argv ::= [ long | shorts | argument ]* [ '--' [ argument ]* ] ;

    Nr†   c                 S   ó   g | ]}t d |ƒ‘qS r   ©r7   ©r.   Úvr
   r
   r   r/   º  r0   zparse_argv.<locals>.<listcomp>r‡   c                 S   rÇ   r   rÈ   rÉ   r
   r
   r   r/   À  r0   )r¤   rŠ   r®   r³   rI   r7   r£   )r«   rŒ   Úoptions_firstr²   r
   r
   r   Ú
parse_argv®  s   	örÌ   c                 C   sN   t  d| ¡dd … }dd„ t|d d d… |dd d… ƒD ƒ}dd„ |D ƒ}|S )Nz
 *(<\S+?>|-\S+?)r1   c                 S   s   g | ]\}}|| ‘qS r
   r
   )r.   Ús1Ús2r
   r
   r   r/   É  s    z"parse_defaults.<locals>.<listcomp>rG   c                 S   s    g | ]}|  d ¡rt |¡‘qS )r‡   )rŠ   r8   r|   ©r.   r�   r
   r
   r   r/   Ê  s     )rw   r;   Úzip)Údocr;   rŒ   r
   r
   r   Úparse_defaultsÆ  s   (rÒ   c                 C   sV   t  d| ¡}t|ƒdk rtdƒ‚t|ƒdkrtdƒ‚t  dd |dd … ¡¡d  ¡ S )	Nz([Uu][Ss][Aa][Gg][Ee]:)é   z&"usage:" (case-insensitive) not found.z*More than one "usage:" (case-insensitive).z\n\s*\nr   r1   r   )rw   r;   r—   r   rl   r   )rÑ   Úusage_splitr
   r
   r   Úprintable_usageÐ  s   "rÕ   c                    s8   |   ¡ dd … ‰ dd ‡ fdd„ˆ dd … D ƒ¡ d S )Nr1   z( r„   c                 3   s$   � | ]}|ˆ d  krdn|V  qdS )r   z) | (Nr
   rÏ   ©Úpur
   r   rj   Ü  s   €" zformal_usage.<locals>.<genexpr>z ))r;   rl   )rÕ   r
   rÖ   r   Úformal_usageÚ  s   (rØ   c                 C   s^   | rt dd„ |D ƒƒrt| d¡ƒ t ¡  |r+t dd„ |D ƒƒr-t|ƒ t ¡  d S d S d S )Nc                 s   s    � | ]}|j d v o|jV  qdS ))z-hz--helpNrS   r§   r
   r
   r   rj   à  ó   € zextras.<locals>.<genexpr>r   c                 s   s    � | ]}|j d ko|jV  qdS )z	--versionNrS   r§   r
   r
   r   rj   ã  rÙ   )ÚanyÚprintr   ÚsysÚexit)ÚhelpÚversionrŒ   rÑ   r
   r
   r   Úextrasß  s   þrà   c                   @   s   e Zd Zdd„ ZdS )ÚDictc                 C   s    dd  dd„ t|  ¡ ƒD ƒ¡ S )Nz{%s}z,
 c                 s   s   � | ]}d | V  qdS )z%r: %rNr
   )r.   r*   r
   r
   r   rj   ê  rk   z Dict.__repr__.<locals>.<genexpr>)rl   ÚsortedÚitemsr   r
   r
   r   rX   é  s    zDict.__repr__N)r   r   r   rX   r
   r
   r
   r   rá   è  s    rá   Tc                 C   sÔ   |du rt jdd… }t| ƒt_t| ƒ}tttjƒ|ƒ}tt	|tƒt
|ƒ|ƒ}t| t¡ƒ}| t¡D ]}t| ƒ}	t
t|	ƒ| ƒ|_q3t|||| ƒ | ¡  |¡\}
}}|
rg|g krgtdd„ | ¡ | D ƒƒS tƒ ‚)aÍ  Parse `argv` based on command-line interface described in `doc`.

    `docopt` creates your command-line interface based on its
    description that you pass as `doc`. Such description can contain
    --options, <positional-argument>, commands, which could be
    [optional], (required), (mutually | exclusive) or repeated...

    Parameters
    ----------
    doc : str
        Description of your command-line interface.
    argv : list of str, optional
        Argument vector to be parsed. sys.argv[1:] is used if not
        provided.
    help : bool (default: True)
        Set to False to disable automatic help on -h or --help
        options.
    version : any object
        If passed, the object will be printed if --version is in
        `argv`.
    options_first : bool (default: False)
        Set to True to require options preceed positional arguments,
        i.e. to forbid options and positional arguments intermix.

    Returns
    -------
    args : dict
        A dictionary, where keys are names of command-line elements
        such as e.g. "--verbose" and "<path>", and values are the
        parsed values of those elements.

    Example
    -------
    >>> from docopt import docopt
    >>> doc = '''
    Usage:
        my_program tcp <host> <port> [--timeout=<seconds>]
        my_program serial <port> [--baud=<n>] [--timeout=<seconds>]
        my_program (-h | --help | --version)

    Options:
        -h, --help  Show this screen and exit.
        --baud=<n>  Baudrate [default: 9600]
    '''
    >>> argv = ['tcp', '127.0.0.1', '80', '--timeout', '30']
    >>> docopt(doc, argv)
    {'--baud': '9600',
     '--help': False,
     '--timeout': '30',
     '--version': False,
     '<host>': '127.0.0.1',
     '<port>': '80',
     'serial': False,
     'tcp': True}

    See also
    --------
    * For video introduction see http://docopt.org
    * Full documentation is available in README.rst as well as online
      at https://github.com/docopt/docopt#readme

    Nr1   c                 s   s   � | ]	}|j |jfV  qd S r   rS   r[   r
   r
   r   rj   B  s   € zdocopt.<locals>.<genexpr>)rÜ   ÚargvrÕ   r   r   rÒ   r·   rØ   rÌ   r    r$   r%   r&   r8   rE   r"   rà   r!   rc   rá   )rÑ   rä   rÞ   rß   rË   rŒ   rÆ   Úpattern_optionsÚaoÚdoc_optionsr�   r`   ra   r
   r
   r   r   í  s"   ?
ÿr~   )NTNF)%r	   rÜ   rw   Ú__all__Ú__version__Ú	Exceptionr   r   r   Úobjectr   rQ   rh   r7   r<   r8   rC   rD   rE   rF   rA   r$   r    r®   r³   r·   rµ   r¹   r½   rÌ   rÒ   rÕ   rØ   rà   Údictrá   r   r
   r
   r
   r   Ú<module>   s@    
K!(	!#	


	