Ñò ž²Hc@s=dZddkZddkZdgZdZed„ZdS(s¿Writing of files in the ``gettext`` MO (machine object) format. :since: version 0.9 :see: `The Format of MO Files `_ iÿÿÿÿNtwrite_mosrestructuredtext encCsÑt|ƒ}|p;g}|dD]}|ip ||q"q"~|d)n|iƒd}}g}x†|D]~} | ioÔdig} | iD]} | | i|iƒq“~ ƒ} g} xXt| i ƒD]G\} }|p'| i | it t | ƒdƒƒqÎ| i |ƒqÎWdig}| D]}||i|iƒq*~ƒ}nN| ii|iƒ} | i p| ii|iƒ}n| i i|iƒ}|i t |ƒt | ƒt |ƒt |ƒfƒ|| d7}||d7}qoWd dt |ƒ}|t |ƒ}g}g}xB|D]:\}}}}||||g7}||||g7}q(W||}|itiddd t |ƒddt |ƒd d d ƒtid |ƒiƒ||ƒd S(s¶Write a catalog to the specified file-like object using the GNU MO file format. >>> from babel.messages import Catalog >>> from gettext import GNUTranslations >>> from StringIO import StringIO >>> catalog = Catalog(locale='en_US') >>> catalog.add('foo', 'Voh') >>> catalog.add((u'bar', u'baz'), (u'Bahr', u'Batz')) >>> catalog.add('fuz', 'Futz', flags=['fuzzy']) >>> catalog.add('Fizz', '') >>> catalog.add(('Fuzz', 'Fuzzes'), ('', '')) >>> buf = StringIO() >>> write_mo(buf, catalog) >>> buf.seek(0) >>> translations = GNUTranslations(fp=buf) >>> translations.ugettext('foo') u'Voh' >>> translations.ungettext('bar', 'baz', 1) u'Bahr' >>> translations.ungettext('bar', 'baz', 2) u'Batz' >>> translations.ugettext('fuz') u'fuz' >>> translations.ugettext('Fizz') u'Fizz' >>> translations.ugettext('Fuzz') u'Fuzz' >>> translations.ugettext('Fuzzes') u'Fuzzes' :param fileobj: the file-like object to write to :param catalog: the `Catalog` instance :param use_fuzzy: whether translations marked as "fuzzy" should be included in the output ittiiitIiiiiiilÞ*iitiNiii(tlisttfuzzytsortt pluralizabletjointidtencodetcharsett enumeratetstringtappendtmintinttlentwritetstructtpacktarrayttostring(tfileobjtcatalogt use_fuzzytmessagest_[1]tmtidststrstoffsetstmessaget_[2]tmsgidtmsgstrstidxRt_[3]tmsgstrtkeystartt valuestarttkoffsetstvoffsetsto1tl1to2tl2((s9/usr/lib/python2.6/site-packages/babel/messages/mofile.pyRsJ' ;   3 '4 1 (t__doc__RRt__all__t __docformat__tFalseR(((s9/usr/lib/python2.6/site-packages/babel/messages/mofile.pyts