§
    WŠtjôE  ã            	      óì  — d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZmZ dZ ej        d	e› d
�¦  «        Z ej        de› de› d�¦  «        Ze                     dd¦  «        Z G d„ d¦  «        Zdd„Zd„ ej        D ¦   «         Zd„ Zd„ Z G d„ d¦  «        Zedk    rGdZdD ]DZ ede› �¦  «          ed                       eee¦  «        ¦  «        ¦  «          e¦   «          ŒCdS dS ) 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                  ót   — e Zd ZdZdd„Zd„ Zd„ Zdd„Zdd„Zd„ Z	d„ Z
d„ Zd„ Zd„ Zddd„Zd„ Zdd„Zdd„ZdS )ÚFancyGetoptaÕ  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                óÈ   — || _         i | _        | j         r|                      ¦   «          i | _        i | _        g | _        g | _        i | _        i | _        i | _	        g | _
        d S ©N)Úoption_tableÚoption_indexÚ_build_indexÚaliasÚnegative_aliasÚ
short_optsÚ	long_optsÚ
short2longÚ	attr_nameÚ	takes_argÚoption_order©Úselfr   s     ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/_distutils/fancy_getopt.pyÚ__init__zFancyGetopt.__init__1   s{   € ð )ˆÔð ˆÔØÔð 	 Ø×ÒÑÔÐð ˆŒ
ð !ˆÔð ˆŒØˆŒØˆŒØˆŒØˆŒð
 ˆÔÐÐó    c                ól   — | j                              ¦   «          | j        D ]}|| j         |d         <   Œd S )Nr   )r   Úclearr   )r   Úoptions     r   r   zFancyGetopt._build_indexY   sG   € ØÔ×ÒÑ!Ô!Ð!ØÔ'ð 	2ð 	2ˆFØ+1ˆDÔ˜f QœiÑ(Ð(ð	2ð 	2r    c                ó<   — || _         |                      ¦   «          d S r   )r   r   r   s     r   Úset_option_tablezFancyGetopt.set_option_table^   s"   € Ø(ˆÔØ×ÒÑÔÐÐÐr    c                ó�   — || j         v rt          d|› d�¦  «        ‚|||f}| j                             |¦  «         || j         |<   d S )Nz$option conflict: already an option 'ú')r   r   r   Úappend)r   Úlong_optionÚshort_optionÚhelp_stringr#   s        r   Ú
add_optionzFancyGetopt.add_optionb   sh   € Ø˜$Ô+Ð+Ð+Ý&ØE°{ÐEÐEÐEñô ð ð " <°Ð=ˆFØÔ×$Ò$ VÑ,Ô,Ð,Ø-3ˆDÔ˜kÑ*Ð*Ð*r    r)   ÚstrÚreturnÚboolc                ó   — || j         v S )zcReturn true if the option table for this parser has an
        option with long name 'long_option'.)r   ©r   r)   s     r   Ú
has_optionzFancyGetopt.has_optionl   s   € ð ˜dÔ/Ð/Ð/r    c                ó6   — |                      t          ¦  «        S )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_xlater1   s     r   Úget_attr_namezFancyGetopt.get_attr_nameq   s   € ð ×$Ò$¥]Ñ3Ô3Ð3r    c           
     óð   — t          |t          ¦  «        sJ ‚|                     ¦   «         D ]I\  }}|| j        vrt	          d|› d|› d|› d�¦  «        ‚|| j        vrt	          d|› d|› d|› d�¦  «        ‚ŒJd S )Nzinvalid z 'z': option 'z' not definedú': aliased option ')Ú
isinstanceÚdictÚitemsr   r   )r   ÚaliasesÚwhatr   Úopts        r   Ú_check_alias_dictzFancyGetopt._check_alias_dictw   sÀ   € Ý˜'¥4Ñ(Ô(Ð(Ð(Ð(Ø!Ÿ-š-™/œ/ð 	ð 	‰JˆE�3Ø˜DÔ-Ð-Ð-Ý*ØM˜tÐMÐM uÐMÐM¸ÐMÐMÐMñô ð ð ˜$Ô+Ð+Ð+Ý*ØS˜tÐSÐS uÐSÐSÀÐSÐSÐSñô ð ð ,ð	ð 	r    c                ó@   — |                       |d¦  «         || _        dS )z'Set the aliases for this option parser.r   N)r@   r   )r   r   s     r   Úset_aliaseszFancyGetopt.set_aliasesƒ   s#   € à×Ò˜u gÑ.Ô.Ð.ØˆŒ
ˆ
ˆ
r    c                ó@   — |                       |d¦  «         || _        dS )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)r@   r   )r   r   s     r   Úset_negative_aliasesz FancyGetopt.set_negative_aliasesˆ   s)   € ð
 	×Ò˜~Ð/?Ñ@Ô@Ð@Ø,ˆÔÐÐr    c                óÂ  — g | _         g | _        | j                             ¦   «          i | _        | j        D �]'}t          |¦  «        dk    r	|\  }}}d}n-t          |¦  «        dk    r|\  }}}}nt          d|›�¦  «        ‚t          |t          ¦  «        rt          |¦  «        dk     rt          d|› d�¦  «        ‚|�;t          |t          ¦  «        rt          |¦  «        d	k    st          d
|› d�¦  «        ‚|| j        |<   | j                              |¦  «         |d         dk    r|r|dz   }|dd…         }d| j        |<   nS| j                             |¦  «        }|�-| j        |         rt          d|› d|› d�¦  «        ‚|| j         d<   d| j        |<   | j                             |¦  «        }|�2| j        |         | j        |         k    rt          d|› d|› d�¦  «        ‚t                                |¦  «        st          d|› d�¦  «        ‚|                      |¦  «        | j        |<   |r*| j                             |¦  «         || j        |d         <   �Œ)dS )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 'r9   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:   r-   r   r(   r   r   Úgetr   Ú
longopt_reÚmatchr7   r   )r   r#   ÚlongÚshortÚhelprL   Úalias_tos          r   Ú_grok_option_tablezFancyGetopt._grok_option_table�   s  € ð
 ˆŒØˆŒØŒ×ÒÑÔÐØˆŒàÔ'ð D	1ñ D	1ˆFÝ�6‰{Œ{˜aÒÐØ$*Ñ!��e˜TØ��Ý�V‘” Ò!Ð!Ø,2Ñ)��e˜T 6 6õ !Ð!D¸&Ð!DÐ!DÑEÔEÐEõ ˜d¥CÑ(Ô(ð ­C°©I¬I¸ªM¨MÝ*ØT¨DÐTÐTÐTñô ð ð �]­
°5½#Ñ(>Ô(>�]Å3ÀuÁ:Ä:ÐQRÂ?À?Ý*ØV¨UÐVÐVÐVñô ð ð !'ˆDŒK˜ÑØŒN×!Ò! $Ñ'Ô'Ð'à�BŒx˜3ŠˆØð (Ø! C™K�EØ˜A˜b˜D”z�Ø'+�”˜tÑ$Ð$ð  Ô.×2Ò2°4Ñ8Ô8�ØÐ'Ø”~ hÔ/ð Ý2ðI°tð Ið IØ/7ðIð Ið Iñô ð ð
 *.�D”N 2Ñ&Ø',�”˜tÑ$ð ”z—~’~ dÑ+Ô+ˆHØÐ#Ø”> $Ô'¨4¬>¸(Ô+CÒCÐCÝ.ð,¨$ð ,ð ,Ø+3ð,ð ,ð ,ñô ð õ ×#Ò# DÑ)Ô)ð Ý*ð>°ð >ð >ð >ñô ð ð
 $(×#5Ò#5°dÑ#;Ô#;ˆDŒN˜4Ñ Øð 1Ø”×&Ò& uÑ-Ô-Ð-Ø,0�”  a¤Ñ)ùðID	1ð D	1r    ÚargsúSequence[str] | Nonec                ó´  — |€t           j        dd…         }|€t          ¦   «         }d}nd}|                      ¦   «          d                     | j        ¦  «        }	 t          j        ||| j        ¦  «        \  }}n&# t          j        $ r}t          |¦  «        ‚d}~ww xY w|D �].\  }}t          |¦  «        dk    r |d         dk    r| j        |d                  }n-t          |¦  «        dk    r|dd…         d	k    sJ ‚|dd…         }| j                             |¦  «        }	|	r|	}| j        |         s3|d
k    s
J d¦   «         ‚| j                             |¦  «        }	|	r|	}d}nd}| j        |         }
|r.| j                             |
¦  «        �t%          ||
d¦  «        dz   }t'          ||
|¦  «         | j                             ||f¦  «         �Œ0|r||fS |S )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ú rH   r   r   z--Ú zboolean option can't have value)ÚsysÚargvÚOptionDummyrV   Újoinr   Úgetoptr   Úerrorr   rM   r   r   rO   r   r   r   rL   ÚgetattrÚsetattrr   r(   )r   rW   ÚobjectÚcreated_objectr   ÚoptsÚmsgr?   Úvalr   Úattrs              r   r`   zFancyGetopt.getoptà   s  € ð ˆ<Ý”8˜A˜B˜B”<ˆDØˆ>Ý ‘]”]ˆFØ!ˆNˆNà"ˆNà×ÒÑ!Ô!Ð!à—X’X˜dœoÑ.Ô.ˆ
ð	)Ýœ t¨Z¸¼ÑHÔH‰JˆD�$�$øÝŒ|ð 	)ð 	)ð 	)Ý# CÑ(Ô(Ð(øøøøð	)øøøð ð 	1ñ 	1‰HˆC�Ý�3‰xŒx˜1Š}ˆ}  Q¤¨3¢ Ø”o c¨!¤fÔ-��å˜3‘x”x !’|�|¨¨B¨Q¨B¬°4ª¨¨Ð7Ø˜!˜"˜"”g�à”J—N’N 3Ñ'Ô'ˆEØð Ø�à”> #Ô&ð Ø˜b’y�y�yÐ"C‘y”y�yØÔ+×/Ò/°Ñ4Ô4�Øð Ø�CØ�C�Cà�Cà”> #Ô&ˆDð ð 3�t”{—’ tÑ,Ô,Ð8Ý˜f d¨AÑ.Ô.°Ñ2�Ý�F˜D #Ñ&Ô&Ð&ØÔ×$Ò$ c¨3 ZÑ0Ô0Ð0Ñ0ð ð 	Ø˜�<ÐàˆKs   ÁA: Á:BÂ	BÂBc                ó<   — | j         €t          d¦  «        ‚| j         S )z«Returns the list of (option, value) tuples processed by the
        previous run of 'getopt()'.  Raises RuntimeError if
        'getopt()' hasn't been called yet.
        Nz!'getopt()' hasn't been called yet)r   ÚRuntimeError)r   s    r   Úget_option_orderzFancyGetopt.get_option_order  s%   € ð
 ÔÐ$ÝÐBÑCÔCÐCàÔ$Ð$r    c                óÈ  — d}| j         D ]A}|d         }|d         }t          |¦  «        }|d         dk    r|dz
  }|�|dz   }||k    r|}ŒB|dz   dz   dz   }d}||z
  }	d	|z  }
|r|g}nd
g}| j         D ]î}|dd…         \  }}}t          ||	¦  «        }|d         dk    r
|dd…         }|€E|r&|                     d|d|› �›d|d         › �¦  «         ni|                     d|d|› �›�¦  «         nL|› d|› d�}|r&|                     d|d|› �›d|d         › �¦  «         n|                     d|d|› �›�¦  «         |dd…         D ]}|                     |
|z   ¦  «         ŒŒï|S )zŒGenerate help text (a list of strings, one per suggested line of
        output) from the option table for this FancyGetopt object.
        r   r   rI   rJ   Né   rH   éN   rZ   zOption summary:rF   z  --ú<z  z (-ú))r   rM   Ú	wrap_textr(   )r   ÚheaderÚmax_optr#   rR   rS   ÚellÚ	opt_widthÚ
line_widthÚ
text_widthÚ
big_indentÚlinesrT   ÚtextÚ	opt_namess                  r   Úgenerate_helpzFancyGetopt.generate_help'  s$  € ð ˆØÔ'ð 		ð 		ˆFØ˜!”9ˆDØ˜1”IˆEÝ�d‘)”)ˆCØ�BŒx˜3ŠˆØ˜A‘g�ØÐ Ø˜A‘g�Ø�WŠ}ˆ}Ø�øà˜a‘K !‘O aÑ'ˆ	ð0 ˆ
Ø )Ñ+ˆ
Ø˜9‘_ˆ
Øð 	(Ø�HˆEˆEà&Ð'ˆEàÔ'ð 	/ð 	/ˆFØ & r¨ r¤
ÑˆD�%˜Ý˜T :Ñ.Ô.ˆDØ�BŒx˜3ŠˆØ˜A˜b˜D”z�ð ˆ}Øð ;Ø—L’LÐ!D¨Ð!D¨wÐ!DÐ!DÐ!DÐ!D¸4À¼7Ð!DÐ!DÑEÔEÐEÐEà—L’LÐ!9¨Ð!9¨wÐ!9Ð!9Ð!9Ð!9Ñ:Ô:Ð:Ð:ð
  $Ð0Ð0¨Ð0Ð0Ð0�	Øð @Ø—L’LÐ!I¨	Ð!I°GÐ!IÐ!IÐ!IÐ!IÀÀQÄÐ!IÐ!IÑJÔJÐJÐJà—L’LÐ!>¨	Ð!>°GÐ!>Ð!>Ð!>Ð!>Ñ?Ô?Ð?à˜A˜B˜B”xð /ð /�Ø—’˜Z¨#Ñ-Ñ.Ô.Ð.Ð.ð/àˆr    c                ó‚   — |€t           j        }|                      |¦  «        D ]}|                     |dz   ¦  «         Œd S )Nú
)r\   Ústdoutr}   Úwrite)r   rs   ÚfileÚlines       r   Ú
print_helpzFancyGetopt.print_helpu  sN   € Øˆ<Ý”:ˆDØ×&Ò& vÑ.Ô.ð 	$ð 	$ˆDØ�JŠJ�t˜d‘{Ñ#Ô#Ð#Ð#ð	$ð 	$r    r   )NN)r)   r-   r.   r/   ©rW   rX   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r%   r,   r2   r7   r@   rB   rD   rV   r`   rl   r}   r„   © r    r   r   r   %   s  € € € € € ð	ð 	ð&ð &ð &ð &ðP2ð 2ð 2ð
ð ð ð4ð 4ð 4ð 4ð0ð 0ð 0ð 0ð
4ð 4ð 4ð
ð 
ð 
ðð ð ð
-ð -ð -ðN1ð N1ð N1ð`;ð ;ð ;ð ;ð ;ðz%ð %ð %ðLð Lð Lð Lð\$ð $ð $ð $ð $ð $r    r   rW   rX   c                óv   — t          | ¦  «        }|                     |¦  «         |                     ||¦  «        S r   )r   rD   r`   )ÚoptionsÚnegative_optrd   rW   Úparsers        r   Úfancy_getoptr�   |  s7   € Ý˜Ñ!Ô!€FØ
×Ò Ñ-Ô-Ð-Ø�=Š=˜˜vÑ&Ô&Ð&r    c                ó.   — i | ]}t          |¦  «        d “ŒS )rZ   )Úord)Ú.0Ú_wschars     r   ú
<dictcomp>r”   ‚  s    € Ð?Ð?Ð? '�C�‰LŒL˜#Ð?Ð?Ð?r    c                óž  — | €g S t          | ¦  «        |k    r| gS |                      ¦   «         } |                      t          ¦  «        } t	          j        d| ¦  «        }d„ |D ¦   «         }g }|rßg }d}|r\t          |d         ¦  «        }||z   |k    r$|                     |d         ¦  «         |d= ||z   }n|r|d         d         dk    r|d= n|°\|rQ|dk    r6|                     |d         d|…         ¦  «         |d         |d…         |d<   |d         d         dk    r|d= |                     d                     |¦  «        ¦  «         |°ß|S )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( +|-+)c                ó   — g | ]}|¯|‘ŒS rŠ   rŠ   )r’   Úchs     r   ú
<listcomp>zwrap_text.<locals>.<listcomp>“  s   € Ð(Ð(Ð(�R RÐ(ˆbÐ(Ð(Ð(r    r   rI   rZ   r[   )rM   Ú
expandtabsr5   ÚWS_TRANSÚreÚsplitr(   r_   )r{   ÚwidthÚchunksrz   Úcur_lineÚcur_lenru   s          r   rr   rr   …  s˜  € ð €|Øˆ	Ý
ˆ4�y„y�EÒÐØˆvˆà�?Š?ÑÔ€DØ�>Š>�(Ñ#Ô#€DÝŒX�j $Ñ'Ô'€FØ(Ð(˜6Ð(Ñ(Ô(€FØ€Eà
ð  (ØˆØˆàð 
	Ý�f˜Q”i‘.”.ˆCØ˜‰} Ò%Ð%Ø—’  q¤	Ñ*Ô*Ð*Ø˜1�IØ! C™-��ð ð % ¨¤¨Q¤°3Ò 6Ð 6Ø  ˜Øð ð 
	ð ð 	ð ˜!Š|ˆ|Ø—’  q¤	¨!¨E¨'Ô 2Ñ3Ô3Ð3Ø" 1œI e f fÔ-��q‘	ð
 �aŒy˜Œ|˜sÒ"Ð"Ø˜1�Ið 	�Š�R—W’W˜XÑ&Ô&Ñ'Ô'Ð'ðA ð  (ðD €Lr    c                ó6   — |                       t          ¦  «        S )zXConvert a long option name to a valid Python identifier by
    changing "-" to "_".
    r4   )r?   s    r   Útranslate_longoptr¢   »  s   € ð �=Š=�Ñ'Ô'Ð'r    c                  ó   — e Zd ZdZg fdd„ZdS )r^   z_Dummy class just used as a place to hold command-line option
    values as instance attributes.rŒ   úSequence[Any]c                ó2   — |D ]}t          | |d¦  «         ŒdS )zkCreate a new OptionDummy instance.  The attributes listed in
        'options' will be initialized to None.N)rc   )r   rŒ   r?   s      r   r   zOptionDummy.__init__Æ  s2   € ð ð 	%ð 	%ˆCÝ�D˜#˜tÑ$Ô$Ð$Ð$ð	%ð 	%r    N)rŒ   r¤   )r†   r‡   rˆ   r‰   r   rŠ   r    r   r^   r^   Â  s<   € € € € € ð&ð &ð 13ð %ð %ð %ð %ð %ð %ð %r    r^   Ú__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   r`   r›   Ústringr\   Úcollections.abcr   Útypingr   Úerrorsr   r   Úlongopt_patÚcompilerP   Úneg_alias_rer-   Ú	maketransr6   r   r�   Ú
whitespacerš   rr   r¢   r^   r†   r{   ÚwÚprintr_   rŠ   r    r   ú<module>r·      s
  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ð +€ØˆRŒZÐ+˜[Ð+Ð+Ð+Ñ,Ô,€
ð ˆrŒzÐ?˜{Ð?Ð?°Ð?Ð?Ð?Ñ@Ô@€ð —’˜c 3Ñ'Ô'€ðT$ð T$ð T$ð T$ð T$ñ T$ô T$ð T$ðn
'ð 'ð 'ð 'ð @Ð?¨VÔ->Ð?Ñ?Ô?€ð3ð 3ð 3ðl(ð (ð (ð%ð %ð %ð %ð %ñ %ô %ð %ð ˆzÒÐð €Dð ð ð ˆØˆˆm˜ˆmˆmÑÔÐØˆˆd�iŠi˜	˜	 $¨Ñ*Ô*Ñ+Ô+Ñ,Ô,Ð,Øˆ‰Œˆˆð Ððð r    