AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 18.224.54.152
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python2.7/site-packages/babel/messages/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /lib/python2.7/site-packages/babel/messages/frontend.pyo
�
uM�Sc@sRdZddlmZddlmZddlmZddlmZddlm	Z	m
Z
ddlmZddl
Z
dd	lmZddlZddlZddlZdd
lmZddlZddlZddlmZddlmZmZdd
lmZddlmZddlm Z m!Z!m"Z"ddl#m$Z$ddl%m&Z&m'Z'ddl(m)Z)ddl*m+Z+m,Z,ddddddgZ-dZ.defd��YZ/defd��YZ0d�Z1defd��YZ2defd��YZ3de4fd ��YZ5d!�Z6e7d"�Z8gd#�Z9e:d$krNe6�ndS(%s3Frontends for the message extraction functionality.i����(tRawConfigParser(tdatetime(tlog(tCommand(tDistutilsOptionErrortDistutilsSetupError(tgetpreferredencodingN(tOptionParser(tStringIO(t__version__(tLocalet
localedata(tUnknownLocaleError(tCatalog(textract_from_dirtDEFAULT_KEYWORDStDEFAULT_MAPPING(twrite_mo(tread_potwrite_po(tPLURALS(todicttLOCALTZtCommandLineInterfacetcompile_catalogtextract_messagestinit_catalogtcheck_message_extractorstupdate_catalogsrestructuredtext enc	BsVeZdZdZddddddd gZddgZd�Zd�Zd�Z	RS(!s�Catalog compilation command for use in ``setup.py`` scripts.

    If correctly installed, this command is available to Setuptools-using
    setup scripts automatically. For projects using plain old ``distutils``,
    the command needs to be registered explicitly in ``setup.py``::

        from babel.messages.frontend import compile_catalog

        setup(
            ...
            cmdclass = {'compile_catalog': compile_catalog}
        )

    :since: version 0.9
    :see: `Integrating new distutils commands <http://docs.python.org/dist/node32.html>`_
    :see: `setuptools <http://peak.telecommunity.com/DevCenter/setuptools>`_
    s+compile message catalogs to binary MO filessdomain=tDs&domain of PO file (default 'messages')s
directory=tds.path to base directory containing the catalogssinput-file=tisname of the input filesoutput-file=tosQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.po')slocale=tls locale of the catalog to compiles	use-fuzzytfsalso include fuzzy translationst
statisticss#print statistics about translationscCsCd|_d|_d|_d|_d|_t|_t|_dS(Ntmessages(	tdomaintNonet	directoryt
input_filetoutput_filetlocaletFalset	use_fuzzyR#(tself((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pytinitialize_optionsVs						cCsJ|jr#|jr#td��n|jrF|jrFtd��ndS(Ns<you must specify either the input file or the base directory(R(R'RR)(R-((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pytfinalize_options_sc	Cs@g}g}|js!|jr�|j|jtjj|j|jd|jd�f�|jtjj|j|jd|jd��q�x�tj|j�D]}tjj|j|d|jd�}tjj	|�r�|j||f�|jtjj|j|d|jd��q�q�Wnd|j|j|jf�|j
rV|j|j
�n/|jtjj|j|jd|jd��|s�td��nx�t|�D]�\}\}}||}t
|d�}zt||�}Wd|j�X|jr~d}	x.t|�dD]}
|
jr|	d7}	qqWd}t|�r\|	dt|�}ntjd	|	t|�||�n|jr�|jr�tjd
|�q�nxD|j�D]6\}
}x'|D]}
tjd||
j|
�q�Wq�Wtjd||�t
|d
�}zt||d|j�Wd|j�Xq�WdS(NtLC_MESSAGESs.pos.mosno message catalogs foundtriiids)%d of %d messages (%d%%) translated in %rs'catalog %r is marked as fuzzy, skippingserror: %s:%d: %sscompiling catalog %r to %rtwbR,(R(R*tappendtostpathtjoinR'R%tlistdirtexistsR)Rt	enumeratetopenRtcloseR#tlisttstringtlenRtinfotfuzzyR,twarntcheckterrortlinenoR(R-tpo_filestmo_filesR*tpo_filetidxtmo_filetinfiletcatalogt
translatedtmessaget
percentageterrorsRCtoutfile((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pytrungsn			
			
(sdomain=Rs&domain of PO file (default 'messages')(s
directory=Rs.path to base directory containing the catalogs(sinput-file=Rsname of the input file(soutput-file=R sQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.po')(slocale=R!s locale of the catalog to compile(s	use-fuzzyR"salso include fuzzy translationsN(s
statisticsNs#print statistics about translations(
t__name__t
__module__t__doc__tdescriptionR&tuser_optionstboolean_optionsR.R/RQ(((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR/s(				cBs�eZdZdZd,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;gZddddddd#gZd'�Zd(�Zd)�Z	d*�Z
RS(<sjMessage extraction command for use in ``setup.py`` scripts.

    If correctly installed, this command is available to Setuptools-using
    setup scripts automatically. For projects using plain old ``distutils``,
    the command needs to be registered explicitly in ``setup.py``::

        from babel.messages.frontend import extract_messages

        setup(
            ...
            cmdclass = {'extract_messages': extract_messages}
        )

    :see: `Integrating new distutils commands <http://docs.python.org/dist/node32.html>`_
    :see: `setuptools <http://peak.telecommunity.com/DevCenter/setuptools>`_
    s1extract localizable strings from the project codescharset=s!charset to use in the output files	keywords=tksHspace-separated list of keywords to look for in addition to the defaultssno-default-keywordss#do not include the default keywordss
mapping-file=tFs&path to the mapping configuration filesno-locations>do not include location comments with filename and line numbersomit-headers'do not include msgid "" entry in headersoutput-file=R sname of the output fileswidth=tws"set output line width (default 76)sno-wrapsVdo not break long message lines, longer than the output line width, into several linesssort-outputs&generate sorted output (default False)ssort-by-files,sort output by file location (default False)smsgid-bugs-address=sset report address for msgidscopyright-holder=sset copyright holder in outputs
add-comments=tcsuplace comment block with TAG (or those preceding keyword lines) in output file. Seperate multiple TAGs with commas(,)sstrip-commentss)strip the comment TAGs from the comments.sinput-dirs=s/directories that should be scanned for messagescCs�d|_d|_tj�|_t|_d|_t|_	t|_
d|_d|_d|_
t|_t|_t|_d|_d|_d|_g|_t|_dS(Nsutf-8t(tcharsettkeywordsRtcopyt	_keywordsR+tno_default_keywordsR&tmapping_filetno_locationtomit_headerR)t
input_dirstwidthtno_wraptsort_outputtsort_by_filetmsgid_bugs_addresstcopyright_holdertadd_commentst
_add_commentststrip_comments(R-((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR.�s$																c
Csr|jr"|jr"td��n|jr7i|_n|jrb|jjt|jj���n|jsztd��n|jr�|j	r�td��n|jr�|j	r�d|_	n$|j	dk	r�t|j	�|_	n|jr|j
rtd��n|jsMtjg|jjD]}|jdd�d^q�j�|_n|jrn|jjd	�|_ndS(
Ns=you must specify new keywords if you disable the default onessno output file specifieds0'--no-wrap' and '--width' are mutually exclusiveiLs;'--sort-output' and '--sort-by-file' are mutually exclusivet.iit,(RaR^RR`tupdatetparse_keywordstsplitR)RgRfR&tintRhRiRetdicttfromkeystdistributiontpackagestkeysRlRm(R-RX((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR/�s*		"			;	c

s�|j�}t|jd�}zYtd|jj�d|jj�d|jd|jd|j	�}x�|j
�D]�\�\}}�fd�}t�||d|jd	|j
d
|d|j�}x]|D]U\}}	}
}tjjtjj�|��}|j|
d||	fgd|�q�WqpWtjd
|j�t||d|jd|jd|jd|jd|j�Wd|j�XdS(NRZtprojecttversionRjRkR]cs�|dkrdStjjtjj�|��}d}|r|ddjg|j�D]\}}d||f^qS�}ntjd||�dS(NtignoreR\s (%s)s, s%s="%s"sextracting messages from %s%s(R4R5tnormpathR6titemsRR?(tfilenametmethodtoptionstfilepathtoptstrRXtv(tdirname(s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pytcallback)s!3R^tcomment_tagsR�tstrip_comment_tagst
auto_commentsswriting PO template file to %sRfRcRdRhRi(t
_get_mappingsR:R)R
Rwtget_nametget_versionRjRkR]R~RR`RmRnR4R5R}R6taddR&RR?RRfRcRdRhRiR;(
R-tmappingsRPRKt
method_maptoptions_mapR�t	extractedRRDRMtcommentsR�((R�s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRQs4		
		!			cCsYi}|jrlt|jd�}z:t|�\}}x!|jD]}||f||<q@WWd|j�Xn�t|jdd�r1|jj}x�|j	�D]�\}}t
|t�r�tt|��\}}nJgi}}x:|D]2\}}	}
|j
||	f�|
pi||<q�W||f||<q�Wn$x!|jD]}tif||<q;W|S(NtUtmessage_extractors(RbR:t
parse_mappingReR;tgetattrRwR&R�R~t
isinstancet
basestringRR3R(R-R�tfileobjR�R�R�R�tmappingtpatternR�R�((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR�Gs*	
N(scharset=Ns!charset to use in the output file(s	keywords=RXsHspace-separated list of keywords to look for in addition to the defaults(sno-default-keywordsNs#do not include the default keywords(s
mapping-file=RYs&path to the mapping configuration file(sno-locationNs>do not include location comments with filename and line number(somit-headerNs'do not include msgid "" entry in header(soutput-file=R sname of the output file(swidth=RZs"set output line width (default 76)(sno-wrapNsVdo not break long message lines, longer than the output line width, into several lines(ssort-outputNs&generate sorted output (default False)(ssort-by-fileNs,sort output by file location (default False)(smsgid-bugs-address=Nsset report address for msgid(scopyright-holder=Nsset copyright holder in output(s
add-comments=R[suplace comment block with TAG (or those preceding keyword lines) in output file. Seperate multiple TAGs with commas(,)(sstrip-commentsNs)strip the comment TAGs from the comments.(sinput-dirs=Ns/directories that should be scanned for messages(RRRSRTRUR&RVRWR.R/RQR�(((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR�sP				)cCs"t|t�std��ndS(s�Validate the ``message_extractors`` keyword argument to ``setup()``.

    :param dist: the distutils/setuptools ``Distribution`` object
    :param name: the name of the keyword argument (should always be
                 "message_extractors")
    :param value: the value of the keyword argument
    :raise `DistutilsSetupError`: if the value is not valid
    :see: `Adding setup() arguments
           <http://peak.telecommunity.com/DevCenter/setuptools#adding-setup-arguments>`_
    sDthe value of the "message_extractors" parameter must be a dictionaryN(R�RuR(tdisttnametvalue((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRfscBsDeZdZdZdddddgZd�Zd�Zd�ZRS(sfNew catalog initialization command for use in ``setup.py`` scripts.

    If correctly installed, this command is available to Setuptools-using
    setup scripts automatically. For projects using plain old ``distutils``,
    the command needs to be registered explicitly in ``setup.py``::

        from babel.messages.frontend import init_catalog

        setup(
            ...
            cmdclass = {'init_catalog': init_catalog}
        )

    :see: `Integrating new distutils commands <http://docs.python.org/dist/node32.html>`_
    :see: `setuptools <http://peak.telecommunity.com/DevCenter/setuptools>`_
    s(create a new catalog based on a POT filesdomain=Rs&domain of PO file (default 'messages')sinput-file=Rsname of the input filesoutput-dir=Rspath to output directorysoutput-file=R sQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.po')slocale=R!s$locale for the new localized catalogcCs1d|_d|_d|_d|_d|_dS(NR$(R&t
output_dirR)R(R*R%(R-((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR.�s
				cCs	|jstd��n|js0td��nytj|j�|_Wntk
rj}t|��nX|jr�|jr�td��n|js�t	j
j|j|jd|jd�|_nt	j
j
t	j
j|j��st	jt	j
j|j��ndS(Nsyou must specify the input files-you must provide a locale for the new catalogs%you must specify the output directoryR0s.po(R(RR*R
tparset_localeRR)R�R4R5R6R%R8R�tmakedirs(R-te((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR/�s			!cCs�tjd|j|j�t|jd�}zt|d|j�}Wd|j�X|j|_t	|_
t|jd�}zt||�Wd|j�XdS(Nscreating catalog %r based on %rR1R*RZ(RR?R)R(R:RR*R;R�R+R@R(R-RJRKRP((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRQ�s
	(sdomain=Rs&domain of PO file (default 'messages')(sinput-file=Rsname of the input file(soutput-dir=Rspath to output directory(soutput-file=R sQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.po')(slocale=R!s$locale for the new localized catalog(RRRSRTRURVR.R/RQ(((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRws			c
Bs\eZdZdZdddd d!d#d$d%gZdddgZd�Zd�Zd�Z	RS(&syCatalog merging command for use in ``setup.py`` scripts.

    If correctly installed, this command is available to Setuptools-using
    setup scripts automatically. For projects using plain old ``distutils``,
    the command needs to be registered explicitly in ``setup.py``::

        from babel.messages.frontend import update_catalog

        setup(
            ...
            cmdclass = {'update_catalog': update_catalog}
        )

    :since: version 0.9
    :see: `Integrating new distutils commands <http://docs.python.org/dist/node32.html>`_
    :see: `setuptools <http://peak.telecommunity.com/DevCenter/setuptools>`_
    s'update message catalogs from a POT filesdomain=Rs&domain of PO file (default 'messages')sinput-file=Rsname of the input filesoutput-dir=Rs.path to base directory containing the catalogssoutput-file=R sQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.po')slocale=R!s locale of the catalog to compilesignore-obsolete=s1whether to omit obsolete messages from the outputsno-fuzzy-matchingtNsdo not use fuzzy matchingtpreviouss+keep previous msgids of translated messagestignore_obsoletetno_fuzzy_matchingcCsLd|_d|_d|_d|_d|_t|_t|_t|_	dS(NR$(
R%R&R(R�R)R*R+R�R�R�(R-((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR.�s							cCs|jstd��n|jr;|jr;td��n|jr]|jr]td��n|jr{|jr{t|_ndS(Nsyou must specify the input files-you must specify the output file or directorysyou must specify the locale(R(RR)R�R*R�R�R+(R-((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR/�s	cCs�g}|js�|jrS|j|jtjj|j|jd|jd�f�q�x�tj|j�D]S}tjj|j|d|jd�}tjj	|�rf|j||f�qfqfWn|j|j|jf�|j}|stjj
tjj|j��d}nt
|jd�}zt|�}Wd|j�X|sUtd��nx]|D]U\}}tjd||j�t
|d�}zt|d|d|�}Wd|j�X|j||j�tjjtjj|�tj�tjj|��}	t
|	d	�}
y5z#t|
|d
|jd|j�Wd|
j�XWntj|	��nXytj|	|�Wq\tk
r�tj|�tj|	|�tj|	�q\Xq\WdS(NR0s.poiR�sno message catalogs foundsupdating catalog %r based on %rR*R%RZR�tinclude_previous( R)R*R3R4R5R6R�R%R7R8tsplitexttbasenameR(R:RR;RRR?RqR�R�ttempfilet
gettempprefixRR�R�tremovetrenametOSErrortshutilR_(R-RER*RGR%RJttemplateRRKttmpnamettmpfile((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRQsd			(
		


(sdomain=Rs&domain of PO file (default 'messages')(sinput-file=Rsname of the input file(soutput-dir=Rs.path to base directory containing the catalogs(soutput-file=R sQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.po')(slocale=R!s locale of the catalog to compileN(signore-obsolete=Ns1whether to omit obsolete messages from the output(sno-fuzzy-matchingR�sdo not use fuzzy matching(spreviousNs+keep previous msgids of translated messages(
RRRSRTRUR&RVRWR.R/RQ(((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR�s,		
	cBs�eZdZdZdeZidd6dd6dd6d	d
6Zejd�Z	d�Z
d
�Zd�Zd�Z
d�Zd�ZRS(s�Command-line interface.

    This class provides a simple command-line interface to the message
    extraction and PO file generation functionality.
    s%%prog %s [options] %ss	%%prog %ss$compile message catalogs to MO filestcompiles:extract messages from source files and generate a POT filetextracts+create new message catalogs from a POT filetinits0update existing message catalogs from a POT fileRqcCstd|jdd|j�|_|jj�|j|j_|jjddddd	d
d�|jjdd
dddddtj	d
d�|jjdddddddtj
d
d�|jjdtdtj
�|jj|d�\}}|j|j�|jr�tj�}tg|D]}t|�^q#�}|j�d|d}xV|D]N}tj|�}|||jf}	|	jtjjp�t�p�dd�GHq]WdS|s�|jjd�n|d}
|
|j kr�|jjd|
�nt!||
�|d�S(s{Main entry point of the command-line interface.

        :param argv: list of arguments passed on the command-line
        tusagetcommands[args]R{s--list-localestdesttlist_localestactiont
store_truethelps print all known locales and exits-vs	--verbosetstore_consttlogleveltconstsprint as much as possibles-qs--quietsprint as little as possibleiu
%%-%ds %%stasciitreplaceisQno valid command or option passed. Try the -h/--help option for more information.sunknown command "%s"(scommands[args]("RR�R{tparsertdisable_interspersed_argst_helpt
print_helpt
add_optiontloggingtDEBUGtERRORtset_defaultsR+tINFOt
parse_argst_configure_loggingR�R�RR<tmaxR>tsortR
R�tenglish_nametencodetsyststdouttencodingRRCtcommandsR�(R-targvR�targstidentifierst
identifiertlongesttformatR*toutputtcmdname((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRQ^sD
	%

	
cCs�tjd�|_|jj|�|jjrA|jjd}ntj�}|jj|�|j|�tjd�}|j|�dS(Ntbabelis%(message)s(	R�t	getLoggerRtsetLevelthandlerst
StreamHandlert
addHandlert	FormattertsetFormatter(R-R�thandlert	formatter((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR��s
cCs�|jj�GHdGHtg|jD]}t|�^q �}dtd|d�}|jj�}|j�x#|D]\}}|||fGHqrWdS(Ns	commands:s  %%-%ds %%sii(R�tformat_helpR�R�R>R~R�(R-R�R�R�R�R�RU((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR��s(
c	Cs�td|jd9d|jd�}|jddddd	d
�|jdddd
ddd	d�|jddddddd	d�|jddddddd	d�|jddddddd	d�|jdd dd!d"d#d	d$�|jd%dd&d"d#d	d'�|jdd(d!td)td&t�|j|�\}}g}g}|jsy|jsm|j	d*�n|j
r�|j|j
tj
j|j|j
d+|jd,�f�|jtj
j|j|j
d+|jd-��q�xtj|j�D]}tj
j|j|d+|jd,�}tj
j|�r�|j||f�|jtj
j|j|d+|jd-��q�q�Wn}|j|j
|jf�|jr�|j|j�nH|js�|j	d*�n|jtj
j|j|j
d+|jd-��|s|j	d.�nx�t|�D]�\}	\}}||	}
t|d/�}zt||�}Wd0|j�X|jr�d1}
x.t|�d2D]}|jr�|
d27}
q�q�Wd1}t|�r�|
d3t|�}n|jjd4|
t|�||�n|jr|jr|jjd5|�qnxG|j �D]9\}}x*|D]"}|jj	d6||j!|�q?Wq,W|jjd7||
�t|
d8�}zt"||d!|j�Wd0|j�XqWd0S(:s�Subcommand for compiling a message catalog to a MO file.

        :param argv: the command arguments
        :since: version 0.9
        R�R�R\RUs--domains-DR�R%R�s.domain of MO and PO files (default '%default')s--directorys-dR'tmetavartDIRsbase directory of catalog filess--locales-lR*tLOCALEslocale of the catalogs--input-files-iR(tFILEsname of the input files
--output-files-oR)sQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.mo')s--use-fuzzys-fR,R�R�s2also include fuzzy translations (default %default)s--statisticsR#s#print statistics about translationsR$tcompile_alls<you must specify either the input file or the base directoryR0s.pos.mosno message catalogs foundR1Niiids)%d of %d messages (%d%%) translated in %rs'catalog %r is marked as fuzzy, skippingserror: %s:%d: %sscompiling catalog %r to %rR2(scompileR\(#RR�R�R�R�R+R�R(R'RCR*R3R4R5R6R%R7R8R)R9R:RR;R#R<R=R>RR?R@R,RARBRDR(R-R�R�R�R�RERFR*RGRHRIRJRKRLRMRNRORCRP((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR��s�


						
		
csctd�jdWd�jd�}|jddddd	�|jd
dddd
ddd�|jdddd
ddd�|jdddddd�|jdddd
ddd�|jdddd
ddd�|jdddd dd!�|jd"d#dd$d%d&dd'�|jd(dd)d
ddd*�|jd+dd,d
ddd-�|jd.dd/d
ddd0�|jd1dd2d3d4dd5�|jd6dd7dd8�|jd9dd:dd;�|jd<dd=dd>�|jd?d@ddAd3dBd
dddC�|jdDdEddFd
dddG�|jddHdgdtdtdtd$dNd)td,td/tdAgdFt�|j|�\}}|s�|jdI�n|j	dXkr�t
|j	dK�}n	tj}t
j�}|jr|js�|jdL�ni}n|jr#|jt|j��n|jret
|jdM�}zt|�\}}	WdN|j�Xnt}i}	|jr�|jr�|jdO�n |jr�|jr�dP|_n|jr�|jr�|jdQ�nzptd:|jd=|jd2|jd7|jd|j �}
x�|D]��t!j"j#��sA|jdR��n��fdS�}t$�||	||j%dT|dF|j&�}x]|D]U\}
}}}t!j"j't!j"j(�|
��}|
j)|dN||fgdU|�q�WqW|j	dYkr
�j*j+dV|j	�nt,||
d$|jd|j-d|j.d,|jd/|j�WdN|j	r^|j�nXdNS(Zs�Subcommand for extracting messages from source files and generating
        a POT file.

        :param argv: the command arguments
        R�R�sdir1 <dir2> ...RUs	--charsetR�R]R�s1charset to use in the output (default "%default")s-ks	--keywordR^R�R3shkeywords to look for in addition to the defaults. You can specify multiple -k flags on the command line.s--no-default-keywordsRaR�s#do not include the default keywordss	--mappings-FRbs#path to the extraction mapping files
--no-locationRcs>do not include location comments with filename and line numbers
--omit-headerRds'do not include msgid "" entry in headers-os--outputR�spath to the output POT files-ws--widthRfttypeRts"set output line width (default 76)s	--no-wrapRgsVdo not break long message lines, longer than the output line width, into several liness
--sort-outputRhs&generate sorted output (default False)s--sort-by-fileRis,sort output by file location (default False)s--msgid-bugs-addressRjR�s
EMAIL@ADDRESSsset report address for msgids--copyright-holderRksset copyright holder in outputs	--projectRzsset project name in outputs	--versionR{sset project version in outputs--add-commentss-cR�tTAGsiplace comment block with TAG (or those preceding keyword lines) in output file. One TAG per argument calls--strip-comment-tagss-sR�s)Strip the comment tags from the comments.sutf-8sincorrect number of argumentst-RZs=you must specify new keywords if you disable the default onesR�Ns1'--no-wrap' and '--width' are mutually exclusive.iLs;'--sort-output' and '--sort-by-file' are mutually exclusives%r is not a directorycs�|dkrdStjjtjj�|��}d}|r|ddjg|j�D]\}}d||f^qS�}n�jjd||�dS(NR|R\s (%s)s, s%s="%s"sextracting messages from %s%s(R4R5R}R6R~RR?(RR�R�R�R�RXR�(R�R-(s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR�s!3R�R�swriting PO template file to %s(sextractsdir1 <dir2> ...(NR�(NR�(/RR�R�R�R�R+R&R�RCR�R:R�R�RR_RaR^RqRrRbR�R;RRfRgRhRiR
RzR{RjRkR]R4R5tisdirRR�R�R}R6R�RR?RRcRd(R-R�R�R�R�RPR^R�R�R�RKR�R�RRDRMR�R�((R�R-s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR�s�
									
!				c
	Cs�td|jd)d|jd�}|jddddd	d
�|jdddd
ddd	d�|jddddddd	d�|jddddddd	d�|jddddddd	d�|jdd�|j|�\}}|js|jd �nytj	|j�}Wn t
k
r=}|j|�nX|jsW|jd!�n|jr{|j
r{|jd"�n|js�tjj|j
|jd#|jd$�|_ntjjtjj|j��s�tjtjj|j��nt|jd%�}zt|d|j�}Wd&|j�X||_tjt�|_|jjd'|j|j�t|jd(�}	zt|	|�Wd&|	j�Xd&S(*srSubcommand for creating new message catalogs from a template.

        :param argv: the command arguments
        R�R�R\RUs--domains-DR�R%R�s&domain of PO file (default '%default')s--input-files-iR(R�R�sname of the input files--output-dirs-dR�R�spath to output directorys
--output-files-oR)sQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.po')s--locales-lR*R�s$locale for the new localized catalogR$s-you must provide a locale for the new catalogsyou must specify the input files-you must specify the output file or directoryR0s.poR1Nscreating catalog %r based on %rRZ(sinitR\(RR�R�R�R�R�R*RCR
R�RR(R)R�R4R5R6R%R8R�R�R:RR;RtnowRt
revision_dateRR?R(
R-R�R�R�R�R*R�RJRKRP((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR��sV

				!	
cCs�td|jd8d|jd�}|jddddd	d
�|jdddd
ddd	d�|jddddddd	d�|jddddddd	d�|jddddddd	d�|jddd d!d"d	d#�|jd$d%dd&d!d"d	d'�|jd(dd)d!d"d	d*�|jdd+d td&td)t�|j|�\}}|jsw|jd,�n|j	r�|j
r�|jd-�n|j	r�|jr�|jd.�n|jr�|j
r�t|_
ng}|j	s�|jr/|j|jtjj|j
|jd/|jd0�f�q�x�tj|j
�D]S}tjj|j
|d/|jd0�}tjj|�rB|j||f�qBqBWn|j|j|j	f�|j}|s�tjjtjj|j��d1}nt|jd2�}	zt|	�}
Wd3|	j�X|s2|jd4�nx`|D]X\}}|jjd5||j�t|d2�}	zt|	d|d|�}Wd3|	j�X|j|
|j�tjjtjj|�tj�tjj|��}
t|
d6�}y5z#t ||d |j!d7|j
�Wd3|j�XWntj"|
��nXytj#|
|�Wq9t$k
r�tj"|�t%j&|
|�tj"|
�q9Xq9Wd3S(9s�Subcommand for updating existing message catalogs from a template.

        :param argv: the command arguments
        :since: version 0.9
        R�RqR\RUs--domains-DR�R%R�s&domain of PO file (default '%default')s--input-files-iR(R�R�sname of the input files--output-dirs-dR�R�spath to output directorys
--output-files-oR)sQname of the output file (default '<output_dir>/<locale>/LC_MESSAGES/<domain>.po')s--locales-lR*R�s"locale of the translations catalogs--ignore-obsoleteR�R�R�sAdo not include obsolete messages in the output (default %default)s--no-fuzzy-matchings-NR�s,do not use fuzzy matching (default %default)s
--previousR�s>keep previous msgids of translated messages (default %default)R$syou must specify the input files-you must specify the output file or directorysyou must specify the localeR0s.poiR�Nsno message catalogs foundsupdating catalog %r based on %rRZR�(supdateR\('RR�R�R�R�R+R�R(RCR)R�R*R�R�R3R4R5R6R%R7R8R�R�R:RR;RR?RqR�R�R�RR�R�R�R�R�R_(R-R�R�R�R�RER*RGR%RJR�RRKR�R�((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRq�s�


					(
		


(RRRSRTR�tVERSIONR{R�R�R�RQR�R�R�R�R�Rq(((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRNs

.		
	k	�	@cCst�jtj�S(N(RRQR�R�(((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pytmainQscCs4i}g}i}t�}t|j�|_|j||�x�|j�D]�}|dkrtt|j|��}qJg|jdd�D]}|j�^q�\}}	|j	|	|f�t|j|��||	<qJW|r*xLt
|�D];\}
\}	}||kr||}n|	|f||
<q�Wn||fS(s]Parse an extraction method mapping from a file-like object.

    >>> buf = StringIO('''
    ... [extractors]
    ... custom = mypackage.module:myfunc
    ... 
    ... # Python source files
    ... [python: **.py]
    ...
    ... # Genshi templates
    ... [genshi: **/templates/**.html]
    ... include_attrs =
    ... [genshi: **/templates/**.txt]
    ... template_class = genshi.template:TextTemplate
    ... encoding = latin-1
    ... 
    ... # Some custom extractor
    ... [custom: **/custom/*.*]
    ... ''')

    >>> method_map, options_map = parse_mapping(buf)
    >>> len(method_map)
    4

    >>> method_map[0]
    ('**.py', 'python')
    >>> options_map['**.py']
    {}
    >>> method_map[1]
    ('**/templates/**.html', 'genshi')
    >>> options_map['**/templates/**.html']['include_attrs']
    ''
    >>> method_map[2]
    ('**/templates/**.txt', 'genshi')
    >>> options_map['**/templates/**.txt']['template_class']
    'genshi.template:TextTemplate'
    >>> options_map['**/templates/**.txt']['encoding']
    'latin-1'

    >>> method_map[3]
    ('**/custom/*.*', 'mypackage.module:myfunc')
    >>> options_map['**/custom/*.*']
    {}

    :param fileobj: a readable file-like object containing the configuration
                    text to parse
    :return: a `(method_map, options_map)` tuple
    :rtype: `tuple`
    :see: `extract_from_directory`
    t
extractorst:i(RRt	_sectionstreadfptsectionsRuR~RststripR3R9(R�RR�R�R�R�tsectiontpartR�R�RH((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyR�Ts$3	1
cCs�i}x�|D]�}d|kr7|jd�\}}n
|d}}||kr
|r�tg|jd�D]}t|�^qi�}n|||<q
q
W|S(s)Parse keywords specifications from the given list of strings.

    >>> kw = parse_keywords(['_', 'dgettext:2', 'dngettext:2,3']).items()
    >>> kw.sort()
    >>> for keyword, indices in kw:
    ...     print (keyword, indices)
    ('_', None)
    ('dgettext', (2,))
    ('dngettext', (2, 3))
    R�RpN(RsR&ttupleRt(tstringsR^R=tfuncnametindicestx((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyRr�s

1t__main__(;RTtConfigParserRRt	distutilsRt
distutils.cmdRtdistutils.errorsRRR*RR�toptparseRR4treR�RR�R�R�R	R�R
Rt
babel.coreRtbabel.messages.catalogR
tbabel.messages.extractRRRtbabel.messages.mofileRtbabel.messages.pofileRRtbabel.messages.pluralsRt
babel.utilRRt__all__t
__docformat__RRRRRtobjectRR�R&R�RrRR(((s;/usr/lib/python2.7/site-packages/babel/messages/frontend.pyt<module>sN	�	S���	J

Anon7 - 2022
AnonSec Team