/usr/lib/python2.6/site-packages/babel/messages
NameSizeModeActions
catalog.py310610644editdlrm
catalog.pyc303970644editdlrm
checkers.py60940644editdlrm
checkers.pyc56910644editdlrm
extract.py226950644editdlrm
extract.pyc174330644editdlrm
frontend.py522120644editdlrm
frontend.pyc422090644editdlrm
jslexer.py53170644editdlrm
jslexer.pyc51870644editdlrm
mofile.py69530644editdlrm
mofile.pyc55890644editdlrm
plurals.py66960644editdlrm
plurals.pyc66240644editdlrm
pofile.py163200644editdlrm
pofile.pyc145690644editdlrm
__init__.py2490644editdlrm
__init__.pyc3990644editdlrm
Edit: /usr/lib/python2.6/site-packages/babel/messages/frontend.pyc (42209B)
zDVc@s\dZyddklZWn#ej oddklZnXddklZddklZddkl Z ddk l Z l Z ddk lZddkZdd klZddkZddkZddkZddkZddkZdd klZdd klZlZdd klZdd klZddk l!Z!l"Z"l#Z#ddk$l%Z%ddk&l'Z'l(Z(ddk)l*Z*l+Z+ddk,l-Z-l.Z.l/Z/de fdYZ0de fdYZ1dZ2de fdYZ3de fdYZ4de5fdYZ6dZ7e8dZ9gd Z:e;d!jo e7ndS("s babel.messages.frontend ~~~~~~~~~~~~~~~~~~~~~~~ Frontends for the message extraction functionality. :copyright: (c) 2013 by the Babel Team. :license: BSD, see LICENSE for more details. i(tRawConfigParser(tdatetime(tlog(tCommand(tDistutilsOptionErrortDistutilsSetupError(tgetpreferredencodingN(t OptionParser(t __version__(tLocalet localedata(tUnknownLocaleError(tCatalog(textract_from_dirtDEFAULT_KEYWORDStDEFAULT_MAPPING(twrite_mo(tread_potwrite_po(todicttLOCALTZ(t string_typestBytesIOtPY2tcompile_catalogc BsVeZdZdZddddddd gZddgZdZdZdZ RS(!sCatalog 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} ) .. versionadded:: 0.9 s+compile message catalogs to binary MO filessdomain=tDs&domain of PO file (default 'messages')s directory=tds.path to base directory containing the catalogss input-file=tisname of the input files output-file=tosQname of the output file (default '//LC_MESSAGES/.mo')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_filet output_filetlocaletFalset use_fuzzyR(tself((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pytinitialize_optionsNs      cCsP|i o|i otdn|i o|i otdndS(Ns<you must specify either the input file or the base directorys=you must specify either the output file or the base directory(R$R#RR%(R)((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pytfinalize_optionsWscCsSg}g}|ip|iok|i|itii|i|id|idf|itii|i|id|idqxti|iD]}tii|i|d|id}tii |oC|i||f|itii|i|d|idqqWng|i|i|if|i o|i|i n0|itii|i|id|id|pt dnxt |D]\}\}}||}t |d}zt||}Wd|iX|iod} x0t|dD]} | io| d7} qqWd} t|o| dt|} ntid | t|| |n|io"|i otid |qnxD|iD]6\} } x'| D]} tid || i| qWqWtid ||t |d }zt||d|iWd|iXqWdS(Nt LC_MESSAGESs.pos.mosno message catalogs foundtrbiiids)%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 enumeratetopenRtcloseRtlisttstringtlenRtinfotfuzzyR(twarntcheckterrortlinenoR(R)tpo_filestmo_filesR&tpo_filetidxtmo_filetinfiletcatalogt translatedtmessaget percentageterrorsR?toutfile((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pytrun_sx            (sdomain=Rs&domain of PO file (default 'messages')(s directory=Rs.path to base directory containing the catalogs(s input-file=Rsname of the input file(s output-file=RsQname of the output file (default '//LC_MESSAGES/.mo')(slocale=Rs locale of the catalog to compile(s use-fuzzyRsalso include fuzzy translationsN(s statisticsNs#print statistics about translations( t__name__t __module__t__doc__t descriptionR"t user_optionstboolean_optionsR*R+RM(((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyR)s(   textract_messagescBseZdZdZd,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;gZdd ddddd#gZd'Zd(Zd)Z d*Z RS(<sMessage 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} ) 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 files no-locations>do not include location comments with filename and line numbers omit-headers'do not include msgid "" entry in headers output-file=Rsname 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 liness sort-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. Separate multiple TAGs with commas(,)sstrip-commentss)strip the comment TAGs from the comments.s input-dirs=s]directories that should be scanned for messages. Separate multiple directories with commas(,)cCsd|_d|_ti|_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_filet no_locationt omit_headerR%t input_dirstwidthtno_wrapt sort_outputt sort_by_filetmsgid_bugs_addresstcopyright_holdert add_commentst _add_commentststrip_comments(R)((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyR*s$                cCs|io|i otdn|io h|_n|io#|iit|iin|iptdn|io|i otdn|i o|i o d|_ n'|i dj ot |i |_ n|i o|i otdn|iotid|i|_nJtig}|iiD]}||iddd qQ~i|_|io|iid |_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 exclusives,\s*t.iit,(R^R[RR]tupdatetparse_keywordstsplitR%RdRcR"tintReRfRbtretdicttfromkeyst distributiontpackagestkeysRiRj(R)t_[1]RU((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyR+s,   #    < cs|i}t|id}zbtd|iid|iid|id|id|i }x|i D]\\}}fd}t ||d|i d |i d |d |i}xf|D]^\}} } } } tiitii|} |i| d| | fgd | d | qWqpWtid|it||d|id|id|id|id|iWd|iXdS(NR.tprojecttversionRgRhRZcs|djodStiitii|}d}|oHddig}|iD]\}}|d||fqZ~}ntid||dS(NtignoreRYs (%s)s, s%s="%s"sextracting messages from %s%s(R0R1tnormpathR2titemsRR;(tfilenametmethodtoptionstfilepathtoptstrRxRUtv(tdirname(s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pytcallback!s !8R[t comment_tagsRtstrip_comment_tagst auto_commentstcontextswriting PO template file to %sRcR`RaReRf(t _get_mappingsR6R%R Rutget_namet get_versionRgRhRZR}R R]RjRkR0R1R|R2taddR"RR;RRcR`RaReRfR7(R)tmappingsRLRGt method_mapt options_mapRt extractedR~R@RItcommentsRR((Rs6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRMs8         !   c Cs`h}|io^t|id}z:t|\}}x!|iD]}||f||do not include location comments with filename and line number(s omit-headerNs'do not include msgid "" entry in header(s output-file=Rsname of the output file(swidth=RWs"set output line width (default 76)(sno-wrapNsVdo not break long message lines, longer than the output line width, into several lines(s sort-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=RXsuplace comment block with TAG (or those preceding keyword lines) in output file. Separate multiple TAGs with commas(,)(sstrip-commentsNs)strip the comment TAGs from the comments.(s input-dirs=Ns]directories that should be scanned for messages. Separate multiple directories with commas(,)( RNRORPRQR"RRRSR*R+RMR(((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRTsP     ! )cCs8|djptt|tptdndS(sgValidate 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 RsDthe value of the "message_extractors" parameter must be a dictionaryN(tAssertionErrorRRsR(tdisttnametvalue((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pytcheck_message_extractors^s t init_catalogc BsSeZdZdZddddddd gZdgZdZdZdZ RS(!sNew 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} ) s(create a new catalog based on a POT filesdomain=Rs&domain of PO file (default 'messages')s input-file=Rsname of the input files output-dir=Rspath to output directorys output-file=RsQname of the output file (default '//LC_MESSAGES/.po')slocale=Rs$locale for the new localized catalogswidth=RWs"set output line width (default 76)sno-wrapsVdo not break long message lines, longer than the output line width, into several linescCsCd|_d|_d|_d|_d|_t|_d|_dS(NR ( R"t output_dirR%R$R&R!R'RdRc(R)((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyR*s      c Cs|iptdn|iptdnyti|i|_Wn!tj o}t|nX|i o|i otdn|ip/t i i |i|id|i d|_nt i i t i i|ip t it i i|in|io|iotdn|i o|i o d|_n'|idj ot|i|_ndS(Nsyou must specify the input files-you must provide a locale for the new catalogs%you must specify the output directoryR,s.pos0'--no-wrap' and '--width' are mutually exclusiveiL(R$RR&R tparset_localeR R%RR0R1R2R!R4RtmakedirsRdRcR"Rq(R)te((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyR+s*   "  c Cstid|i|it|id}zt|d|i}Wd|iX|i|_t i t |_ t |_t|id}zt||d|iWd|iXdS(Nscreating catalog %r based on %rR-R&R.Rc(RR;R%R$R6RR&R7RRtnowRt revision_dateR'R<RRc(R)RFRGRL((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRMs    (sdomain=Rs&domain of PO file (default 'messages')(s input-file=Rsname of the input file(s output-dir=Rspath to output directory(s output-file=RsQname of the output file (default '//LC_MESSAGES/.po')(slocale=Rs$locale for the new localized catalog(swidth=RWs"set output line width (default 76)N(sno-wrapNsVdo not break long message lines, longer than the output line width, into several lines( RNRORPRQR"RRRSR*R+RM(((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRms(    tupdate_catalogc BsbeZdZdZd"d#d$d%d&d'd)d*d+d,g ZdddgZdZd Zd!Z RS(-sCatalog 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} ) .. versionadded:: 0.9 s'update message catalogs from a POT filesdomain=Rs&domain of PO file (default 'messages')s input-file=Rsname of the input files output-dir=Rs.path to base directory containing the catalogss output-file=RsQname of the output file (default '//LC_MESSAGES/.po')slocale=Rs locale of the catalog to compileswidth=RWs"set output line width (default 76)sno-wrapsVdo not break long message lines, longer than the output line width, into several linessignore-obsolete=s1whether to omit obsolete messages from the outputsno-fuzzy-matchingtNsdo not use fuzzy matchingtpreviouss+keep previous msgids of translated messagestignore_obsoletetno_fuzzy_matchingcCs^d|_d|_d|_d|_d|_d|_t|_t|_ t|_ t|_ dS(NR ( R!R"R$RR%R&RcR'RdRRR(R)((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyR*s         cCs|iptdn|i o|i otdn|io|i otdn|io|iotdn|i o|i o d|_n'|idj ot|i|_n|i o|i o t |_ ndS(Nsyou must specify the input files-you must specify the output file or directorysyou must specify the locales0'--no-wrap' and '--width' are mutually exclusiveiL( R$RR%RR&RdRcR"RqRRR'(R)((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyR+s  c Csg}|ip|io<|i|itii|i|id|idfqxti|iD]U}tii|i|d|id}tii |o|i||fqiqiWn|i|i|if|i}|p)tii tii |i d}nt |i d}zt|}Wd|iX|ptdnxh|D]`\}}tid||i t |d}zt|d|d|}Wd|iX|i||itiitii|titii |} t | d } y>z,t| |d |id |id |iWd| iXWnti| nXyti| |Wqftj o1ti|ti | |ti| qfXqfWdS( NR,s.poiR-sno message catalogs foundsupdating catalog %r based on %rR&R!R.Rtinclude_previousRc(!R%R&R/R0R1R2RR!R3R4tsplitexttbasenameR$R6RR7RRR;RnRRttempfilet gettempprefixRRRRctremovetrenametOSErrortshutilR\( R)RAR&RCR!RFttemplateR~RGttmpnamettmpfile((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRMsh    )          (sdomain=Rs&domain of PO file (default 'messages')(s input-file=Rsname of the input file(s output-dir=Rs.path to base directory containing the catalogs(s output-file=RsQname of the output file (default '//LC_MESSAGES/.po')(slocale=Rs locale of the catalog to compile(swidth=RWs"set output line width (default 76)N(sno-wrapNsVdo not break long message lines, longer than the output line width, into several lines(signore-obsolete=Ns1whether to omit obsolete messages from the output(sno-fuzzy-matchingRsdo not use fuzzy matching(spreviousNs+keep previous msgids of translated messages( RNRORPRQR"RRRSR*R+RM(((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRs4  tCommandLineInterfacecBseZdZdZdeZhdd6dd6dd6d d 6Zeid Z d Z d Z dZ dZ dZdZRS(sCommand-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 fileRnc Cs#td|idd|i|_|ii|i|i_|iiddddd d d |iid d dddddti d d|iidddddddti d d|ii dt dti |ii|d\}}|i|i|ioti}tg}|D]}|t|q(~}|id|d}xX|D]P}ti|} ||| if} | itiiptpddGHqfWdS|p|iidn|d} | |i jo|iid| nt!|| |dS(s{Main entry point of the command-line interface. :param argv: list of arguments passed on the command-line tusagetcommands[args]Rzs--list-localestdestt list_localestactiont store_truethelps print all known locales and exits-vs --verboset store_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]("RRRztparsertdisable_interspersed_argst_helpt print_helpt add_optiontloggingtDEBUGtERRORt set_defaultsR'tINFOt parse_argst_configure_loggingRRR tlocale_identifierstmaxR:tsortR Rt english_nametencodetsyststdouttencodingRR?tcommandsR( R)targvRtargst identifiersRxt identifiertlongesttformatR&toutputtcmdname((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRMmsF   -   cCstid|_|ii||iio|iid}nti}|ii||i|tid}|i|dS(Ntbabelis %(message)s( Rt getLoggerRtsetLevelthandlerst StreamHandlert addHandlert Formattert setFormatter(R)Rthandlert formatter((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRs   cCs|iiGHdGHtg}|iD]}|t|q$~}dtd|d}t|ii}x#|D]\}}|||fGHqvWdS(Ns commands:s %%-%ds %%sii(Rt format_helpRRR:tsortedR}(R)RxRRRRRRQ((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRs0 cCstd|id:d|id}|iddddd d |id d dd ddd d|iddddddd d|iddddddd d|iddddddd d|idd dd!d"d#d d$|id%dd&d"d#d d'|idd(d!td)td&t|i|\}}g}g}|ip,|ip|i d*n|i ok|i |i t i i|i|i d+|id,f|i t i i|i|i d+|id-qxt i|iD]}t i i|i|d+|id,}t i i|oC|i ||f|i t i i|i|d+|id-qqWn|i |i |if|io|i |inK|ip|i d.n|i t i i|i|i d+|id-|p|i d/nxt|D]\} \}}|| } t|d0} zt| |} Wd1| iX|iod2} x0t| d3D]}|io| d37} qqWd2}t| o| d4t| }n|iid5| t| ||n| io%|i o|iid6|q'nxG| i D]9\}}x*|D]"}|ii d7||i!|qVWqCW|iid8|| t| d9}zt"|| d!|iWd1|iXq'Wd1S(;sSubcommand for compiling a message catalog to a MO file. :param argv: the command arguments :since: version 0.9 RRRYRQs--domains-DRR!Rs.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 '//LC_MESSAGES/.mo')s --use-fuzzys-fR(RRs2also include fuzzy translations (default %default)s --statisticsRs#print statistics about translationsR t compile_alls<you must specify either the input file or the base directoryR,s.pos.mos=you must specify either the output file or the base directorysno message catalogs foundR-Niiids)%d of %d messages (%d%%) translated in %rs'catalog %r is marked as fuzzy, skippingserror: %s:%d: %sscompiling catalog %r to %rR.(scompileRY(#RRRRRR'RR$R#R?R&R/R0R1R2R!R3R4R%R5R6RR7RR8R9R:RR;R<R(twarningR>R@R(R)RRRRRARBR&RCRDRERFRGRHRIRJRKR?RL((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRs                   cstdidYdid}|iddddd |id d dd d ddd|idddd ddd|idddddd|idddd ddd|idddd ddd|idddd dd!|id"d#dd$d%d&dd'|id(dd)d ddd*|id+dd,d ddd-|id.dd/d ddd0|id1dd2d3d4dd5|id6dd7dd8|id9dd:dd;|id<dd=dd>|id?d@ddAd3dBd dddC|idDdEddFd dddG|iddHd gdtdtdtd$dLd)td,td/tdAgdFt |i|\}}|p|idInt i }|i o%|i p|idJnh}n|i o|i t|i n|io:t|idK}zt|\}}WdL|iXn t}h}|io|io|idMn$|i o|i o dN|_n|io|io|idOntd:|id=|id2|id7|id|i} x|D]tii p|idPnfdQ} t!||||i"dR| dF|i#} xf| D]^\} } }}}tii$tii%| }| i&|dL|| fgdS|dT|qiWqW| i}|i'dZjo3i(i)dV|i't|i'dW}t*}nDt+i,}t- o,t.|dXo|i/| _|i0i1}nt}z>t2|| d$|id|i3d|i4d,|id/|iWdL|o|in|| _XdLS([sSubcommand for extracting messages from source files and generating a POT file. :param argv: the command arguments RRsdir1 ...RQs --charsetRRZRs1charset to use in the output (default "%default")s-ks --keywordR[RR/shkeywords to look for in addition to the defaults. You can specify multiple -k flags on the command line.s--no-default-keywordsR^Rs#do not include the default keywordss --mappings-FR_s#path to the extraction mapping files --no-locationR`s>do not include location comments with filename and line numbers --omit-headerRas'do not include msgid "" entry in headers-os--outputRspath to the output POT files-ws--widthRcttypeRqs"set output line width (default 76)s --no-wrapRdsVdo not break long message lines, longer than the output line width, into several liness --sort-outputRes&generate sorted output (default False)s--sort-by-fileRfs,sort output by file location (default False)s--msgid-bugs-addressRgRs EMAIL@ADDRESSsset report address for msgids--copyright-holderRhsset copyright holder in outputs --projectRysset project name in outputs --versionRzsset project version in outputs--add-commentss-cRtTAGsiplace comment block with TAG (or those preceding keyword lines) in output file. One TAG per argument calls--strip-comment-tagss-sRs)Strip the comment tags from the comments.sutf-8sincorrect number of argumentss=you must specify new keywords if you disable the default onesRNs1'--no-wrap' and '--width' are mutually exclusive.iLs;'--sort-output' and '--sort-by-file' are mutually exclusives%r is not a directorycs|djodStiitii|}d}|oHddig}|iD]\}}|d||fqZ~}niid||dS(NR{RYs (%s)s, s%s="%s"sextracting messages from %s%s(R0R1R|R2R}RR;(R~RRRRRxRUR(R)R(s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRs !8RRRt-swriting PO template file to %sR.tbuffer(sextractsdir1 ...(NR(5RRRRRR'R"RR?RR\R^R[RnRoR_R6RR7RRcRdReRfR RyRzRgRhRZR0R1tisdirR RRR|R2RRRR;tTrueRRRthasattrRRtrawRR`Ra(R)RRRRR[RRRRGRRR~R@RIRRRtcatalog_charsetRLt close_output((RR)s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRs                   !       c Cs6td|id6d|id}|iddddd d |id d dd ddd d|iddddddd d|iddddddd d|iddddddd d|idd dd!d"d#d d$|id%dd&d'd(d d)|idd*|i|\}}|ip|id+nyti |i}Wn"t j o}|i|nX|i p|id,n|i o|i o|id-n|i p/tii|i |id.|id/|_ ntiitii|i p titii|i n|io|io|id0n$|i o|i o d1|_nt|i d2}zt|d|i}Wd3|iX||_tit|_|iid4|i |i t|i d5} zt | |d!|iWd3| iXd3S(7srSubcommand for creating new message catalogs from a template. :param argv: the command arguments RRRYRQs--domains-DRR!Rs&domain of PO file (default '%default')s --input-files-iR$RRsname of the input files --output-dirs-dRRspath to output directorys --output-files-oR%sQname of the output file (default '//LC_MESSAGES/.po')s--locales-lR&Rs$locale for the new localized catalogs-ws--widthRcRRqs"set output line width (default 76)s --no-wrapRdRRsVdo not break long message lines, longer than the output line width, into several linesR s-you must provide a locale for the new catalogsyou must specify the input files-you must specify the output file or directoryR,s.pos1'--no-wrap' and '--width' are mutually exclusive.iLtrNscreating catalog %r based on %rR.(sinitRY(!RRRRRRR&R?R RR R$R%RR0R1R2R!R4RRRcRdR6RR7RRRRRR;R( R)RRRRR&RRFRGRL((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRsf      "     cCsBtd|idCd|id}|iddddd d |id d dd ddd d|iddddddd d|iddddddd d|iddddddd d|idd dd!d"d#d d$|id%dd&d'd(d d)|id*dd+d'd(d d,|id-d.dd/d'd(d d0|id1dd2d'd(d d3|idd4d+td/td2t|i|\}}|ip|id5n|i o|i o|id6n|i o|i o|id7n|i o|i o t|_ ng}|i p|i o<|i|i tii|i |i d8|id9fqxti|i D]U}tii|i |d8|id9}tii|o|i||fqqWn|i|i |i f|i}|p)tiitii|id:}nt|id;} zt| } Wd<| iX|p|id=n|io|io|id>n$|i o|i o d?|_nxk|D]c\}} |iid@| |it| d;} zt| d|d|} Wd<| iX| i| |i tiitii| t i!tii| } t| dA}y>z,t"|| d+|i#dB|i d!|iWd<|iXWnti$| nXyti%| | Wqt&j o1ti$| t'i(| | ti$| qXqWd<S(DsSubcommand for updating existing message catalogs from a template. :param argv: the command arguments :since: version 0.9 RRnRYRQs--domains-DRR!Rs&domain of PO file (default '%default')s --input-files-iR$RRsname of the input files --output-dirs-dRRspath to output directorys --output-files-oR%sQname of the output file (default '//LC_MESSAGES/.po')s--locales-lR&Rs"locale of the translations catalogs-ws--widthRcRRqs"set output line width (default 76)s --no-wrapRdRRsVdo not break long message lines, longer than the output line width, into several liness--ignore-obsoleteRsAdo not include obsolete messages in the output (default %default)s--no-fuzzy-matchings-NRs,do not use fuzzy matching (default %default)s --previousRs>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 localeR,s.poiRNsno message catalogs founds1'--no-wrap' and '--width' are mutually exclusive.iLsupdating catalog %r based on %rR.R(supdateRY()RRRRRR'RR$R?R%RR&RRR/R0R1R2R!R3R4RRR6RR7RcRdRR;RnRRRRRRRRRR\(R)RRRRRAR&RCR!RFRR~RGRR((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRns          )           (RNRORPRtVERSIONRzRRRRMRRRRRRn(((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyR]s  .  k IcCstitiS(N(RRMRR(((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pytmain~sc CsBh}g}h}t}t|i|_|i||x|iD]}|djot|i|}qJg}|iddD]}||iq~\} } |i | | ft|i||| >> buf = BytesIO(b''' ... [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 :see: `extract_from_directory` t extractorst:i( RRt _sectionstreadfptsectionsRsR}RptstripR/R5( RR~RRRRtsectionRxtpartRRRD((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRs(1   9  cCsh}x|D]}d|jo|id\}}n|d}}||jo|oug}x\|idD]K}|ddjo!|it|d dfqp|it|qpWt|}n|||>> kw = parse_keywords(['_', 'dgettext:2', 'dngettext:2,3', 'pgettext:1c,2']).items() >>> kw.sort() >>> for keyword, indices in kw: ... print (keyword, indices) ('_', None) ('dgettext', (2,)) ('dngettext', (2, 3)) ('pgettext', ((1, 'c'), 2)) RRmiRXN(RpR"R/Rqttuple(tstringsR[R9tfuncnametindicestindstx((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyRos"    !t__main__(<RPt ConfigParserRt ImportErrort configparserRt distutilsRt distutils.cmdRtdistutils.errorsRRR&RRtoptparseRR0RrRRRRRRR R t babel.coreR tbabel.messages.catalogR tbabel.messages.extractR RRtbabel.messages.mofileRtbabel.messages.pofileRRt babel.utilRRt babel._compatRRRRRTRRRtobjectRRR"RRoRN(((s6/tmp/pip-build-lt8jXN/Babel/babel/messages/frontend.pyt sL      } `#  I