ó
©%�Tc           @   sš   d  „  Z  d „  Z d „  Z e d „ Z e d „ Z d d „ Z e d „ Z d „  Z e	 ƒ  r– e ƒ  Z
 e
 r– e j j e
 ƒ Z e d	 e d
 ƒ q– n  d S(   c         C   s   |  S(   N(    (   t   stri(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt%   get_stable_release_from_server_string   s    c          C   s    t  ƒ  }  |  j d ƒ } | d S(   Nt    i    (   t   coot_versiont   split(   t   st   ls(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt$   get_stable_release_from_coot_version   s    	c         C   sk   d d l  m } | r< t |  ƒ } | r5 | t ƒ  k Sd  Sn+ t |  ƒ } t ƒ  } | | k rg | | k Sd  S(   Niÿÿÿÿ(   t
   StringType(   t   typesR   t   get_revision_from_stringt   svn_revisiont   NoneR   R   (   R    t   is_pre_releaseR   t
   server_revt   server_versiont   this_build_version(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   new_version_on_server   s    	
c         C   s   t  t |  ƒ | ƒ d  S(   N(   t   download_binary_dialogt   coot_split_version_string(   R    t   use_curl(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   notify_of_new_version*   s    c            sÊ   d d  l  } d d  l ‰  t a t a t d k r9 t a n  t ‡  ‡ f d † } | j d ƒ } | j j | ƒ } t	 | ƒ s§ | sŽ t
 d ƒ qÆ t
 d | d d ƒ n | | ƒ t d k rÆ t a n  d  S(	   Niÿÿÿÿt	   cancelledc      	      s�  ‡ f d †  ‰ d „  ‰ d „  ‰ d „  ‰ ‡
 f d †  } d „  } ‡  ‡ ‡ ‡ ‡ ‡ ‡ ‡	 ‡ f	 d †  } ‡ ‡ ‡ ‡
 f d †  ‰ d	 d
 t  ƒ  d d ˆ } t ˆ ƒ ‰ t j t j ƒ ‰
 d } t ƒ  rØ | d 7} n
 | d 7} t j t d ƒ } t j d ƒ ‰  t j d ƒ } t j d ƒ ‰ t j	 t d ƒ } t j
 ƒ  ‰ t j ƒ  }	 t j | ƒ }
 ˆ
 j | ƒ | j ˆ t t d ƒ | j ˆ  t t d ƒ | j | t t d ƒ | j |
 t t d ƒ | j |	 t t d ƒ | j | t t d ƒ | j ˆ t t d ƒ | j d ƒ ˆ
 j | ƒ ˆ
 j d ƒ ˆ  j d | ƒ | j d | ƒ ˆ j d | ƒ ˆ
 j ƒ  ˆ j ƒ  ˆ  j ƒ  ˆ ƒ  d  S(   Nc            sq   t  rm t t  ƒ } | rm | d } | d } ˆ  j | ƒ rj ˆ  j | ƒ rg | | } |  j | ƒ qg qj qm n  d  S(   Ns   content-length-downloads   size-download(   t   file_name_for_progress_bart   curl_progress_infot   isNumberTypet   set_fraction(   t   progress_bart	   curl_infot   v1t   v2t   f(   t   operator(    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   update_progress_barD   s    


c         S   s   |  j  d ƒ d  S(   Ni   (   R   (   R   (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   set_progress_bar_fullP   s    c         S   s
   |  a  d  S(   N(   R   (   t	   file_name(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   set_file_name_funcS   s    c         S   s
   |  a  d  S(   N(   t   pending_install_in_place(   t   val(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   pending_install_in_place_funcW   s    c             s   ˆ  j  ƒ  t S(   N(   t   destroyt   False(   t   args(   t   window(    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   delete_event[   s    
c          W   s   t  r t t  ƒ n  d a t S(   NR   (   R   t   stop_curl_downloadR%   R)   (   R*   (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   cancel_eventa   s    c             s    d d  l  } t j d ˆ ƒ | j ˆ ƒ s8 t d ƒ nd ˆ t ƒ  k rP t a nL ˆ j t	 ƒ ˆ j
 ƒ  ˆ  j
 ƒ  ‡ ‡ ‡ ‡ ‡ ‡ f d †  } t | g  ƒ d  S(   Niÿÿÿÿiô  s!   Failed to communicate with serverc             sA   t  ˆ ˆ ˆ  ˆ ˆ ˆ ƒ }  |  r= t d k r= d GHd a n  d  S(   NR   s   run_download_binary_curl failedt   fail(   t   run_download_binary_curlR%   (   t   ret(   R'   R   t   revisionR$   R   t   version_string(    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   threaded_func   s    		(   R    t   gobjectt   timeout_addR   t   info_dialogt   get_latest_pending_versiont   TrueR%   t   set_sensitiveR)   t   showt   run_python_thread(   R*   R    R4   (	   t   cancel_buttont	   idle_funct	   ok_buttonR'   R   R2   R$   R   R3   (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   ok_button_eventl   s    	

c              s„   t  d k r$ ˆ j ƒ  t d ƒ t St  d k r> ˆ j ƒ  t St  d k rW ˆ ˆ  ƒ n  t  rr ˆ j ƒ  t ƒ  t Sˆ ˆ  ƒ t Sd  S(   NR/   s&   Failure to download and install binaryR   t   full(   R%   R(   R7   R)   t   restart_dialogR9   (    (   R   R"   R!   R+   (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyR>   �   s    




s      New revision available s   for this binary type:   
s   
s	   Download t	   installert   binaryi   s
     Cancel  s	     Close  s     Download and Pre-install t   clicked(   t   coot_sys_build_typeR
   t   gtkt   Windowt   WINDOW_TOPLEVELt
   is_windowst   VBoxR)   t   Buttont   HBoxt   ProgressBart
   HSeparatort   Labelt	   set_titlet
   pack_startR9   t   set_border_widtht   addt   connectt   show_allt   hide(   R   R,   R.   R@   R   t   dialog_namet	   main_vboxt   close_buttont   buttons_hboxt   h_sept   info_string(   R    R3   (   R=   R>   R?   R'   R   R2   R$   R"   R!   R   R+   sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   do_download_dialog@   sT    				'#	



t   COOT_PREFIXs.   COOT_PREFIX is not set.  Download not started.s
   Directory s    is not modifiable.
s   Download/install not started.(   t   osR    R)   t   stop_downloadR   R%   t   getenvt   patht   normpatht   directory_is_modifiable_qmR7   (   R3   R   R`   R^   t   coot_prefix(    (   R    R3   sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyR   1   s$    	–
t    c   
         sZ  ‡  f d †  } ‡  f d †  } t  j t  j ƒ ‰  d } t  j t d ƒ } t  j d ƒ } t  j d ƒ } t  j d |  ƒ } t  j t d ƒ } t  j ƒ  }	 ˆ  j	 | ƒ ˆ  j
 | ƒ ˆ  j d ƒ | j | t t d ƒ | j |	 t t d ƒ | j | t t d ƒ | j | t t d ƒ | j | t t d ƒ | j d	 | ƒ | j d	 | ƒ ˆ  j ƒ  d  S(
   Nc             s   ˆ  j  ƒ  t S(   N(   R(   R)   (   R*   (   R+   (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyR,   æ   s    
c             sr   d } g  } t  ƒ  rM t ƒ  } t j d ƒ } d | d t j ƒ  d g } n  t | | ƒ ˆ  j ƒ  t d ƒ d  S(   Nt   cootR_   s	   /instdir=s
   /startdir=s   /autoupdatei    (   RJ   R8   R`   Rb   t   getcwdt   run_concurrentlyR(   t   coot_real_exit(   R*   t   coot_commandt	   coot_argst
   prefix_dir(   R+   (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyR@   ê   s    		
s)   Restart Required to complete installationi   s	     Later  s     Restart Now  s'     Restart required to complete install i   RE   (   RG   RH   RI   RK   R)   RL   RP   RM   RO   RQ   RT   RS   RR   RU   RV   (
   t
   extra_textR,   R@   RX   RY   R=   R?   t   labelR[   R\   (    (   R+   sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyRB   ä   s*    c            s   d d l  m } d d  l ‰ t a d „  ‰  ‡  ‡ f d †  } t | d ƒ t ƒ  ‰ d a ‡ ‡ ‡ f d †  } t j	 | ƒ d  S(   Niÿÿÿÿ(   R   c         S   s%   d r d |  k r d a  n |  a  d  S(   Ns   The requested URLs   was not found on this servers   file-not-found(   t   server_info_status(   t   txt_from_server(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt%   handle_latest_version_server_response   s    	c             s�   t  ƒ  }  d G|  GHˆ r' t |  ƒ } n: d d  l } y | j |  ƒ j ƒ  } Wn t d ƒ d  SXy ˆ  | ƒ Wn d G|  GHˆ  d ƒ n Xd  S(   Ns   INFO:: get URLiÿÿÿÿs>   Could not establish connection to get latest version on servers6   BL INFO:: problem getting server response from for urls.   The requested URL was not found on this server(   t   make_latest_version_urlt   coot_get_url_as_stringt   urllibt   urlopent   readR7   (   t   urlt   latest_version_server_responseRv   (   Rs   R   (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   get_server_info_status_thread-  s    		
	i    c             sÚ   t  d k r d Gt GHt St d k rX d ˆ  r4 d n d d t ƒ  d }  t |  ƒ t St d	 k rq t d
 ƒ ne t r» t t ˆ  ƒ r– t t ˆ ƒ n! d t t ƒ  ƒ d }  t |  ƒ t Sˆ j	 d ƒ t  d 7a  t
 Sd  S(   NiÐ  s   final fail: server_info_status:s   file-not-founds   No s   pre-releaset   releases    binary for this system (s   ) on the binary server.Rg   s   Can't communicate with servers%   No version newer than this revision (s   ).g{®Gáz„?i   (   t   countRq   R)   RF   R7   R   R   t   strR   t   sleepR9   (   R   (   R   t   timeR   (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   timeout_countI  s(    	


(    (
   R	   R   R€   R)   Rq   R<   t   pre_release_qmR}   R5   t   idle_add(   R   R   R{   R�   (    (   Rs   R   R€   R   sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   check_for_updates_gui  s    		%c    	      C   s  t  ƒ  rd d  l }  t j d ƒ } t j j | d ƒ } t j j | ƒ rt j j | d ƒ } |  j | ƒ } d } | rˆ | d } n  t | ƒ d k rd } x; | D]3 } t j j | ƒ } | | k r§ | } | } q§ q§ Wx- | D]" } | | k rå t j	 | ƒ qå qå Wn  | Sn  d S(   NiÿÿÿÿR_   s   pending-installs   WinCoot*.exeRg   i    i   (
   RJ   t   globR`   Rb   Rc   t   joint   isdirt   lent   getmtimet   remove(	   R…   Rn   t   pending_dirt   installer_globt   installer_filenamest   installer_namet   tmp_timet   filenamet   mtime(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyR8   r  s,    	s   

Found %s to install
s   Please "Restart Now"N(   R   R   R   R)   R   R   RB   R„   R8   RJ   t   pending_version_fullR`   Rc   t   basenamet   pending_version(    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/coot/check_for_updates.pyt   <module>   s   			³4Z			
