https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/trac/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/trac/__pycache__/dist.cpython-310.pyc
o

�k�`�a�
@s�dZddlmZddlZddlZddlZddlmZmZm	Z	m
Z
mZddlm
ZddlmZddlmZddlmZdd	lmZdd
lmZdd�ZGd
d�de�Zz�ddlmZddl m!Z!ddl"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,ddiddiddiddiddiddiddiddiddid�	Z-dZ.dd�Z/dd�Z0dd �Z1e1Z2Gd!d"�d"e�Z3Gd#d$�d$e�Z4d%d&�Z5d'd(�Z6d)d*�Z7d+d,�Z8d-d.�Z9d/d0�Z:d1d2�Z;d3d4�Z<WdSe=y�d5d0�Z:d6d2�Z;d7d4�Z<YdSw)8a:Extra commands for setup.py.

We provide a few extra command classes in `l10n_cmdclass` for
localization tasks.  We also modify the standard commands
`distutils.command.build` and `setuptools.command.install_lib` classes
in order to call the l10n commands for compiling catalogs at the right
time during install.

�)�
HTMLParserN)�generate_tokens�COMMENT�NAME�OP�STRING)�
babel_extract)�log)�Command)�build)�DistutilsOptionError)�install_libcCsJt|t�r	t|�nd}|r|d}d�|���}|r#|fd|d}|S)z�Transforms an extracted messsage (string or tuple) into one in
    which the repeated white-space has been simplified to a single
    space.

    r� �N�)�
isinstance�tuple�len�join�split)�message�	tuple_len�r�+/usr/lib/python3/dist-packages/trac/dist.py�simplify_message'src@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
e
ZZZ
dS)�ScriptExtractorcCst�|�||_d|_dS�NF)r�__init__�out�
in_javascript)�selfrrrrr7s

zScriptExtractor.__init__cCs|dkr	d|_dSdS)N�scriptT�r�r �tag�attrsrrr�handle_starttag<s
�zScriptExtractor.handle_starttagcC�
d|_dSrr"r#rrr�handle_startendtag@�
z"ScriptExtractor.handle_startendtagcC�|jr
|j�d|�dSdS)Nz&#%s;�rr�write�r �namerrr�handle_charrefC��zScriptExtractor.handle_charrefcCr*)Nz&%s;r+r-rrr�handle_entityrefGr0z ScriptExtractor.handle_entityrefcCs|jr|j�|�dSdSrr+)r �datarrr�handle_dataKs�zScriptExtractor.handle_datacCr'rr")r r$rrr�
handle_endtagOr)zScriptExtractor.handle_endtagcO�dSrr)�args�kwargsrrr�no_opR�zScriptExtractor.no_opN)�__name__�
__module__�__qualname__rr&r(r/r1r3r4r8�handle_comment�handle_decl�	handle_pirrrrr6sr)�TranslationError)�extract_javascript)�extract_messages�init_catalog�compile_catalog�update_catalog)�read_po)�Translations)�parse_encoding�doc���)	�Option�
BoolOption�	IntOption�FloatOption�
ListOption�ChoiceOption�
PathOption�ExtensionOption�OrderedExtensionsOption)�
ConfigSectionrMrNrOrPrQrRrSrTrU�	cleandoc_c#sn�ddlm�d}}}d}}d}	g}
g}i}g}
d}}d}tt|�p+|�dd��}t��}d|vr<|�|d�tt	�}d	|vrK|�|d	�t
|j�}d}}|D�]�}||}}|\}}\}}}}|	dkrv|tkrv|d
vrvd}qV|t
kr�|dkr�|r�d}qV|r�|}|	d
7}	d}qV|r�|t
kr�|dkr�d}qV|	dkr�|tkr�|�|�d
d���}|r�|
dd|d
kr�|
�||f�qV|D]}|�|�r�d}|
�||f�nq�qV|�r�|	dk�r�|t
k�r�|dk�r�|
�rd�|
�}||vr�|||<n|�|�|
dd�=n|�d�|��D])\}}||v�r�q||}|t|�k�r1|�d�|t|�k�s%|||d
<�q||v�rG�fdd�|D�}t|�d
k�rSt|�}n|d}|
�rg|
dd|d
k�rgg}
|||dd�|
D�fVd}}}d}}d}	g}i}g}
d}qV|tk�r�td||fdiii�}t|t��r�|�|�}|
�|�qV|t
k�r�|dk�r�|tk�r�|}qV|t
k�r�|dk�r�|
�r�d�|
�}||v�r�|||<n|�|�|
dd�=n|�d�d}|
�r�|
��\}}|
�|d
|f�qV|	dk�r|t
k�r|dk�r|	d
8}	qV|�r |	dk�r d}}}qV|tk�r4||v�r4|}|�|i�}d}qVdS)akExtract messages from Python source code, This is patched
        extract_python from Babel to support keyword argument mapping.

        `kwargs_maps` option: names of keyword arguments will be mapping to
        index of messages array.

        `cleandoc_keywords` option: a list of keywords to clean up the
        extracted messages with `cleandoc`.
        r��cleandocN���F�encodingz
iso-8859-1�kwargs_maps�cleandoc_keywords)�def�classT�(r�:�)�csg|]}|o	�|��qSrr)�.0�mrXrr�
<listcomp>�sz"extract_python.<locals>.<listcomp>cSsg|]}|d�qS)rr)rd�commentrrrrf�sz# coding=%s
%s�__builtins__�=�,)�trac.util.textrY�strrH�get�_DEFAULT_KWARGS_MAPS�copy�update�set�_DEFAULT_CLEANDOC_KEYWORDSr�readlinerrr�decode�strip�append�
startswithr�itemsrrr�evalr�bytes�pop)�fileobj�keywords�comment_tags�options�funcname�lineno�message_linenor\�func_kwargs_map�
call_stack�buf�messages�messages_kwargs�translator_comments�in_def�in_translator_comments�comment_tagr[r]�tokens�tok�value�_�prev_tok�
prev_value�
kwarg_namerr.�index�
old_lineno�old_commentrrXr�extract_pythonss��


�



��





�

�
�





�
��r�cCsN|jsgSt��}t|�}|�t|��d��|��|�d�t	||||�S)z�Extract messages from Javascript embedded in <script> tags.

        Select <script type="javascript/text"> tags and delegate to
        `extract_javascript`.
        �utf-8r)
r.�io�StringIOr�feedrl�read�close�seekrA)r|r}r~rr�	extractorrrr�extract_javascript_script	s
r�ccsf�|r/t}|�d�|||||�D]}|ddvr+|d|dt|d�|dfVq|VqdSdS)a�Extracts translatable texts from templates.

        We simplify white-space found in translatable texts collected
        via the ``gettext`` function (which is what the ``trans``
        directives use), otherwise we would have near duplicates
        (e.g. admin.html, prefs.html).

        We assume the template function ``gettext`` will do the same
        before trying to fetch the translation from the catalog.

        rr)�gettextN��N)�jinja2_extractorr�r)r|r}r~rr�rerrr�extract_htmls�
$�r�c@s4eZdZdZdZgd�Zdd�Zdd�Zdd	�Zd
S)�generate_messages_jszMGenerating message javascripts command for use ``setup.py`` scripts.
        z6generate message javascript files from binary MO files)�zdomain=�Dz&domain of PO file (default 'messages')�z
input-dir=�Iz.path to base directory containing the catalogs�zinput-file=�izname of the input file)zoutput-dir=�Ozname of the output directory)zoutput-file=�oz<name of the output file (default '<output_dir>/<locale>.js')�zlocale=�lz locale of the catalog to compilecCs(d|_d|_d|_d|_d|_d|_dS�Nr�)�domain�	input_dir�
input_file�
output_dir�output_file�locale�r rrr�initialize_optionsIs
z'generate_messages_js.initialize_optionscCs0|js
|js
td��|js|jstd��dSdS)N�3you must specify either the input file or directoryz4you must specify either the output file or directory)r�r�rr�r�r�rrr�finalize_optionsQs
�z%generate_messages_js.finalize_optionsc
Cs�g}g}dd�}|jsZ|jr-|�|jtj�|j|jd|jd�f�|�||j|j��nJt�	|j�D]%}tj�|j|d|jd�}tj�
|�rX|�||f�|�||j|��q3n|�|j|jf�|jrm|�|j�n
|�||j|j��|s}td��tj�
|j�s�t�|j�t|�D]N\}\}}||}t�d||�t|d��}t||j�}	|	j}
Wd�n1s�wYt|dd	d
��}t||
|j|�Wd�n1s�wYq�dS)NcSstj�||d�S)Nz.js)�os�pathr)�dirr�rrr�js_path]sz)generate_messages_js.run.<locals>.js_path�LC_MESSAGES�.mozno compiled catalogs foundz'generating messages javascript %r to %r�rb�wr�)r[)r�r�rvr�r�rr�r�r��listdir�existsr�r�isdir�mkdir�	enumerate�distlog�info�openrG�_catalog�write_js)r �mo_files�js_filesr�r��mo_file�idx�js_file�infile�t�catalog�outfilerrr�runYsX����������zgenerate_messages_js.runN)	r:r;r<�__doc__�description�user_optionsr�r�r�rrrrr�4sr�c@sDeZdZdZdZgd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dS)�
check_catalogz;Check message catalog command for use ``setup.py`` scripts.z2check message catalog files, like `msgfmt --check`)r�r�r�r�cCsd|_d|_d|_d|_dSr�)r�r�r�r�r�rrrr��s
z check_catalog.initialize_optionscCs|js
|jstd��dSdS)Nr�)r�r�rr�rrrr��s�zcheck_catalog.finalize_optionsc	Cs�|��D];}t�d|�t|d��}t||jd�}Wd�n1s#wY|D]}|�||�D]}t�d||j|�q2q*qdS)Nzchecking catalog %sr�)r�z	%s:%d: %s)	�
_get_po_filesr�r�r�rFr��_check_message�warnr�)r �filename�fr�r�errorrrrr��s�����zcheck_catalog.runcCs�|jr|jgS|jrtj�|j|jd|jd�gSg}t�|j�D]}tj�|j|d|jd�}tj�|�r;|�	|�q!t
|�S)Nr�z.po)r�r�r�r�rr�r�r�r�rv�sorted)r �filesr�r�rrrr��s
��
�zcheck_catalog._get_po_filesccs2�|�|�D]}|Vqt||�D]}|VqdSr)�check�check_markup)r r�r�errrr��s��zcheck_catalog._check_messageN)r:r;r<r�r�r�r�r�r�r�r�rrrrr��s
r�ccs��dd�}||j�}||j�}t|�D]6\}}|dkrdnd}t|�D]%\}}	|rH|	rH||	krHt|�dkr7dnd|}
t|||	|
�D]}|VqBq#qd	S)
z"Verify markups in the translation.cSst|ttf�s
|f}|Sr)r�listr)r�rrr�to_array�szcheck_markup.<locals>.to_arrayr�msgid�msgid_pluralr�msgstrz
msgstr[%d]N)�id�stringr�r�_check_markup_0)r�rr��msgids�msgstrs�	msgid_idxr��
msgid_name�
msgstr_idxr��msgstr_namer�rrrr��s$�

�����r�c
#s��ddlm��fdd�}z||�}Wn�jyYdSwz||�}Wn�jy>}zt|�VWYd}~dSd}~wwt|�t|�BD]}|�|d�}	|�|d�}
|	|
kretd||||	|
f�VqGdS)Nr��ElementTreecsbd|�d�}i}��t�|��D]}|dj}|�|d�||d7<q|dd8<|S)Nz<html>
%s
</html>r�rr�html)�encode�	iterparser��BytesIOr$�
setdefault)�text�counts�eventr$r�rr�
count_tags�s
z#_check_markup_0.<locals>.count_tagsz0mismatched '%s' tag between %s and %s (%d != %d))�	xml.etreer��
ParseErrorr@rqrm)r�r�r�r�r��msgid_counts�
msgstr_countsr�r$�msgid_count�msgstr_countrr�rr��s4�
�
������r�cCsddlm}||d�}i}|��D]R\}}t|ttf�r/|�|di�|||d|d<q|r6|||<q|��D](}	|	��}	|	sCq:d|	vrHq:|	�	dd�\}
}|
���
�}
|
dkrbt|�|d<nq:q||d<||�}t|t�rvt
|d	�}|�d
�|�d�|�|�|�d�dS)
Nr)�to_json)r�r�rrazplural-forms�plural_exprr�r�z<// Generated messages javascript file from compiled MO file
zbabel.Translations.load(z
).install();
)�trac.util.presentationrrxrr�rr��
splitlinesrur�lower�
pluralexprrzrlr,)r|r�r�r�rr2r�r�r��liner.�valrrrr��s<

��




r�cCs(t�d|�}|std|f��|�d�S)Nz\bplural\s*=\s*([^;]+)zFailed to parse plural_forms %rr)�re�search�
ValueError�group)�forms�matchrrrr
s
r
cCs(Gdd�dt�}Gdd�dt�}||fS)Nc@seZdZdgejZdS)z%get_command_overriders.<locals>.build)rDNN)r:r;r<�_build�sub_commandsrrrrr src@seZdZdd�Zdd�ZdS)z+get_command_overriders.<locals>.install_libcSs|�d�dS)NrD��run_commandr�rrr�l10n_run%sz4get_command_overriders.<locals>.install_lib.l10n_runcSsF|��|�d�}d|jvrtdd�|jD��s|jd=t�|�dS)N�build_py�
data_filescss*�|]\}}}}tdd�|D��VqdS)css�|]}|�d�VqdS)r�N)�endswith)rdr.rrr�	<genexpr>0s�zLget_command_overriders.<locals>.install_lib.run.<locals>.<genexpr>.<genexpr>N)�any)rd�pkg�src_dir�	build_dir�	filenamesrrrr0s�
�zBget_command_overriders.<locals>.install_lib.run.<locals>.<genexpr>)r�get_finalized_command�__dict__rr�_install_libr�)r rrrrr�'s

��z/get_command_overriders.<locals>.install_lib.runN)r:r;r<rr�rrrrr
$sr
)rr#�rr
rrr�get_command_overriderssr%cCst�\}}||td�S)N)rr
r�)r%r�r$rrr�get_l10n_cmdclass7s
�r&c
CsNt�\}}|j�dd�|j�dd�Gdd�d|�}||tttttttd�	S)Nr�r�N��compile_catalog_jsNc@�eZdZdd�ZdS)z)get_l10n_js_cmdclass.<locals>.install_libcSs"|�d�|�d�|�d�dS)Nr)r�rDrr�rrrrCs

z2get_l10n_js_cmdclass.<locals>.install_lib.l10n_runN�r:r;r<rrrrrr
B�r
)	rr
r��extract_messages_js�init_catalog_jsr)�update_catalog_jsr��check_catalog_js�	r%r�insertr�rBrCrDrEr��rr#r
rrr�get_l10n_js_cmdclass>s
�r4cCsft�\}}|j�dd�|j�dd�|j�dd�Gdd�d|�}||ttttttttttttd�S)Nrr'r()�compile_catalog_traciniNc@r*)z+get_l10n_trac_cmdclass.<locals>.install_libcSs,|�d�|�d�|�d�|�d�dS)Nr5r)r�rDrr�rrrrXs


z4get_l10n_trac_cmdclass.<locals>.install_lib.l10n_runNr+rrrrr
Wr,r
)rr
r�r-r.r)r/r�r0�extract_messages_tracini�init_catalog_tracinir5�update_catalog_tracini�check_catalog_tracinir1r3rrr�get_l10n_trac_cmdclassRs&
�r:cCr5rrrrrrr&nr9cCr5rrrrrrr4pr9cCr5rrrrrrr:rr9)>r��html.parserrr�r�r
�tokenizerrrrr�
jinja2.extrr��	distutilsr	r��
distutils.cmdr
�distutils.command.buildrr�distutils.errorsr�setuptools.command.install_libr
r#rr�babel.messages.catalogr@�babel.messages.extractrA�babel.messages.frontendrBrCrDrE�babel.messages.pofilerF�
babel.supportrG�
babel.utilrHrnrrr�r�r��extract_textr�r�r�r�r�r
r%r&r4r:�ImportErrorrrrr�<module>sh

"�U:"�

https://t.me/RX1948 - 2025