Current Path : /usr/lib/python2.7/dist-packages/apport/crashdb_impl/ |
Current File : //usr/lib/python2.7/dist-packages/apport/crashdb_impl/multipartpost_handler.pyc |
5Oc @ s d Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d d YZ d Z d e j f d YZ d Z e d k r e n d S( s Usage: Enables the use of multipart/form-data for posting forms Inspirations: Upload files in python: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306 urllib2_file: Fabien Seisen: <fabien@seisen.org> Example: import MultipartPostHandler, urllib2, cookielib cookies = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies), MultipartPostHandler.MultipartPostHandler) params = { "username" : "bob", "password" : "riviera", "file" : open("filename", "rb") } opener.open("http://wwww.bobsite.com/upload/", params) Further Example: The main function of this file is a sample which downloads a page and then uploads it to the W3C validator. iNt Callablec B s e Z d Z RS( c C s | | _ d S( N( t __call__( t selft anycallable( ( sM /usr/lib/python2.7/dist-packages/apport/crashdb_impl/multipartpost_handler.pyt __init__/ s ( t __name__t __module__R ( ( ( sM /usr/lib/python2.7/dist-packages/apport/crashdb_impl/multipartpost_handler.pyR . s i t MultipartPostHandlerc B sB e Z e j j d Z d Z d d d Z e e Z e Z RS( i c C s | j } | d k rt | t k rg } g } y\ xU | j D]G \ } } t | t k rz | j | | f qF | j | | f qF WWn; t k r t j \ } } } t d j | n Xt | d k r t j | t } nz | j | | \ } } d | } | j d ra| j d j d d k rad | j d d f GHn | j d | | j | n | S( Ns1 not a valid non-string sequence or mapping objecti s multipart/form-data; boundary=%ss Content-Types multipart/form-datas Replacing %s with %ss content-type( t get_datat Nonet typet strt itemst filet appendt TypeErrort syst exc_infot with_tracebackt lent urllibt urlencodet doseqt multipart_encodet has_headert get_headert findt add_unredirected_headert add_data( R t requestt datat v_filest v_varst keyt valuet systypet tracebackt boundaryt contenttype( ( sM /usr/lib/python2.7/dist-packages/apport/crashdb_impl/multipartpost_handler.pyt http_request9 s, c C s( | d k r t j } n | d k r0 d } n xB | D]: \ } } | d | 7} | d | 7} | d | d 7} q7 Wx | D] \ } } | j j d d } t j | d p d } | d | 7} | d | | f 7} | d | 7} | j d | d | j d 7} q| W| d | 7} | | f S( Nt s --%s s) Content-Disposition: form-data; name="%s"s s t /ii s application/octet-streams: Content-Disposition: form-data; name="%s"; filename="%s" s Content-Type: %s s --%s-- ( R t mimetoolst choose_boundaryt namet splitt mimetypest guess_typet seekt read( t varst filesR% t bufferR! R"