a
    hbòfp[  ã                   @   sH  d 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m	Z	 ddl
mZmZmZmZmZmZmZ ddlmZmZmZmZmZmZ ddlmZ ddlmZmZ dd	lmZm Z m!Z!m"Z"m#Z# dd
l$m%Z% ddl&m'Z' ddl(m)Z)m*Z* ddl+m,Z,m-Z- dd„ Z.dd„ Z/dd„ Z0dd„ Z1dd„ Z2dd„ Z3G dd„ dej4ƒZ4ej5fdd„Z6dS )z¼
    pygments.cmdline
    ~~~~~~~~~~~~~~~~

    Command line interface.

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Údedent)Ú__version__Ú	highlight)ÚClassNotFoundÚOptionErrorÚdocstring_headlineÚguess_decodeÚguess_decode_from_terminalÚterminal_encodingÚUnclosingTextIOWrapper)Úget_all_lexersÚget_lexer_by_nameÚguess_lexerÚload_lexer_from_fileÚget_lexer_for_filenameÚfind_lexer_class_for_filename)Ú	TextLexer)ÚLatexEmbeddedLexerÚLatexFormatter)Úget_all_formattersÚget_formatter_by_nameÚload_formatter_from_fileÚget_formatter_for_filenameÚfind_formatter_class)ÚTerminalFormatter)ÚTerminal256Formatter)Úget_all_filtersÚfind_filter_class)Úget_all_stylesÚget_style_by_namec              
   C   sˆ   i }| s|S | D ]r}|  ¡ sq| d¡}|D ]T}|  ¡ }z$| dd¡\}}|  ¡ }|  ¡ }W n tyv   d||< Y q,0 |||< q,q|S )Nú,ú=é   T)ÚstripÚsplitÚ
ValueError)Zo_strsÚoptsZo_strZo_argsZo_argZo_keyZo_val© r'   úY/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pip/_vendor/pygments/cmdline.pyÚ_parse_options!   s"    
r)   c                 C   sV   g }| s|S | D ]@}d|v rB|  dd¡\}}| |t|gƒf¡ q| |i f¡ q|S )Nú:r"   )r$   Úappendr)   )Zf_strsÚfiltersZf_strÚfnameÚfoptsr'   r'   r(   Ú_parse_filters6   s    r/   c              	   C   s¼   zŒ| dkr0t |ƒ}td|j ƒ tt|jƒƒ nX| dkr^t|ƒ}td|j ƒ tt|jƒƒ n*| dkrˆt|ƒ}td| ƒ tt|jƒƒ W dS  ttfy¶   td|  t	j
d	� Y d
S 0 d S )NÚlexerzHelp on the %s lexer:Ú	formatterzHelp on the %s formatter:ÚfilterzHelp on the %s filter:r   z%s not found!©Úfiler"   )r   ÚprintÚnamer   Ú__doc__r   r   ÚAttributeErrorr%   ÚsysÚstderr)Úwhatr6   Úclsr'   r'   r(   Ú_print_helpC   s"    r=   c                 C   sÒ  | dkrŒt ƒ  t dƒ t dƒ g }tƒ D ]@\}}}}d |¡d ||rXdd |¡ d pZdf}| |¡ q(| ¡  |D ]}t d	| ƒ qv�nB| d
k�r t ƒ  t dƒ t dƒ g }tƒ D ]F}t|ƒ}	d |j¡d |	|jrìdd |j¡ d pîdf}| |¡ q¶| ¡  |D ]}t d	| ƒ �q
n®| dk�rxt ƒ  t dƒ t dƒ t	ƒ D ].}
t
|
ƒ}t d|
 d ƒ t dt|ƒ ƒ �qFnV| dk�rÎt ƒ  t dƒ t dƒ tƒ D ].}
t|
ƒ}t d|
 d ƒ t dt|ƒ ƒ �qžd S )Nr0   zLexers:z~~~~~~~z, r*   z(filenames ú)Ú z* %s
    %s %sr1   zFormatters:z~~~~~~~~~~~r2   zFilters:z~~~~~~~~z* z    %sÚstylezStyles:)r5   r   Újoinr+   Úsortr   r   ÚaliasesÚ	filenamesr   r   r   r   )r;   ÚinfoÚfullnameÚnamesÚextsÚ_ÚtupÚir<   Údocr6   r'   r'   r(   Ú_print_listW   sZ    ÿ

ÿÿ



rM   c                 C   s  dd l }i }d| v rDi }tƒ D ]\}}}}|||dœ||< q||d< d| v r‚i }tƒ D ]"}t|ƒ}	|j|j|	dœ||j< qV||d< d| v rºi }tƒ D ]}
t|
ƒ}d	t|ƒi||
< q”||d
< d| v ròi }t	ƒ D ]}
t
|
ƒ}d	t|ƒi||
< qÌ||d< | |tj¡ d S )Nr   r0   )rC   rD   Ú	mimetypesÚlexersr1   )rC   rD   rL   Ú
formattersr2   rL   r,   r@   Ústyles)Újsonr   r   r   rC   rD   r6   r   r   r   r   Údumpr9   Ústdout)Zrequested_itemsrR   ÚresultrE   rF   rG   rD   rN   r<   rL   r6   r'   r'   r(   Ú_print_list_as_jsonŠ   sD    ý
ý
ÿ

ÿ
rV   c           &         s¨
  ˆj r|  ¡  dS ˆjr(tdt ƒ dS ‡fdd„}ˆjd u�rtƒ }tˆƒ ¡ D ]\}}|rR| 	|¡ qR| 
d¡ | 
d¡ |r’|  tj¡ dS ˆjs¤tdd	gƒ h d
£‰ dd„ ˆjD ƒ}t‡ fdd„|D ƒƒrâ|  tj¡ dS |sêˆ }ˆj�s|D ]}t|ƒ qönt|ƒ dS ˆj�rb|dƒ�s4|  tj¡ dS ˆj\}}	|dv�rX|  tj¡ dS t||	ƒS tˆj�png ƒ}
ˆj�p|g D ]@}z| dd¡\}	}W n t�y²   d|
|< Y n
0 ||
|	< �q~|
 d|
 d¡¡}|
 d|
 d¡¡}ˆj�rtˆjƒ}|d u �rt}t|jd ƒ dS ˆj�rftjj  !¡ }zt"||d�}W n t#�yR   t}Y n0 t|jd ƒ dS ˆj$}ˆj%}|d u�r$ˆj&}|�s˜|  tj¡ dS ˆj'�s¨ˆj(�r¸|  tj¡ dS z||
d< t)|fi |
¤Ž}W n6 t#�y
 } zt|tjd� W Y d }~dS d }~0 0 t| *|�pd¡ƒ dS ˆj%d u�r@|  tj¡ dS t+ˆj,�pLg ƒ}t-ˆj.ƒ}d }ˆj'}|�rl|�rd|v �rzdd }d }	d|v �r¬| /dd¡\}}	d|	v �r¬d }	|�rÌ|	�rÌt0||	fi |
¤Ž}nt0|fi |
¤Ž}W n8 t#�y } ztd|tjd� W Y d }~dS d }~0 0 nRzt1|fi |
¤Ž}W n< t2t#f�yj } ztd|tjd� W Y d }~dS d }~0 0 d }ˆj(�røˆj3�r’tdtjd� dS ˆj(}z8t4|dƒ�}| !¡ }W d   ƒ n1 �sÄ0    Y  W n8 t5�y } ztd|tjd� W Y d }~dS d }~0 0 |�st6|ƒ\}}|�szzt7||fi |
¤Ž}W n¼ t#�y¾ } zlˆj8�rŒzt"|fi |
¤Ž}W n" t#�yˆ   tf i |
¤Ž}Y n0 ntd|tjd� W Y d }~dS W Y d }~n@d }~0  t2�yô } ztd|tjd� W Y d }~dS d }~0 0 n‚ˆj3�sbtjj  !¡ }|�s"t9|tjƒ\}}|�szzt"|fi |
¤Ž}W n" t#�y^   tf i |
¤Ž}Y n0 n|�sztd tjd� dS |D ]\\}}z|j:|fi |¤Ž W n: t#�yÖ } z td|tjd� W Y d }~ dS d }~0 0 �q~ˆj;}ˆj&}|�rð|�ržd|v �ržzdd }d }	d|v �r0| /dd¡\}}	d|	v �r0d }	|�rP|	�rPt<||	fi |
¤Ž}nt<|fi |
¤Ž}W n8 t#�yš } ztd|tjd� W Y d }~dS d }~0 0 nRzt)|fi |
¤Ž}W n< t2t#f�yî } ztd|tjd� W Y d }~dS d }~0 0 |�r˜|�sNzt=|fi |
¤Ž}W n< t2t#f�yL } ztd|tjd� W Y d }~dS d }~0 0 zt4|d!ƒ} W n8 t5�y” } ztd"|tjd� W Y d }~dS d }~0 0 n@|�sÐd#t>j? d$d¡v �rÂt@f i |
¤Ž}ntAf i |
¤Ž}tjBj } |�sø|�rì||_CntDtjBƒ|_C|�	sptjEd%v �	rp|jFd&v �	rptG| |jCd'�} d |_Czdd lHmI  mJ  mK}! W n tL�	yZ   Y n0 |!jM| d d d(dd)�} |
 d*d¡}"tN|"ƒdk�	r²tO|tPƒ�	r²|"d }#|"d }$tQ|#|$|ƒ}ˆj3�	sðz tR|||| ƒ W |�	rì|  S¡  n|�	rê|  S¡  0 dS z¢zhtjj  T¡ }%|%�
s
�
qF|�
s t9|%tjƒd }%tR|%||| ƒ tU| d+ƒ�	rô|  V¡  �	qôW W |�
rX|  S¡  dS  tW�
y€   Y W |�
r||  S¡  dS 0 W |�
r¤|  S¡  n|�
r¢|  S¡  0 d S ),Nr   uW   Pygments version %s, (c) 2006-2021 by Georg Brandl, MatthÃ¤us Chajdas and contributors.c                    s    t ‡ fdd„tˆƒ ¡ D ƒƒ S )Nc                 3   s   | ]\}}|ˆ kr|V  qd S ©Nr'   )Ú.0ÚkÚv©Úoptr'   r(   Ú	<genexpr>Á   ó    z5main_inner.<locals>.is_only_option.<locals>.<genexpr>)ÚanyÚvarsÚitemsr[   )Úargnsr[   r(   Úis_only_optionÀ   s    z"main_inner.<locals>.is_only_optionÚLrR   é   r?   ú-V>   r2   r1   r@   r0   c                 S   s   g | ]}|  d ¡‘qS )Ús)Úrstrip©rX   Úargr'   r'   r(   Ú
<listcomp>Õ   r^   zmain_inner.<locals>.<listcomp>c                 3   s   | ]}|ˆ vV  qd S rW   r'   ri   )Úallowed_typesr'   r(   r]   Ö   r^   zmain_inner.<locals>.<genexpr>ÚH)r0   r1   r2   r!   r"   TÚ
inencodingÚencodingÚoutencoding)rn   r@   r3   z.pyr*   zError:z5Error: -s option not usable when input file specifiedÚrbzError: cannot read infile:z7Error: when using -s a lexer has to be selected with -lÚwbzError: cannot open outfile:Ú256ÚTERM)Úwin32Úcygwin)ZTerminalZTerminal256)ro   F)Úconvertr#   Ú	autoresetÚwrapÚescapeinsideÚflush)XÚhelpÚ
print_helpÚVr5   r   rd   Úsetr`   ra   ÚaddÚdiscardr9   r:   rR   Úmainr_   rM   rV   rm   r=   r)   ÚOÚPr$   r%   ÚgetÚNr   r   rC   ÚCÚstdinÚbufferÚreadr   r   ÚSÚaÚfÚlÚ	INPUTFILEr   Zget_style_defsr/   ÚFÚboolÚxÚrsplitr   r   r   rg   ÚopenÚ	Exceptionr   r   Úgr	   Ú
add_filterÚor   r   ÚosÚenvironr   r   rT   ro   r
   Úplatformr6   r   Zpip._vendor.colorama.initialiseÚ_vendorÚcoloramaÚ
initialiseÚImportErrorÚwrap_streamÚlenÚ
isinstancer   r   r   ÚcloseÚreadlineÚhasattrr{   ÚKeyboardInterrupt)&Úparserrb   rc   Zarg_setrY   rZ   Úlargsrj   r;   r6   Zparsed_optsZp_optÚvaluern   rp   r0   ÚinpZS_optZa_optZf_optZfmterÚerrZF_optsZallow_custom_lexer_formatterÚ	lexernameÚfilenameÚcodeZinfnÚinfpr-   r.   ZoutfnÚoutfileZcolorama_initialiserz   ÚleftÚrightÚliner'   )rl   rb   r(   Ú
main_inner¶   sü   ÿ













ÿÿ,"ÿ


ÿÿ
ÿ
ÿ
ûý
ÿr´   c                   @   s   e Zd Zddd„ZdS )ÚHelpFormatterre   é   Nc                 C   sF   |d u r.zt  ¡ jd }W n ty,   Y n0 tj | ||||¡ d S )Nre   )ÚshutilÚget_terminal_sizeÚcolumnsr•   Úargparserµ   Ú__init__)ÚselfÚprogÚindent_incrementÚmax_help_positionÚwidthr'   r'   r(   r»     s    ÿzHelpFormatter.__init__)re   r¶   N)Ú__name__Ú
__module__Ú__qualname__r»   r'   r'   r'   r(   rµ     s   rµ   c                 C   sÀ  d}t j|dtd�}| d¡}| ¡ }|jdddd� |jd	d
dd� |jddddd� |jdddd� |jddddd� |jddddd� |jdddd� |jddd d!� | d"¡}|jd#d
d$d� |jd%d
d&d� |jd'd
d(d� |jd)d*dd
d+� | d,¡}| ¡ }|jd-d.d/d� |jd0d1d2d3d4� |jd5d6d7d� |jd8d
d9d� |jd:d;d<d=d>d?� |jd@d
dAd� |jdBdCd
dDd� |jdEdFdGd� | | dHdI… ¡}zt||ƒW S  t�yº   |j	�r(t
tjdJ� t
dKtjdJ� t
dLtjdJ� t
dMtjdJ� t
dNtjdJ� t
dKtjdJ� t
tjdJ� ‚ dOdIl}	|	jt ¡ Ž }
|
dP  ¡ }t|
ƒdQk�r~|dR|
dS  dT¡dO  ¡ dHdI…  7 }t
tjdJ� t
dUtjdJ� t
|tjdJ� t
dVtjdJ� Y dHS 0 dIS )Wz(
    Main command line entry point.
    z?Highlight an input file and write the result to an output file.F)ÚdescriptionÚadd_helpÚformatter_classzMain operationz-lZLEXERz~Specify the lexer to use.  (Query names with -L.)  If not given and -g is not present, the lexer is guessed from the filename.)Úmetavarr|   z-gÚ
store_truez`Guess the lexer from the file contents, or pass through as plain text if nothing can be guessed.)Úactionr|   z-FzFILTER[:options]r+   znAdd a filter to the token stream.  (Query names with -L.) Filter options are given after a colon if necessary.)rÇ   rÉ   r|   z-fZ	FORMATTERzÜSpecify the formatter to use.  (Query names with -L.) If not given, the formatter is guessed from the output filename, and defaults to the terminal formatter if the output is to the terminal or an unknown file extension.z-OzOPTION=value[,OPTION=value,...]zyGive options to the lexer and formatter as a comma-separated list of key-value pairs. Example: `-O bg=light,python=cool`.z-PzOPTION=valuez·Give a single option to the lexer and formatter - with this you can pass options whose value contains commas and equal signs. Example: `-P "heading=Pygments, the Python highlighter"`.z-oZ
OUTPUTFILEz8Where to write the output.  Defaults to standard output.r�   ú?z5Where to read the input.  Defaults to standard input.)Únargsr|   zOperation flagsz-vzbPrint a detailed traceback on unhandled exceptions, which is useful for debugging and bug reports.z-sa!  Process lines one at a time until EOF, rather than waiting to process the entire file.  This only works for stdin, only for lexers with no line-spanning constructs, and is intended for streaming input such as you get from `tail -f`. Example usage: `tail -f sql.log | pygmentize -s -l sql`.z-xa«  Allow custom lexers and formatters to be loaded from a .py file relative to the current working directory. For example, `-l ./customlexer.py -x`. By default, this option expects a file with a class named CustomLexer or CustomFormatter; you can also specify your own class name with a colon (`-l ./lexer.py:MyLexer`). Users should be very careful not to use this option with untrusted files, because it will import and run them.z--jsonz=Output as JSON. This can be only used in conjunction with -L.)r|   ÚdefaultrÉ   z*Special modes - do not do any highlightingz-SzSTYLE -f formatterzqPrint style definitions for STYLE for a formatter given with -f. The argument given by -a is formatter dependent.z-LÚ*ZWHATz›List lexers, formatters, styles or filters -- give additional arguments for the thing(s) you want to list (e.g. "styles"), or omit them to list everything.)rË   rÇ   r|   z-NZFILENAMEzªGuess and print out a lexer name based solely on the given filename. Does not take input or highlight anything. If no specific lexer can be determined, "text" is printed.z-CzXLike -N, but print out a lexer name based solely on a given content from standard input.z-HÚstorere   )ÚNAMEZTYPEzrPrint detailed help for the object <name> of type <type>, where <type> is one of "lexer", "formatter" or "filter".)rÉ   rË   rÇ   r|   rf   zPrint the package version.z-hz--helpzPrint this help.z-aZARGzKFormatter-specific additional argument for the -S (print style sheet) mode.r"   Nr3   zA*****************************************************************z3An unhandled exception occurred while highlighting.z9Please report the whole traceback to the issue tracker atz.<https://github.com/pygments/pygments/issues>.r   éÿÿÿÿé   z	
   (f%s)éþÿÿÿÚ
z*** Error while highlighting:z>*** If this is a bug you want to report, please rerun with -v.)rº   ÚArgumentParserrµ   Úadd_argument_groupÚadd_mutually_exclusive_groupÚadd_argumentÚ
parse_argsr´   r•   rZ   r5   r9   r:   Ú	tracebackÚformat_exceptionÚexc_infor#   r¡   r$   )ÚargsÚdescr§   Z	operationZlexerselÚflagsZspecial_modes_groupZspecial_modesrb   rÙ   rE   Úmsgr'   r'   r(   r‚     sô    ÿ
þþþþþþþþ
þþþ	ýÿþþþþþþþþÿÿÿ&ÿr‚   )7r7   r™   r9   r·   rº   Útextwrapr   Zpip._vendor.pygmentsr   r   Úpip._vendor.pygments.utilr   r   r   r   r	   r
   r   Úpip._vendor.pygments.lexersr   r   r   r   r   r   Z#pip._vendor.pygments.lexers.specialr   Z%pip._vendor.pygments.formatters.latexr   r   Zpip._vendor.pygments.formattersr   r   r   r   r   Z(pip._vendor.pygments.formatters.terminalr   Z+pip._vendor.pygments.formatters.terminal256r   Úpip._vendor.pygments.filtersr   r   Úpip._vendor.pygments.stylesr   r   r)   r/   r=   rM   rV   r´   rµ   Úargvr‚   r'   r'   r'   r(   Ú<module>   s2   
$ 3,  O