;
Ñâ"Ic               @   s»   d  Z  d d l Td d l m Z d d l m Z d d l m Z d d l m	 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 Gd „  d	 e ƒ Z d S(
   u`   distutils.command.upload

Implements the Distutils 'upload' subcommand (upload package to PyPI).i    (   u   *(   u   PyPIRCCommand(   u   spawn(   u   log(   u   md5Nc             B   s[   |  Ee  Z d  Z e j d d g Z e j d g Z d „  Z d „  Z d	 „  Z d
 „  Z	 d S(   u   upload binary package to PyPIu   signu   su   sign files to upload using gpgu	   identity=u   iu   GPG identity used to sign filesc             C   s>   t  j |  ƒ d |  _ d |  _ d |  _ d |  _ d  |  _ d  S(   Nu    i    F(	   u   PyPIRCCommandu   initialize_optionsu   usernameu   passwordu   show_responseu   Falseu   signu   Noneu   identity(   u   self(    (    u5   /mit/python/lib/python3.0/distutils/command/upload.pyu   initialize_options   s    				c             C   s‡   t  j |  ƒ |  j o |  j o t d ƒ ‚ n |  j ƒ  } | i  k o8 | d |  _ | d |  _ | d |  _ | d |  _	 n d  S(   Nu.   Must use --sign for --identity to have meaningu   usernameu   passwordu
   repositoryu   realm(
   u   PyPIRCCommandu   finalize_optionsu   identityu   signu   DistutilsOptionErroru   _read_pypircu   usernameu   passwordu
   repositoryu   realm(   u   selfu   config(    (    u5   /mit/python/lib/python3.0/distutils/command/upload.pyu   finalize_options&   s    c             C   sT   |  j  j p t d ƒ ‚ n x0 |  j  j D]" \ } } } |  j | | | ƒ q* Wd  S(   Nu'   No dist file created in earlier command(   u   distributionu
   dist_filesu   DistutilsOptionErroru   upload_file(   u   selfu   commandu	   pyversionu   filename(    (    u5   /mit/python/lib/python3.0/distutils/command/upload.pyu   run3   s
     c             C   sß  |  j  oP d d d | g } |  j o d |  j g | d d … <n t | d |  j ƒn t | d ƒ j ƒ  } |  j j } i d d	 6d
 d 6| j ƒ  d 6| j	 ƒ  d 6t
 j j | ƒ | f d 6| d 6| d 6t | ƒ j ƒ  d 6d d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d 6| j ƒ  d  6} d! } | d" k o4 t j ƒ  \ }	 }
 } |	 o d# |	 |
 f } qn( | d$ k o d% t j d& d' ƒ } n | | d( <|  j  o4 t
 j j | ƒ d) t | d) ƒ j ƒ  f | d* <n d+ t j |  j  d, |  j! ƒ j" ƒ  } d- } d. | } | d/ } t# j$ ƒ  } x | j% ƒ  D]ò \ } } t& | ƒ t& g  ƒ k o | g } n x½ | D]µ } t& | ƒ t' k o d0 | d1 } | d' } n d! } t( | ƒ } | j) | ƒ | j) d2 | ƒ | j) | ƒ | j) d3 ƒ | j) | ƒ | o" | d4 d5 k o | j) d6 ƒ qÜqÜWq£W| j) | ƒ | j) d6 ƒ | j* ƒ  } |  j+ d7 | |  j, f t- j. ƒ t/ j0 j1 |  j, ƒ \ } } } } } } | o | o | p t2 ‚ | d8 k o | j3 j4 | ƒ } n4 | d9 k o | j3 j5 | ƒ } n t2 d: | ƒ ‚ d! } t- j. } yu | j6 ƒ  | j7 d; | ƒ | j8 d< d= | ƒ | j8 d> t( t9 | ƒ ƒ ƒ | j8 d? | ƒ | j: ƒ  | j; | ƒ WnG t< j= k
 o8 } z" |  j+ t( | ƒ t- j> ƒ d  SWYd  d  } ~ Xn X| j? ƒ  } | j@ d@ k o' |  j+ dA | j@ | jA f t- j. ƒ n$ |  j+ dB | j@ | jA f t- j> ƒ |  jB o" tC dC dD | j ƒ  dC dD ƒ n d  S(E   Nu   gpgu   --detach-signu   -au   --local-useri   u   dry_runu   rbu   file_uploadu   :actionu   1u   protcol_versionu   nameu   versionu   contentu   filetypeu	   pyversionu
   md5_digestu   1.0u   metadata_versionu   summaryu	   home_pageu   authoru   author_emailu   licenseu   descriptionu   keywordsu   platformu   classifiersu   download_urlu   providesu   requiresu	   obsoletesu    u	   bdist_rpmu   built for %s %su
   bdist_dumbu   built for %su   tersei   u   commentu   .ascu   gpg_signatureu   Basic u   :u3   --------------GHSKFJDLGDS7543FJKLFHRE75642756743254u   
--u   --u   ;filename="%s"i    u*   
Content-Disposition: form-data; name="%s"u   

iÿÿÿÿu   u   
u   Submitting %s to %su   httpu   httpsu   unsupported schema u   POSTu   Content-typeu    multipart/form-data; boundary=%su   Content-lengthu   AuthorizationiÈ   u   Server response (%s): %su   Upload failed (%s): %su   -iK   (D   u   signu   identityu   spawnu   dry_runu   openu   readu   distributionu   metadatau   get_nameu   get_versionu   osu   pathu   basenameu   md5u	   hexdigestu   get_descriptionu   get_urlu   get_contactu   get_contact_emailu   get_licenceu   get_long_descriptionu   get_keywordsu   get_platformsu   get_classifiersu   get_download_urlu   get_providesu   get_requiresu   get_obsoletesu   platformu   distu   base64u   encodestringu   usernameu   passwordu   stripu   iou   StringIOu   itemsu   typeu   tupleu   stru   writeu   getvalueu   announceu
   repositoryu   logu   INFOu   urllibu   parseu   urlparseu   AssertionErroru   clientu   HTTPConnectionu   HTTPSConnectionu   connectu
   putrequestu	   putheaderu   lenu
   endheadersu   sendu   socketu   erroru   ERRORu   getresponseu   statusu   reasonu   show_responseu   print(   u   selfu   commandu	   pyversionu   filenameu   gpg_argsu   contentu   metau   datau   commentu   distu   versionu   idu   authu   boundaryu   sep_boundaryu   end_boundaryu   bodyu   keyu   valueu   fnu   schemau   netlocu   urlu   paramsu   queryu	   fragmentsu   httpu   loglevelu   eu   r(    (    u5   /mit/python/lib/python3.0/distutils/command/upload.pyu   upload_file9   sÄ    

	

!'

   '	
	


N(   u   signu   su   sign files to upload using gpg(   u	   identity=u   iu   GPG identity used to sign files(
   u   __name__u
   __module__u   descriptionu   PyPIRCCommandu   user_optionsu   boolean_optionsu   initialize_optionsu   finalize_optionsu   runu   upload_file(   u
   __locals__(    (    u5   /mit/python/lib/python3.0/distutils/command/upload.pyu   upload   s   
 
			u   upload(   u   __doc__u   distutils.errorsu   distutils.coreu   PyPIRCCommandu   distutils.spawnu   spawnu	   distutilsu   logu   hashlibu   md5u   osu   socketu   platformu   configparseru   http.clientu   httpu   base64u   urllib.parseu   urllibu   upload(    (    (    u5   /mit/python/lib/python3.0/distutils/command/upload.pyu   <module>   s   
