o
    Ñ­jö[  ã                   @   sL  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'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z. dd„ Z/dd„ Z0dd„ Z1dd„ Z2dd„ Z3dd„ Z4G dd„ dej5ƒZ5ej6fdd„Z7dS )z¿
    pygments.cmdline
    ~~~~~~~~~~~~~~~~

    Command line interface.

    :copyright: Copyright 2006-present 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ÚTerminalTrueColorFormatter)Úget_all_filtersÚfind_filter_class)Úget_all_stylesÚget_style_by_namec              
   C   sˆ   i }| s|S | D ]9}|  ¡ sq| d¡}|D ]*}|  ¡ }z| dd¡\}}|  ¡ }|  ¡ }W n ty;   d||< Y qw |||< qq|S )Nú,ú=é   T)ÚstripÚsplitÚ
ValueError)Úo_strsÚoptsÚo_strÚo_argsÚo_argÚo_keyÚo_val© r.   úM/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/cmdline.pyÚ_parse_options!   s&   
ÿ
÷
r0   c                 C   sV   g }| s|S | D ] }d|v r!|  dd¡\}}| |t|gƒf¡ q| |i f¡ q|S )Nú:r#   )r%   Úappendr0   )Úf_strsÚfiltersÚf_strÚfnameÚfoptsr.   r.   r/   Ú_parse_filters6   s   r8   c              	   C   sÎ   zP| dkrt |ƒ}td|j› d�ƒ tt|jƒƒ W dS | dkr7t|ƒ}td|j› d�ƒ tt|jƒƒ W dS | dkrNt|ƒ}td|› d�ƒ tt|jƒƒ W dS  ttfyf   t| › d	�t	j
d
� Y dS w )NÚlexerzHelp on the z lexer:Ú	formatterz formatter:Úfilterz filter:r   z not found!©Úfiler#   )r   ÚprintÚnamer   Ú__doc__r   r   ÚAttributeErrorr&   ÚsysÚstderr)Úwhatr?   Úclsr.   r.   r/   Ú_print_helpC   s(   	øüþrF   c                 C   sÖ  | dkrGt ƒ  t dƒ t dƒ g }tƒ D ] \}}}}d |¡d ||r,dd |¡ d p-df}| |¡ q| ¡  |D ]	}t d	j|Ž ƒ q;d S | d
kr‘t ƒ  t dƒ t dƒ g }tƒ D ]#}t|ƒ}	d |j¡d |	|j	rvdd |j	¡ d pwdf}| |¡ q[| ¡  |D ]	}t d	j|Ž ƒ q…d S | dkr½t ƒ  t dƒ t dƒ t
ƒ D ]}
t|
ƒ}t d|
 d ƒ t dt|ƒ› �ƒ q£d S | dkrçt ƒ  t dƒ t dƒ tƒ D ]}
t|
ƒ}t d|
 d ƒ t dt|ƒ› �ƒ qÏd S d S )Nr9   zLexers:z~~~~~~~z, r1   z(filenames ú)Ú z* {}
    {} {}r:   zFormatters:z~~~~~~~~~~~r;   zFilters:z~~~~~~~~z* z    ÚstylezStyles:)r>   r   Újoinr2   ÚsortÚformatr   r   ÚaliasesÚ	filenamesr   r   r   r    )rD   ÚinfoÚfullnameÚnamesÚextsÚ_ÚtupÚirE   Údocr?   r.   r.   r/   Ú_print_listW   sd   ÿÿ
ÿÿÿ
ý
ørW   c                 C   s  dd l }i }d| v r"i }tƒ D ]\}}}}|||dœ||< q||d< d| v rAi }tƒ D ]}t|ƒ}	|j|j|	dœ||j< q+||d< d| v r]i }tƒ D ]}
t|
ƒ}d	t|ƒi||
< qJ||d
< d| v ryi }t	ƒ D ]}
t
|
ƒ}d	t|ƒi||
< qf||d< | |tj¡ d S )Nr   r9   )rM   rN   Ú	mimetypesÚlexersr:   )rM   rN   rV   Ú
formattersr;   rV   r4   rI   Ústyles)Újsonr   r   r   rM   rN   r?   r   r   r   r    ÚdumprB   Ústdout)Úrequested_itemsr\   ÚresultrO   rP   rQ   rN   rX   rE   rV   r?   r.   r.   r/   Ú_print_list_as_jsonŠ   sD   ý
ý

ÿ

ÿra   c           &         sš
  ˆj r	|  ¡  dS ˆjrtdt› d�ƒ dS ‡fdd„}ˆjd urŠtƒ }tˆƒ ¡ D ]\}}|r5| 	|¡ q*| 
d¡ | 
d¡ |rJ|  tj¡ dS ˆjsStd	d
gƒ h d£‰ dd„ ˆjD ƒ}t‡ fdd„|D ƒƒrr|  tj¡ dS |svˆ }ˆjs„|D ]}t|ƒ q{dS t|ƒ dS ˆjr¯|dƒs™|  tj¡ dS ˆj\}}	|dvrª|  tj¡ dS t||	ƒS tˆjp´g ƒ}
ˆjpºg D ]}z
| dd¡\}	}W n tyÔ   d|
|< Y q»w ||
|	< q»|
 d|
 d¡¡}|
 d|
 d¡¡}ˆj�rtˆjƒ}|d u rût}t|jd ƒ dS ˆj�r,tjj  !¡ }zt"||d�}W n t#�y"   t}Y nw t|jd ƒ dS ˆj$}ˆj%}|d u�r‹ˆj&}|�sE|  tj¡ dS ˆj'�sMˆj(�rU|  tj¡ dS z||
d< t)|fi |
¤Ž}W n t#�y~ } zt|tjd� W Y d }~dS d }~ww t| *|�p†d	¡ƒ dS ˆj%d u�r™|  tj¡ dS t+ˆj,�pŸg ƒ}t-ˆj.ƒ}d }ˆj'}|�r.|�rd|v �rz2d }d }	d|v �rÏ| /dd¡\}}	d|	v �rÏd }	|�rß|	�rßt0||	fi |
¤Ž}nt0|fi |
¤Ž}W nE t#�y } ztd|tjd� W Y d }~dS d }~ww z
t1|fi |
¤Ž}W n t2t#f�y- } ztd|tjd� W Y d }~dS d }~ww d }ˆj(�róˆj3�rAtdtjd� dS ˆj(}zt4|dƒ�}| !¡ }W d   ƒ n	1 �sZw   Y  W n t5�y| } ztd |tjd� W Y d }~dS d }~ww |�s†t6|ƒ\}}|�sòzt7||fi |
¤Ž}W nŸ t#�yÖ } z5ˆj8�r½z
t"|fi |
¤Ž}W n  t#�y¼   td/i |
¤Ž}Y nw td|tjd� W Y d }~dS W Y d }~nbd }~w t2�yñ } ztd|tjd� W Y d }~dS d }~ww nAˆj3�s(tjj  !¡ }|�st9|tjƒ\}}|�s'z
t"|fi |
¤Ž}W n t#�y&   td/i |
¤Ž}Y nw n|�s4td!tjd� dS |D ]-\}}z|j:|fi |¤Ž W �q6 t#�yc } ztd|tjd� W Y d }~ dS d }~ww ˆj;}ˆj&}|�rí|�rÄd|v �rÄz2d }d }	d|v �rŽ| /dd¡\}}	d|	v �rŽd }	|�rž|	�ržt<||	fi |
¤Ž}nt<|fi |
¤Ž}W nE t#�yÃ } ztd|tjd� W Y d }~dS d }~ww z
t)|fi |
¤Ž}W n t2t#f�yì } ztd|tjd� W Y d }~dS d }~ww |�r@|�sz
t=|fi |
¤Ž}W n t2t#f�y } ztd|tjd� W Y d }~dS d }~ww zt4|d"ƒ} W nN t5�y? } ztd#|tjd� W Y d }~dS d }~ww |�snt>j? d$d	¡d%v �rUt@d/i |
¤Ž}nd&t>j? d'd	¡v �rgtAd/i |
¤Ž}ntBd/i |
¤Ž}tjCj } |�s‚|�r|||_DntEtjCƒ|_D|�s·tjFd(v �r·|jGd)v �r·tH| |jDd*�} d |_Dzdd lI}!W n
 tJ�y«   Y nw |!jKjL| d d d+dd,�} |
 d-d	¡}"tM|"ƒdk�rØtN|tOƒ�rØ|"d }#|"d }$tP|#|$|ƒ}ˆj3�s÷ztQ|||| ƒ W |�rì|  R¡  dS |�rö|  R¡  w w zLz6	 tjj  S¡ }%|%�sn|�st9|%tjƒd }%tQ|%||| ƒ tT| d.ƒ�r |  U¡  �qúW W |�r-|  R¡  dS dS  tV�yC   Y W |�rA|  R¡  dS dS w |�rL|  R¡  w w )0Nr   zPygments version uG   , (c) 2006-present 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>Á   s   € z5main_inner.<locals>.is_only_option.<locals>.<genexpr>)ÚanyÚvarsÚitemsrf   )Úargnsrf   r/   Úis_only_optionÀ   s    z"main_inner.<locals>.is_only_optionÚLr\   é   rH   ú-V>   r9   rI   r;   r:   c                 S   s   g | ]}|  d ¡‘qS )Ús)Úrstrip©rc   Úargr.   r.   r/   Ú
<listcomp>Õ   s    zmain_inner.<locals>.<listcomp>c                 3   s   � | ]}|ˆ vV  qd S rb   r.   rs   )Úallowed_typesr.   r/   rh   Ö   s   € zmain_inner.<locals>.<genexpr>ÚH)r9   r:   r;   r"   r#   TÚ
inencodingÚencodingÚoutencoding)rx   rI   r<   z.pyr1   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:Ú	COLORTERM)Ú	truecolorÚ24bitÚ256ÚTERM)Úwin32Úcygwin)ÚTerminalÚTerminal256)ry   F)Úconvertr$   Ú	autoresetÚwrapÚescapeinsideÚflushr.   )WÚhelpÚ
print_helpÚVr>   r   rn   Úsetrj   rk   ÚaddÚdiscardrB   rC   r\   Úmainri   rW   ra   rw   rF   r0   ÚOÚPr%   r&   ÚgetÚNr   r   rM   ÚCÚstdinÚbufferÚreadr   r   ÚSÚaÚfÚlÚ	INPUTFILEr   Úget_style_defsr8   ÚFÚboolÚxÚrsplitr   r   r   rq   ÚopenÚ	Exceptionr   r   Úgr	   Ú
add_filterÚor   r   ÚosÚenvironr   r   r   r^   ry   r
   Úplatformr?   r   Úcolorama.initialiseÚImportErrorÚ
initialiseÚwrap_streamÚlenÚ
isinstancer   r   r   ÚcloseÚreadlineÚhasattrrŠ   ÚKeyboardInterrupt)&Úparserrl   rm   Úarg_setrd   re   Úlargsrt   rD   r?   Úparsed_optsÚp_optÚvaluerx   rz   r9   ÚinpÚS_optÚa_optÚf_optÚfmterÚerrÚF_optsÚallow_custom_lexer_formatterÚ	lexernameÚfilenameÚcodeÚinfnÚinfpr6   r7   ÚoutfnÚoutfileÚcoloramar‰   ÚleftÚrightÚliner.   )rv   rl   r/   Ú
main_inner¶   sD  

€


ÿ

ÿ

ÿ
€þ



ÿ€€þ€þÿ
ÿ€€þÿ€€þôÿýÿ€þ


ÿ€€þ€þ€þ€þÿ
ÿþ
ÿø	ÿýÿý
ÿrÏ   c                   @   s   e Zd Zddd„ZdS )ÚHelpFormatterro   é   Nc                 C   sF   |d u rz	t  ¡ jd }W n	 ty   Y nw tj | ||||¡ d S )Nro   )ÚshutilÚget_terminal_sizeÚcolumnsr¥   ÚargparserÐ   Ú__init__)ÚselfÚprogÚindent_incrementÚmax_help_positionÚwidthr.   r.   r/   rÖ     s   ÿÿzHelpFormatter.__init__)ro   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â   Y dJS  t	�yg   |j
�rttjdK� tdLtjdK� tdMtjdK� tdNtjdK� tdOtjdK� tdLtjdK� ttjdK� ‚ dJdIl}	|	jt ¡ Ž }
|
dP  ¡ }t|
ƒdQk�rI|dR |
dS  dT¡dJ  ¡ dHdI… ¡7 }ttjdK� tdUtjdK� t|tjdK� tdVtjdK� Y dHS w )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-lÚ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]r2   znAdd a filter to the token stream.  (Query names with -L.) Filter options are given after a colon if necessary.)rã   rå   r‹   z-fÚ	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-oÚ
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Ú*Ú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-NÚ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Ústorero   )ÚNAMEÚTYPEzrPrint detailed help for the object <name> of type <type>, where <type> is one of "lexer", "formatter" or "filter".)rå   ré   rã   r‹   rp   zPrint the package version.z-hz--helpzPrint this help.z-aÚARGzKFormatter-specific additional argument for the -S (print style sheet) mode.r#   Nr   r<   zA*****************************************************************z3An unhandled exception occurred while highlighting.z9Please report the whole traceback to the issue tracker atz.<https://github.com/pygments/pygments/issues>.éÿÿÿÿé   z	
   (f{})éþÿÿÿÚ
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Ï   ÚBrokenPipeErrorr¥   re   r>   rB   rC   Ú	tracebackÚformat_exceptionÚexc_infor$   r°   rL   r%   )ÚargsÚdescr¶   Ú	operationÚlexerselÚflagsÚspecial_modes_groupÚspecial_modesrl   rü   rO   Úmsgr.   r.   r/   r‘     sú   ÿ
þþþþþþþþ
þþþ	ýÿþþþþþþþþÿÿÿ(ÿèr‘   )8r@   r©   rB   rÒ   rÕ   Útextwrapr   Úpygmentsr   r   Úpygments.utilr   r   r   r   r	   r
   r   Úpygments.lexersr   r   r   r   r   r   Úpygments.lexers.specialr   Úpygments.formatters.latexr   r   Úpygments.formattersr   r   r   r   r   Úpygments.formatters.terminalr   Úpygments.formatters.terminal256r   r   Úpygments.filtersr   r   Úpygments.stylesr   r    r0   r8   rF   rW   ra   rÏ   rÐ   Úargvr‘   r.   r.   r.   r/   Ú<module>   s4    
$ 3,  Q