Spade
Mini Shell
| Directory:~$ /proc/self/root/usr/lib/python2.7/site-packages/babel/messages/ |
| [Home] [System Details] [Kill Me] |
�
��Mc@s�dZddlmZmZddlZddlZddlmZddlm Z m
Z
ddlmZm
Z
mZddgZd Zd
�Zd�Zdded�Zejd
�Zd�Zddd�Zdeeeeeed�ZdS(s�Reading
and writing of files in the ``gettext`` PO (portable object)
format.
:see: `The Format of PO Files
<http://www.gnu.org/software/gettext/manual/gettext.html#PO-Files>`_
i����(tdatetdatetimeN(t__version__(tCatalogtMessage(tsettwraptexttLOCALTZtread_potwrite_posrestructuredtext
encCsG|dd!jdd�jdd�jdd�jd d
�jdd�S(
s�Reverse `escape` the given string.
>>> print unescape('"Say:\\n \\"hello,
world!\\"\\n"')
Say:
"hello, world!"
<BLANKLINE>
:param string: the string to unescape
:return: the unescaped string
:rtype: `str` or `unicode`
ii����s\\s\s\ts s\rs
s\ns
s\"s"(treplace(tstring((s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pytunescape
s
cCs^|jd�rPg}x+|j�dD]}|jt|��q&Wdj|�St|�SdS(s.Reverse
the normalization done by the `normalize` function.
>>> print denormalize(r'''""
... "Say:\n"
... " \"hello, world!\"\n"''')
Say:
"hello, world!"
<BLANKLINE>
>>> print denormalize(r'''""
... "Say:\n"
... " \"Lorem ipsum dolor sit "
... "amet, consectetur adipisicing"
... " elit, \"\n"''')
Say:
"Lorem ipsum dolor sit amet, consectetur adipisicing elit,
"
<BLANKLINE>
:param string: the string to denormalize
:return: the denormalized string
:rtype: `unicode` or `str`
s""itN(t
startswitht
splitlinestappendRtjoin(Rtlinestline((s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pytdenormalize2s
cstd|d|��dg�dg�g� g�g�g�g�
g�tg�
tg�tg�������� �
���
fd������ ��fd�}x t|j��D]�\}}|j�}t|t�s|j�j�}n|j d�r�t�d<�d<� r7�r7��n|dj d�r�x\|d j
�j�D]j}|jd�}|dkrayt
||d�}Wntk
r�qanX�j|| |f�qaqaWq�|dj d
�rx�|d j
�jd
�D]} �j| j��q�Wq�|dj d�rVt�
d<|||d j
��q�|dj d�r�|d j�}
|
r��j|
�q�q��
j|dj��q�|||�q�W� r���nG�dr�s��
s��r� jd
��jdd
g���n�S(s�Read
messages from a ``gettext`` PO (portable object) file from the given
file-like object and return a `Catalog`.
>>> from StringIO import StringIO
>>> buf = StringIO('''
... #: main.py:1
... #, fuzzy, python-format
... msgid "foo %(name)s"
... msgstr ""
...
... # A user comment
... #. An auto comment
... #: main.py:3
... msgid "bar"
... msgid_plural "baz"
... msgstr[0] ""
... msgstr[1] ""
... ''')
>>> catalog = read_po(buf)
>>> catalog.revision_date = datetime(2007, 04, 01)
>>> for message in catalog:
... if message.id:
... print (message.id, message.string)
... print ' ', (message.locations, message.flags)
... print ' ', (message.user_comments,
message.auto_comments)
(u'foo %(name)s', '')
([(u'main.py', 1)], set([u'fuzzy',
u'python-format']))
([], [])
((u'bar', u'baz'), ('', ''))
([(u'main.py', 3)], set([]))
([u'A user comment'], [u'An auto comment'])
:param fileobj: the file-like object to read the PO file from
:param locale: the locale identifier or `Locale` object, or `None`
if the catalog is not bound to a locale (which basically
means it's a template)
:param domain: the message domain
:param ignore_obsolete: whether to ignore obsolete messages in the
input
:return: an iterator over ``(message, translation, location)`` tuples
:rtype: ``iterator``
tlocaletdomainic
s�� j�t��dkrDtg�D]}t|�^q&�}nt�d�}t|ttf�r�g}xSt�j�D]B}y|j� |�Wqt k
r�|j|df�qXqWtg|D]}t|d�^q��}nt� dd�}t
||t��t����
d�dd�}�dr]�sg|�j|<qgn
|�|<�2� 2�2�2�2�
2t
�d<�dcd7<dS(NiiR
tlineno(tsorttlenttupleRt
isinstancetlisttrangetnum_pluralsRt
IndexErrorRRtobsoletetFalse(tmtmsgidRtidxtttmessage(t
auto_commentstcatalogtcountertflagstignore_obsoletet locationstmessagesR
toffsetttranslationst
user_comments(s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt_add_message�s6
(
,
cs�|jd�r9t�d<|dj�}�j|�nM|jd�r�t�d<|�d<|dj�}�r|��n�j|�n�|jd�r"t�d<t�d<|dj�}|jd�r|d jd
d �\}}�jt|�|j�g�q��jd|g�nd|jd�r��drX�dcd
|j�7<q��dr��dd cd
|j�7<q�ndS(Ntmsgid_pluraliiR#itmsgstrit[it]t"i����u
(RtTruetlstripRR!tsplittinttrstrip(RRtmsgttxtR$(R1tin_msgidt in_msgstrR-R.R/(s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt_process_message_line�s0
"
t#it:it,t~t.u(RR!t enumeratet readlineststripRtunicodetdecodetcharsetRR8R9trfindR:t
ValueErrorRR7(tfileobjRRR+R@RRtlocationtpostflagtcomment((R1R'R(R)R*R+R>R?R,R-R
R.R/R0s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyRQsd+ -
!
sL(\s+|[^\s\w]*\w+[a-zA-Z]-(?=\w+[a-zA-Z])|(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))cCsDd|jdd�jdd�jdd�jdd �jd
d�S(s4Escape the given string so that it can be included in
double-quoted
strings in ``PO`` files.
>>> escape('''Say:
... "hello, world!"
... ''')
'"Say:\\n \\"hello, world!\\"\\n"'
:param string: the string to escape
:return: the escaped string
:rtype: `str` or `unicode`
s"%s"s\s\\s s\ts
s\rs
s\ns"s\"(R
(R((s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pytescape�s
R
iLc Cs�|r9|dkr9t|�}g}x!t|jt��D]�\}}tt|��||kr%tj|�}|j�x�|r!g}d} xu|rtt|d��d|}
| |
|kr�|j|j ��| |
7} q�|s|j|j ��nPq�W|jdj
|��q~Wq:|j|�q:Wn|jt�}t|�dkrdt|�S|r�|dr�|d=|dcd7<nddj
g|D]}
|t|
�^q��S( s�Convert a string into a format that is appropriate
for .po files.
>>> print normalize('''Say:
... "hello, world!"
... ''', width=None)
""
"Say:\n"
" \"hello, world!\"\n"
>>> print normalize('''Say:
... "Lorem ipsum dolor sit amet, consectetur adipisicing elit,
"
... ''', width=32)
""
"Say:\n"
" \"Lorem ipsum dolor sit "
"amet, consectetur adipisicing"
" elit, \"\n"
:param string: the string to normalize
:param prefix: a string that should be prepended to every line
:param width: the maximum line width; use `None`, 0, or a negative
number
to completely disable line wrapping
:return: the normalized string
:rtype: `unicode`
iii����uis
u""
u
(RRFRR7RStWORD_SEPR9treverseRtpopR(Rtprefixtwidtht prefixlenRR$Rtchunkstbuftsizetl((s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt normalizes6"
c
s�d��fd����fd��d��fd�} d���fd�}
t��}|rs|j�n|r�|jd��nx�|D]�}|js%|r�q�n�j}
�r�dkrg}x0|
j�D]"}|t|d�d d
�7}q�Wdj|�d}
n�|
�nx|jD]}| |�q/Wx!|jD]}| |dd
�qMW|s�djg|j D]+\}}d|j
tjd�|f^q}�}| |dd�n|j
r��ddjdgt|j
���n|jrc|rc| d�|jd�dd�t|j�dkrc| d�|jd�dd�qcn|
|��d�q�W|s�xR�jj�D]>}x|jD]}| |�q�W|
|dd��d�q�WndS(s\Write a ``gettext`` PO (portable
object) template file for a given
message catalog to the provided file-like object.
>>> catalog = Catalog()
>>> catalog.add(u'foo %(name)s',
locations=[('main.py', 1)],
... flags=('fuzzy',))
>>> catalog.add((u'bar', u'baz'),
locations=[('main.py', 3)])
>>> from StringIO import StringIO
>>> buf = StringIO()
>>> write_po(buf, catalog, omit_header=True)
>>> print buf.getvalue()
#: main.py:1
#, fuzzy, python-format
msgid "foo %(name)s"
msgstr ""
<BLANKLINE>
#: main.py:3
msgid "bar"
msgid_plural "baz"
msgstr[0] ""
msgstr[1] ""
<BLANKLINE>
<BLANKLINE>
:param fileobj: the file-like object to write to
:param catalog: the `Catalog` instance
:param width: the maximum line width for the generated output; use
`None`,
0, or a negative number to completely disable line
wrapping
:param no_location: do not emit a location comment for every message
:param omit_header: do not include the ``msgid ""`` entry at
the top of the
output
:param sort_output: whether to sort the messages in the output by msgid
:param sort_by_file: whether to sort the messages in the output by
their
locations
:param ignore_obsolete: whether to ignore obsolete messages and not
include
them in the output; by default they are
included as
comments
:param include_previous: include the old msgid as a comment when
updating the catalog
R
cs%t|d|d��j�jd�S(NRWRXtbackslashreplace(R^tencodeRK(tkeyRW(R(RX(s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt
_normalizeqscs5t|t�r$|j�j�}n�j|�dS(N(RRIR`RKtwrite(ttext(R(RN(s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt_writeuscsY�r�dkr�}nd}x1t||�D]
}�d||j�f�q1WdS(NiiLs#%s %s
(RRH(RRRWt_widthR(ReRX(s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt_write_commentzs
cst|jttf�r��d|�|jd|�f��d|�|jd|�f�x�t�j�D]Q}y|j|}Wntk
r�d}nX�d||�||�f�qpWnF�d|�|j|�f��d|�|jpd|�f�dS(Ns%smsgid
%s
is%smsgid_plural %s
iR
s%smsgstr[%d] %s
s%smsgstr %s
(RtidRRRRRR(R&RWR$R(RbReR((s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt_write_message�s$
!
cSst|j|j�S(N(tcmpR,(txty((s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt<lambda>�siRXtsubsequent_indents#
u
RWREu u%s:%dt/RBs#%s
s, smsgid %st|ismsgid_plural %ss
s#~ N(RRRhtheader_commentRRRR0R'R,R
tostsepR*tprevious_idRR
tvalues(RNR(RXtno_locationtomit_headertsort_outputtsort_by_fileR+tinclude_previousRgRiR-R&tcomment_headerRRRRtfilenameRtlocs((RbReR(RNRXs9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyR Fs\+
; *
(t__doc__RRRrtretbabelRtVERSIONtbabel.messages.catalogRRt
babel.utilRRRt__all__t
__docformat__RRtNoneR!RtcompileRTRSR^R (((s9/usr/lib/python2.7/site-packages/babel/messages/pofile.pyt<module>s" � >