ó
    EñiçE  ã            	      óö  • S r SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSK	J
r
  SSKJrJr  Sr\R                  " S	\ S
35      r\R                  " S\ S\ S35      r\R'                  SS5      r " S S5      rSS jr\R.                   V s0 s H  n \" U 5      S_M     sn rS rS r " S S5      r\S:X  a<  SrS H3  r\ " S\ 35        \ " SRC                  \" \\5      5      5        \ " 5         M5     ggs  sn f )a6  distutils.fancy_getopt

Wrapper around the standard getopt module that provides the following
additional features:
  * short and long options are tied together
  * options have help strings, so fancy_getopt could potentially
    create a complete usage summary
  * options set attributes of a passed-in object
é    )ÚannotationsN)ÚSequence)ÚAnyé   )ÚDistutilsArgErrorÚDistutilsGetoptErrorz[a-zA-Z](?:[a-zA-Z0-9-]*)Ú^Ú$z^(z)=!(z)$Ú-Ú_c                  ó„   • \ rS rSrSrSS jrS rS rSS jrS r	S	 r
S
 rS rS rS rSSS jjrS rSS jrSS jrSrg)ÚFancyGetopté%   a±  Wrapper around the standard 'getopt()' module that provides some
handy extra functionality:
  * short and long options are tied together
  * options have help strings, and help text can be assembled
    from them
  * options set attributes of a passed-in object
  * boolean options can have "negative aliases" -- eg. if
    --quiet is the "negative alias" of --verbose, then "--quiet"
    on the command line sets 'verbose' to false
Nc                óÐ   • Xl         0 U l        U R                   (       a  U R                  5         0 U l        0 U l        / U l        / U l        0 U l        0 U l        0 U l	        / U l
        g ©N)Úoption_tableÚoption_indexÚ_build_indexÚaliasÚnegative_aliasÚ
short_optsÚ	long_optsÚ
short2longÚ	attr_nameÚ	takes_argÚoption_order©Úselfr   s     Ú_/home/mande/repo/quber/.venv/lib/python3.13/site-packages/setuptools/_distutils/fancy_getopt.pyÚ__init__ÚFancyGetopt.__init__1   sk   € ð )Ôð ˆÔØ××Ø×ÑÔð ˆŒ
ð !ˆÔð ˆŒØˆŒØˆŒØˆŒØˆŒð
 ˆÕó    c                ó€   • U R                   R                  5         U R                   H  nXR                   US   '   M     g )Nr   )r   Úclearr   )r   Úoptions     r   r   ÚFancyGetopt._build_indexY   s6   € Ø×Ñ×ÑÔ!Ø×'Ô'ˆFØ+1×Ñ˜f Q™iÓ(ò (r"   c                ó0   • Xl         U R                  5         g r   )r   r   r   s     r   Úset_option_tableÚFancyGetopt.set_option_table^   s   € Ø(ÔØ×ÑÕr"   c                óš   • XR                   ;   a  [        SU S35      eXU4nU R                  R                  U5        X@R                   U'   g )Nz$option conflict: already an option 'Ú')r   r   r   Úappend)r   Úlong_optionÚshort_optionÚhelp_stringr%   s        r   Ú
add_optionÚFancyGetopt.add_optionb   sU   € Ø×+Ñ+Ó+Ü&Ø6°{°mÀ1ÐEóð ð "°Ð=ˆFØ×Ñ×$Ñ$ VÔ,Ø-3×Ñ˜kÒ*r"   c                ó   • XR                   ;   $ )z[Return true if the option table for this parser has an
option with long name 'long_option'.)r   ©r   r-   s     r   Ú
has_optionÚFancyGetopt.has_optionl   s   € ð ×/Ñ/Ñ/Ð/r"   c                ó,   • UR                  [        5      $ )z‚Translate long option name 'long_option' to the form it
has as an attribute of some object: ie., translate hyphens
to underscores.©Ú	translateÚlongopt_xlater3   s     r   Úget_attr_nameÚFancyGetopt.get_attr_nameq   s   € ð ×$Ñ$¤]Ó3Ð3r"   c           
     óô   • [        U[        5      (       d   eUR                  5        HM  u  p4X0R                  ;  a  [	        SU SU SU S35      eX@R                  ;  d  M:  [	        SU SU SU S35      e   g )Nzinvalid z 'z': option 'z' not definedú': aliased option ')Ú
isinstanceÚdictÚitemsr   r   )r   ÚaliasesÚwhatr   Úopts        r   Ú_check_alias_dictÚFancyGetopt._check_alias_dictw   sŒ   € Ü˜'¤4×(Ñ(Ð(Ð(Ø!Ÿ-™-ž/‰JˆEØ×-Ñ-Ó-Ü*Ø˜t˜f B u g¨[¸¸¸}ÐMóð ð ×+Ñ+Õ+Ü*Ø˜t˜f B u gÐ-@ÀÀÀ]ÐSóð ò *r"   c                ó4   • U R                  US5        Xl        g)z'Set the aliases for this option parser.r   N)rD   r   )r   r   s     r   Úset_aliasesÚFancyGetopt.set_aliasesƒ   s   € à×Ñ˜u gÔ.Ø�
r"   c                ó4   • U R                  US5        Xl        g)zÂSet the negative aliases for this option parser.
'negative_alias' should be a dictionary mapping option names to
option names, both the key and value must already be defined
in the option table.znegative aliasN)rD   r   )r   r   s     r   Úset_negative_aliasesÚ FancyGetopt.set_negative_aliasesˆ   s   € ð
 	×Ñ˜~Ð/?Ô@Ø,Õr"   c                óÖ  • / U l         / U l        U R                  R                  5         0 U l        U R
                   GH)  n[        U5      S:X  a  Uu  p#nSnO$[        U5      S:X  a  Uu  p#pEO[        SU< 35      e[        U[        5      (       a  [        U5      S:  a  [        SU S35      eUb3  [        U[        5      (       a  [        U5      S	:X  d  [        S
U S35      eXPR                  U'   U R                   R                  U5        US   S:X  a!  U(       a  US-   nUSS nSU R                  U'   OaU R                  R                  U5      nUb4  U R                  U   (       a  [        SU SU S35      eX R                   S'   SU R                  U'   U R                  R                  U5      nUb2  U R                  U   U R                  U   :w  a  [        SU SU S35      e[         R#                  U5      (       d  [        SU S35      eU R%                  U5      U R&                  U'   U(       d  GMý  U R                  R                  U5        X R                  US   '   GM,     g)z…Populate the various data structures that keep tabs on the
option table.  Called by 'getopt()' before it can do anything
worthwhile.
é   r   é   zinvalid option tuple: é   zinvalid long option 'z"': must be a string of length >= 2Nr   zinvalid short option 'z"': must a single character or NoneéÿÿÿÿÚ=Ú:Tzinvalid negative alias 'r=   z' takes a valueFzinvalid alias 'z%': inconsistent with aliased option 'z/' (one of them takes a value, the other doesn'tzinvalid long option name 'z)' (must be letters, numbers, hyphens only)r   r   r   r$   Úrepeatr   ÚlenÚ
ValueErrorr>   Ústrr   r,   r   r   Úgetr   Ú
longopt_reÚmatchr:   r   )r   r%   ÚlongÚshortÚhelprS   Úalias_tos          r   Ú_grok_option_tableÚFancyGetopt._grok_option_table�   sx  € ð
 ˆŒØˆŒØ�‰×ÑÔØˆŒà×'Õ'ˆFÜ�6‹{˜aÓØ$*Ñ!�˜TØ‘Ü�V“ Ó!Ø,2Ñ)�˜T 6ô !Ð#9¸&¹Ð!DÓEÐEô ˜d¤C×(Ñ(¬C°«I¸«MÜ*Ø+¨D¨6Ð1SÐTóð ð ‘]¬
°5¼#×(>Ñ(>Ä3ÀuÃ:ÐQRÃ?Ü*Ø,¨U¨GÐ3UÐVóð ð !'�K‰K˜ÑØ�N‰N×!Ñ! $Ô'à�B‰x˜3‹ÞØ! C™K�EØ˜A˜b�z�Ø'+�—‘˜tÒ$ð  ×.Ñ.×2Ñ2°4Ó8�ØÑ'Ø—~‘~ h×/Ü2Ø6°t°fð =/Ø/7¨j¸ðIóð ð
 *.—N‘N 2Ñ&Ø',�—‘˜tÑ$ð —z‘z—~‘~ dÓ+ˆHØÑ#Ø—>‘> $Ñ'¨4¯>©>¸(Ñ+CÓCÜ.Ø)¨$¨ð 0+Ø+3¨*ð 5,ð,óð ô ×#Ñ# D×)Ñ)Ü*Ø0°°ð 7>ð >óð ð
 $(×#5Ñ#5°dÓ#;ˆD�N‰N˜4Ñ ß‰uØ—‘×&Ñ& uÔ-Ø,0—‘  a¡Ô)òI (r"   c                ó²  • Uc  [         R                  SS nUc  [        5       nSnOSnU R                  5         SR	                  U R
                  5      n [        R                  " XU R                  5      u  pQU GH'  u  px[        U5      S:X  a  US   S:X  a  U R                  US      nO[        U5      S:”  a	  USS S	:X  d   eUSS nU R                  R                  U5      n	U	(       a  U	nU R                  U   (       d6  US
:X  d   S5       eU R                  R                  U5      n	U	(       a  U	nSnOSnU R                   U   n
U(       a+  U R"                  R                  U
5      b  [%        X*S5      S-   n['        X*U5        U R(                  R+                  Xx45        GM*     U(       a  X4$ U$ ! [        R                   a  n[        U5      eSnAff = f)aÇ  Parse command-line options in args. Store as attributes on object.

If 'args' is None or not supplied, uses 'sys.argv[1:]'.  If
'object' is None or not supplied, creates a new OptionDummy
object, stores option values there, and returns a tuple (args,
object).  If 'object' is supplied, it is modified in place and
'getopt()' just returns 'args'; in both cases, the returned
'args' is a modified copy of the passed-in 'args' list, which
is left untouched.
Nr   TFÚ rO   r   r   z--Ú zboolean option can't have value)ÚsysÚargvÚOptionDummyr^   Újoinr   Úgetoptr   Úerrorr   rT   r   r   rW   r   r   r   rS   ÚgetattrÚsetattrr   r,   )r   ÚargsÚobjectÚcreated_objectr   ÚoptsÚmsgrC   Úvalr   Úattrs              r   rg   ÚFancyGetopt.getoptà   s®  € ð ‰<Ü—8‘8˜A˜B�<ˆDØ‰>Ü “]ˆFØ!‰Nà"ˆNà×ÑÔ!à—X‘X˜dŸo™oÓ.ˆ
ð	)ÜŸš t¸¿¹ÓH‰JˆDô ‰HˆCÜ�3‹x˜1‹}  Q¡¨3£Ø—o‘o c¨!¡fÑ-‘ä˜3“x !“|¨¨B¨Q¨°4«Ð7Ð7Ø˜!˜"�g�à—J‘J—N‘N 3Ó'ˆEÞØ�à—>‘> #×&Ø˜b“yÐCÐ"CÓC�yØ×+Ñ+×/Ñ/°Ó4�ÞØ�CØ‘Cà�Cà—>‘> #Ñ&ˆDö �t—{‘{—‘ tÓ,Ñ8Ü˜f¨AÓ.°Ñ2�Ü�F #Ô&Ø×Ñ×$Ñ$ c Z×0ñ5 ö: Ø�<ÐàˆKøôG �|‰|ó 	)Ü# CÓ(Ð(ûð	)ús   Á#F2 Æ2GÇGÇGc                óJ   • U R                   c  [        S5      eU R                   $ )z“Returns the list of (option, value) tuples processed by the
previous run of 'getopt()'.  Raises RuntimeError if
'getopt()' hasn't been called yet.
z!'getopt()' hasn't been called yet)r   ÚRuntimeError)r   s    r   Úget_option_orderÚFancyGetopt.get_option_order  s(   € ð
 ×ÑÑ$ÜÐBÓCÐCà×$Ñ$Ð$r"   c                ó–  • SnU R                    H7  nUS   nUS   n[        U5      nUS   S:X  a  US-
  nUb  US-   nXb:”  d  M5  UnM9     US-   S-   S-   nSnX‡-
  n	S	U-  n
U(       a  U/nOS
/nU R                    HË  nUSS u  pEn[        XÉ5      nUS   S:X  a  USS nUc?  U(       a  UR                  SUSU 3 SUS    35        O_UR                  SUSU 3 35        OFU SU S3nU(       a  UR                  SUSU 3 SUS    35        OUR                  SUSU 3 35        USS  H  nUR                  X¦-   5        M     MÍ     U$ )z|Generate help text (a list of strings, one per suggested line of
output) from the option table for this FancyGetopt object.
r   r   rP   rQ   Né   rO   éN   ra   zOption summary:rM   z  --Ú<z  z (-Ú))r   rT   Ú	wrap_textr,   )r   ÚheaderÚmax_optr%   rZ   r[   ÚellÚ	opt_widthÚ
line_widthÚ
text_widthÚ
big_indentÚlinesr\   ÚtextÚ	opt_namess                  r   Úgenerate_helpÚFancyGetopt.generate_help'  sª  € ð ˆØ×'Ô'ˆFØ˜!‘9ˆDØ˜1‘IˆEÜ�d“)ˆCØ�B‰x˜3‹Ø˜A‘g�ØÑ Ø˜A‘g�Ø�}Ø’ñ (ð ˜a‘K !‘O aÑ'ˆ	ð0 ˆ
ØÑ+ˆ
Ø˜9‘_ˆ
ÞØ�H‰Eà&Ð'ˆEà×'Ô'ˆFØ & r¨ 
ÑˆD˜Ü˜TÓ.ˆDØ�B‰x˜3‹Ø˜A˜b�z�ð ‰}ÞØ—L‘L 4¨¨Q¨w¨i¨KÐ'8¸¸4À¹7¸)Ð!DÕEà—L‘L 4¨¨Q¨w¨i¨KÐ'8Ð!9Õ:ð
  $˜f C¨ w¨aÐ0�	ÞØ—L‘L 4¨	°!°G°9°Ð'=¸RÀÀQÁ¸yÐ!IÕJà—L‘L 4¨	°!°G°9°Ð'=Ð!>Ô?à˜A˜B“x�Ø—‘˜ZÑ-Ö.ó  ñ- (ð0 ˆr"   c                ó‚   • Uc  [         R                  nU R                  U5       H  nUR                  US-   5        M     g )NÚ
)rc   Ústdoutr‡   Úwrite)r   r}   ÚfileÚlines       r   Ú
print_helpÚFancyGetopt.print_helpu  s5   € Ø‰<Ü—:‘:ˆDØ×&Ñ& vÖ.ˆDØ�J‰J�t˜d‘{Ö#ò /r"   )r   r   r   r   r   r   r   rS   r   r   r   r   )NN©rk   zSequence[str] | None)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    r   r(   r0   r4   r:   rD   rG   rJ   r^   rg   ru   r‡   r�   Ú__static_attributes__© r"   r   r   r   %   sS   † ñ	ô&òP2ò
ô4ò0ò
4ò
òò
-òN1ö`;òz%ôL÷\$r"   r   c                ó\   • [        U 5      nUR                  U5        UR                  X25      $ r   )r   rJ   rg   )ÚoptionsÚnegative_optrl   rk   Úparsers        r   Úfancy_getoptr�   |  s)   € Ü˜Ó!€FØ
×Ñ Ô-Ø�=‰=˜Ó&Ð&r"   ra   c                ó„  • U c  / $ [        U 5      U::  a  U /$ U R                  5       n U R                  [        5      n [        R
                  " SU 5      nU Vs/ s H  o3(       d  M  UPM     nn/ nU(       aÄ  / nSnU(       aR  [        US   5      nXg-   U::  a  UR                  US   5        US	 Xg-   nOU(       a  US   S   S:X  a  US	 O	U(       a  MR  U(       a7  US:X  a"  UR                  US   SU 5        US   US US'   US   S   S:X  a  US	 UR                  SR                  U5      5        U(       a  MÄ  U$ s  snf )zªwrap_text(text : string, width : int) -> [string]

Split 'text' into multiple lines of no more than 'width' characters
each, and return the list of strings that results.
Nz( +|-+)r   rP   ra   rb   )rT   Ú
expandtabsr8   ÚWS_TRANSÚreÚsplitr,   rf   )r…   ÚwidthÚchunksÚchr„   Úcur_lineÚcur_lenr   s           r   r|   r|   …  sO  € ð �|Øˆ	Ü
ˆ4ƒy�EÓØˆvˆà�?‰?Ó€DØ�>‰>œ(Ó#€DÜ�XŠX�j $Ó'€FÙ!Ó(š6�R£R�b™6€FÐ(Ø€Eæ
ØˆØˆæÜ�f˜Q‘i“.ˆCØ‰} Ó%Ø—‘  q¡	Ô*Ø˜1�IØ!™-‘ö  ¨¡¨Q¡°3Ó 6Ø  ˜Ø÷ ˆfö ð ˜!‹|Ø—‘  q¡	¨!¨EÐ 2Ô3Ø" 1™I e fÐ-��q‘	ð
 �a‰y˜‰|˜sÓ"Ø˜1�Ið 	�‰�R—W‘W˜XÓ&Ô'÷A ˆ&ðD €LùòK )s   Á
D=Á&D=c                ó,   • U R                  [        5      $ )zPConvert a long option name to a valid Python identifier by
changing "-" to "_".
r7   )rC   s    r   Útranslate_longoptr©   »  s   € ð �=‰=œÓ'Ð'r"   c                  ó(   • \ rS rSrSr/ 4SS jjrSrg)re   iÂ  z[Dummy class just used as a place to hold command-line option
values as instance attributes.c                ó.   • U H  n[        XS5        M     g)zcCreate a new OptionDummy instance.  The attributes listed in
'options' will be initialized to None.N)rj   )r   rš   rC   s      r   r    ÚOptionDummy.__init__Æ  s   € ó ˆCÜ�D˜tÖ$ò r"   r˜   N)rš   zSequence[Any])r’   r“   r”   r•   r–   r    r—   r˜   r"   r   re   re   Â  s   † ñ&ð 13÷ %ñ %r"   re   Ú__main__z¢Tra-la-la, supercalifragilisticexpialidocious.
How *do* you spell that odd word, anyways?
(Someone ask Mary -- she'll know [or she'll
say, "How should I know?"].))é
   é   é   é(   zwidth: rŠ   r‘   )"r–   Ú
__future__r   rg   r¡   Ústringrc   Úcollections.abcr   Útypingr   Úerrorsr   r   Úlongopt_patÚcompilerX   Úneg_alias_rerV   Ú	maketransr9   r   r�   Ú
whitespaceÚordr    r|   r©   re   r’   r…   ÚwÚprintrf   )Ú_wschars   0r   Ú<module>rÀ      s  ðñõ #ã Û 	Û Û 
Ý $Ý ç ;ð +€Ø�ZŠZ˜1˜[˜M¨Ð+Ó,€
ð �zŠz˜B˜{˜m¨4°¨}¸BÐ?Ó@€ð —‘˜c 3Ó'€÷T$ñ T$ôn
'ð .4×->Ò->Ó?Ò-> '‰C�‹L˜#ÒÑ->Ñ?€ò3òl(÷%ñ %ð ˆzÓð €Dó ˆÙ�˜�sˆmÔÙˆd�i‰i™	 $¨Ó*Ó+Ô,ÙŽò ð ùòW @s   ÂC6