home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 February / maximum-cd-2011-02.iso / DiscContents / digsby_setup85.exe / lib / util / mimehelpers.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-11-24  |  3.3 KB  |  90 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4.  
  5. def form_builder(parts):
  6.     form_mime = mimify('multipart', _subtype = 'form-data')
  7.     for props in parts:
  8.         _name = props.get('name')
  9.         _type = props.get('type')
  10.         _val = props.get('value')
  11.         _kws = props.get('kws', { })
  12.         disp_kws = props.get('disposition', { })
  13.         mime_part = _mimifiers.get(_type)(_val, **_kws)
  14.         mime_part.add_header('Content-Disposition', 'form-data', name = _name, **disp_kws)
  15.         form_mime.attach(mime_part)
  16.     
  17.     return form_mime
  18.  
  19. _mimifiers = { }
  20.  
  21. def mimifier(name):
  22.     
  23.     def registerer(f):
  24.         _mimifiers[name] = f
  25.         return f
  26.  
  27.     return registerer
  28.  
  29. _cap_names = {
  30.     'nonmultipart': 'NonMultipart' }
  31.  
  32. def mimify(type, **kwargs):
  33.     cap_name = _cap_names.get(type, type.capitalize())
  34.     mime_mod = getattr(__import__('email.mime.%s' % type).mime, type)
  35.     mime_type = getattr(mime_mod, 'MIME%s' % cap_name)
  36.     return mime_type(**kwargs)
  37.  
  38.  
  39. def mime_text(text, encoding = 'utf8'):
  40.     return mimify('text', _text = text.encode(encoding), _charset = encoding)
  41.  
  42. mime_text = mimifier('text')(mime_text)
  43.  
  44. def mime_text_noenc(text, encoding = 'ascii'):
  45.     mimeobj = mimify('nonmultipart', _maintype = 'text', _subtype = 'plain')
  46.     mimeobj.set_payload(text.encode(encoding))
  47.     mimeobj.set_charset(encoding)
  48.     return mimeobj
  49.  
  50. mime_text_noenc = mimifier('text-noenc')(mime_text_noenc)
  51.  
  52. def mime_app(data):
  53.     return mimify('application', _data = data)
  54.  
  55. mime_app = mimifier('application')(mime_app)
  56.  
  57. def subtype_for_image(data):
  58.     import imghdr
  59.     import os.path as os
  60.     if hasattr(data, 'read') or os.path.exists(data):
  61.         return imghdr.what(data)
  62.     return imghdr.what(None, data)
  63.  
  64.  
  65. def mime_image(data):
  66.     subtype = subtype_for_image(data)
  67.     return mimify('image', _imagedata = data, _subtype = subtype)
  68.  
  69. mime_image = mimifier('image')(mime_image)
  70.  
  71. def mime_image_noenc(data, filename = None):
  72.     import email.encoders as encoders
  73.     subtype = subtype_for_image(data)
  74.     mimeobj = mimify('image', _imagedata = data, _subtype = subtype, _encoder = encoders.encode_noop)
  75.     if filename is not None:
  76.         pass
  77.     
  78.     return mimeobj
  79.  
  80. mime_image_noenc = mimifier('image-noenc')(mime_image_noenc)
  81.  
  82. def mime_data(data):
  83.     import email.encoders as encoders
  84.     mimeobj = mimify('nonmultipart', _maintype = '', _subtype = '')
  85.     mimeobj._headers[:] = []
  86.     mimeobj.set_payload(data)
  87.     return mimeobj
  88.  
  89. mime_data = mimifier('data')(mime_data)
  90.