ó
ÉÝ{Tc           @   s¹   d  Z  d d l Z d d l Z d d l m Z d d l Td d l Z d d l Z d d l Z d „  Z	 d d l
 Z
 d e
 j f d „  ƒ  YZ d e j f d	 „  ƒ  YZ d
 „  Z d „  Z d S(   s—  
     python/ui/history.py: CCP4MG Molecular Graphics Program
     Copyright (C) 2001-2008 University of York, CCLRC
     Copyright (C) 2009-2011 University of York
     Copyright (C) 2012 STFC

     This library is free software: you can redistribute it and/or
     modify it under the terms of the GNU Lesser General Public License
     version 3, modified in accordance with the provisions of the 
     license to address the requirements of UK law.
 
     You should have received a copy of the modified GNU Lesser General 
     Public License along with this library.  If not, copies may be 
     downloaded from http://www.ccp4.ac.uk/ccp4license.php
 
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU Lesser General Public License for more details.
iÿÿÿÿN(   t   QtCore(   t   *c         C   s‡   d d  l  } |  d k rt | j d ƒ d k rt y' | d } | j |  | | ƒ } | SWqq | j |  | | ƒ SXqt n  | j |  | | ƒ S(   Niÿÿÿÿs   PyQt4.QtCores   Qt.i    i   (   t   sipt   findt   _unpickle_enum(   t   arg1t   arg2t   arg3R   t   arg2_newt   err(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR      s    
t   QtUnpicklerc           B   s-   e  Z d  „  Z d „  Z e e j j e j <RS(   c         C   s-   t  j j |  | ƒ d d  l } | j ƒ  d  S(   Niÿÿÿÿ(   t   picklet	   Unpicklert   __init__t   loadPluginst   setPluginsPath(   t   selft   fileR   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR   .   s    c         C   sd   |  j  ƒ  d  } |  j  ƒ  d  } | d k rA | d k rA t } n  |  j | | ƒ } |  j | ƒ d  S(   NiÿÿÿÿR   R   (   t   readlinet   __name__t
   find_classt   append(   R   t   modulet   namet   klass(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   load_global2   s    	(   R   t
   __module__R   R   R   R   t   dispatcht   GLOBAL(    (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR
   -   s   		t   CHistoryc           B   s  e  Z d  Z e j ƒ  Z d „  Z d „  Z d „  Z d  d „ Z	 d  d „ Z
 d d „ Z d „  Z e d	 „ Z d  d  d
 „ Z d  d  d g  d d  d „ Z d  i  d „ Z d  d  d „ Z d „  Z d  g  d „ Z g  d „ Z d „  Z d g  i  d „ Z d g  i  d „ Z i  d  d  d „ Z d  d „ Z i  d  d g  d „ Z i  d  d  g  d d d „ Z g  d „ Z d „  Z d „  Z d „  Z  d „  Z! d  „  Z" d! „  Z# d d" „ Z$ d  d# „ Z% d$ „  Z& d% „  Z' d& „  Z( d' „  Z) d  d( „ Z* d) „  Z+ d* „  Z, d+ „  Z- d, „  Z. RS(-   t    c         C   s  t  j j |  ƒ |  t _ g  |  _ d |  _ d |  _ g  |  _ d |  _	 d |  _
 g  |  _ d |  _ d |  _ d |  _ i d d 6d d 6d d 6d d 6|  _ d d	 g |  _ g  |  _ d
 d d d g |  _ d |  _ g  |  _ d |  _ g  |  _ d |  _ d |  _ d |  _ d |  _ i  |  _ d  S(   Ni    R   iÿÿÿÿt   commandt   openglt   timingt	   frameratei`"  it"  t   viewt   COLOURt   datat   applicationss   %a-%d-%b-%y-%H-%Mid   i   (   R    t   QObjectR   R   t   instst   command_listt
   n_commandst   recording_startt   replay_comlistt   stepwise_replay_ont   replay_linet   selected_linest	   block_guit   insert_actiont   replay_filet
   diagnostict
   test_portst   master_portst   save_to_projectt
   nAutoSavedt   autoSavedStatust   autoSavedPositiont
   update_guit   autoSaveTimeFormatt   maxAutoSavedt   delAutoSavedt   diskAutoSaveFrequencyt   plugin_status(   R   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR   @   s:    																				c         C   sM   i  } |  j  j | ƒ rI x. |  j  | j ƒ  D] \ } } | | | <q, Wn  | S(   N(   R?   t   has_keyt   items(   R   R   t   parst   keyt   value(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   GetSavedPluginStatusl   s
     c         C   s?   i  |  j  | <x+ | j ƒ  D] \ } } | |  j  | | <q Wd  S(   N(   R?   RA   (   R   R   t   paramsRC   RD   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   SavePluginStatust   s    c         K   sé   d d  l  } d d  l } g  |  _ | } | j d d | ƒ | j d d | ƒ | j | ƒ } x2 | D]* } y |  j j t | ƒ ƒ Wqc qc Xqc Wt |  j ƒ d k r¯ d } n d } |  j d | ƒ |  j d	 | ƒ |  j d
 | ƒ d  S(   Niÿÿÿÿs   \{R   s   \}i    t   disabledt   normalt
   go_to_linet   delete_linet
   save_lines(	   t   ret   stringR/   t   subt   splitR   t   intt   lent   update_button_status(   R   R/   t   keywordsRM   RN   t	   sel_linest   llt   mode(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   set_attribute{   s"    		c         C   sž   t  |  | ƒ r t |  | ƒ Sd d  l } i  } | j j t j ƒ  d d ƒ } | j j | ƒ r– |  j d | ƒ } | j	 | ƒ r– | j
 | | ƒ q– n  | Sd  S(   Niÿÿÿÿt   statuss   last_exit_status.pklt   filename(   t   hasattrt   getattrt   ost   patht   joint   utilst
   get_CCP4MGt   existst   load_pickle_fileR@   t   update(   R   t   restore_modeR]   RF   RZ   RY   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   restore_params”   s    	i    c         K   s(  d d  l  } t | ƒ } t ƒ  j ƒ  } | j j t j ƒ  d d ƒ } | j j | ƒ rª | j j t j ƒ  d d ƒ } | j j | ƒ r— | j	 | ƒ n  | j
 | | ƒ n  |  j d | d d d | ƒ t d ƒ j d	 ƒ r$| r$t j | | j j d
 d ƒ ƒ } |  j d | d d d |  j ƒ n  d  S(   NiÿÿÿÿRY   s   last_exit_status.pkls   prev_exit_status.pklRZ   t	   overwritet   save_visiblet   save_session_optionst   save_projectst   CCP4_DATABASEs   mg_exit_status.pklt	   save_list(   R]   RQ   t   CCP4DATABASEt   get_current_projectR^   R_   R`   Ra   Rb   t   removet   renamet   save_statust   PMt   gett   get_filenameR6   (   R   Rh   RT   R]   t   current_projectRZ   t   bakname(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   save_program_status¤   s"    		 	c         K   s_   d d l  } | j j t j ƒ  d d ƒ } | j j | ƒ r[ |  j d | ƒ } | r[ t Sn  t S(   s@   
    Check we can restore status from past/prev exit status
    iÿÿÿÿNRY   s   last_exit_status.pklRZ   (	   R]   R^   R_   R`   Ra   Rb   t   check_status_filet   Truet   False(   R   RT   R]   RZ   t   last_status(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt$   check_data_valid_last_program_statusÀ   s    
c   
      K   so  d d l  } t |  d ƒ r7 t ƒ  j |  j ƒ |  ` n  |  j rÉ | j j |  j ƒ s{ t ƒ  j	 d |  j ƒ d G|  j GHqÉ |  j
 d |  j d |  j ƒ } | s£ d St ƒ  j	 d	 |  j ƒ d	 G|  j GHn  d
 } g  } t d ƒ j d ƒ rMt j t ƒ  j ƒ  | j j d d ƒ ƒ } | j j | ƒ rDd Gt ƒ  j ƒ  GH|  j } qMd
 } n  | j j t j ƒ  d d ƒ } | j j | ƒ r§| r§|  j
 d | d |  j d | ƒ } nB | j j | ƒ rÚ|  j
 d | d d d | ƒ } n d G| GHd } | d k rLt ƒ  j	 d d d d d ƒ y | j | ƒ Wn t ƒ  j	 d | d ƒ n X| j j t j ƒ  d d ƒ } | j j | ƒ rŸ| rŸ|  j
 d | d d d | ƒ }	 n9 | j j | ƒ rÒ|  j
 d | d d d | ƒ }	 n d }	 |	 rL| d k rLt ƒ  j	 d d ƒ y& | j j | ƒ r#| j | ƒ n  WqIt ƒ  j	 d | d ƒ qIXqLn  | rk|  j
 d | d d ƒ n  d S(    s/   
    Restore status from saved exit status
    iÿÿÿÿNt   command_line_projects   ERROR status file not found: s   ERROR status file not found:RZ   t   restore_datai    s   ERROR reading status file: R   Ri   Rj   Rk   s   mg_exit_status.pkls-   Restoring_program status for current project:RY   s   last_exit_status.pklt   exclude_lists   ERROR no status filei   i   s!   Error restoring status from file
s7   May be due to change in format for new program version
s)   or previous program run crashed on exit?
s4   Will delete last save status and attempt to restore
s   from previous status files2   Error attempting to delete unreadable status file
s   
Please remove this files   prev_exit_status.pkls*   Error restoring status from previous file
s$   will revert to default program setup(   R]   R[   Rm   t   set_current_projectR}   t   command_line_statusR^   Rb   t   MGGUIt   WarningMessaget   restore_statust   command_line_restoreRr   Rs   R`   Rt   Rn   R_   R6   Ra   Ro   (
   R   t   restore_past_or_prevRT   R]   RY   t   project_filenameR   RZ   R{   t   prev_status(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   restore_program_statusØ   s|    		*					 	c         C   s  d d  l  } d d  l } | s^ t j j t j ƒ  d ƒ } t j j | ƒ r^ | j | ƒ q^ n  t j j | ƒ s™ y t j	 | ƒ Wq™ d d | f SXn  d } xU | j
 ƒ  D]G } | j d | d | d d ƒ } | d	 r¬ | d
 | d d	 } q¬ q¬ Wd  S| rd | g Sd	 d g Sd  S(   Niÿÿÿÿt   saved_data_filesi   s   Error creating directoryR   t   dirt   projectRg   i    s   
(   t   shutilt   dataobjR]   R^   R_   R`   Ra   Rb   t   rmtreet   mkdirt   get_dataobjt   copy_data_files(   R   R‹   RŒ   R�   RŽ   t   errorst   objt   ret(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   do_backup_data_files<  s(     
 
t	   Overwritec   %      K   s™  d d  l  } d d  l }	 d d  l }
 d d  l } d } | r| | rW t j | | ƒ } n  t j | d d | ƒ} | s‚ d Sn d } t | ƒ } | s� d } n d } i  } d d  l } | j	 | d <| s× | j
 d ƒ rû | rå d GHn  t ƒ  j ƒ  | d <n  | s| j
 d	 ƒ r4| rd
 GHn  t ƒ  j ƒ  | d	 <n  | sI| j
 d ƒ rm| rWd GHn  t ƒ  j ƒ  | d <n  | s‚| j
 d ƒ r¦| r�d GHn  t ƒ  j ƒ  | d <n  | s»| j
 d ƒ rì| rÖd Gt ƒ  j ƒ  GHn  t ƒ  j ƒ  | d <n  | s| j
 d ƒ r%| rd GHn  t ƒ  j ƒ  | d <n  | s:| j
 d ƒ rg| rHd GHn  d d  l } | j ƒ  | d <n  | s|| j
 d ƒ r | rŠd GHn  t ƒ  j ƒ  | d <n+ | j
 d ƒ rËt ƒ  j d d ƒ | d <n  | sà| j
 d ƒ ri| rîd GHn  t ƒ  j ƒ  t ƒ  j ƒ  | d <i  } xE | j d d ƒ D]1 } t ƒ  j | j ƒ } | r'| | | j <q'q'W| | d <n  | s~| j
 d  ƒ r¢| rŒd! GHn  t ƒ  j ƒ  | d  <n  | s·| j
 d" ƒ rÛ| rÅd# GHn  t ƒ  j ƒ  | d" <n  | sð| j
 d$ ƒ r_t ƒ  } | r_d d% l m } | j d& d' ƒ } | j  d( | j! | j" ƒ  ƒ ƒ | j# d( ƒ j$ ƒ  | d$ <q_n  | st| j
 d) ƒ rzg  } g  } g  } xÊ | j% j& D]¼ } | s©| j' r“| r¾d* G| j( GHn  | j) ƒ  } | j | d+ | ƒ} | rë~ n | | | j( <| j* d k r| j+ | j( ƒ qO| j* d, k r<| j+ | j( ƒ qO| j+ | j( ƒ q“q“W| j, | ƒ | j, | ƒ | | d- <n  | s�| j
 d. ƒ r¼| r�d/ GHn  d d  l- } | j ƒ  | d. <n  | sÑ| j
 d0 ƒ r| rßd1 GHn  i  | d0 <x. |  j. j/ ƒ  D] \ } } | | d0 | <qùWn  | r‘| rsd2 G| GH|  j0 | | ƒ \ }  }! }" }# |" GH|  j1 | d |! |" ƒ }$ |$ } n  |
 j2 | | ƒ | j3 ƒ  d S| Sd  S(3   Niÿÿÿÿi    t   wRg   i   t   versiont   pick_labelss   saving pick_labelst   picture_wizards   saving picture_wizardt
   gui_paramss
   saving guit   mouse_bindingss   saving mouse_bindingsR#   s   saving viewt   view2t   fontss   saving fontst   file_viewers   saving file viewerRF   s   saving paramst   params2t   picture_definition_paramst   picture_definitiont	   ModelInfos   saving ModelInfot   object_typet   MolDatat   AllModelInfoR$   s   saving COLOURt   lights   saving lightst   windowGeometry(   R    t   CCP4t   CCP4MGs   mainwindow/geometryR%   s   saving DataObjRh   t   CrystalDatat	   Data_listR&   s   saving applicationst   pluginss   saving pluginss
   Dumping to(4   RŽ   t   servicesR   t   buildR`   Rt   t   openFileRQ   R™   t   ccp4mg_versiont   countt	   PICKLABELt	   getparamst   PICTUREWIZARDt
   MAINWINDOWt	   getParamst   mouseBindingst   getViewParamst   FONTMANAGERt   mgFileViewert
   PM_MANAGERt   savet	   MODELINFOt   save_user_filesR‘   t   get_sett
   name_labelt   MGCOLOURt   getLightParamst   PyQt4R    t	   QSettingst   setValuet   QVariantt   saveGeometryRD   t   toByteArrayt   DataObjt   dataobj_instst   visibleR   t   DataObjShadowR¥   R   t   extendt   ApplicationR?   RA   t   copy_data_files_from_statust"   edit_status_data_files_from_statust   dumpt   close(%   R   RZ   t   DIR_filenameRg   Rl   Rh   t   copy_to_dirRT   RŽ   R¯   R   R°   R3   t   ft   save_allRY   R™   R¼   t   ModInfR”   t   infot   mainwinR    t   settingst   crystal_listR­   t   not_model_listt	   shadowobjt   rvRÐ   RC   RD   t   nLostt   objListt   fileDeft   nFoundt   s2(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRq   \  sö     	            	   
		
c         C   sˆ   d d  l  } | s d St j | d d d ƒ} | s8 d SyA d G| d G| | d d j ƒ  GH| j | | ƒ | j ƒ  Wn d SXd S(	   Niÿÿÿÿi   R˜   Rg   R—   t   write_pickle_fileR­   i    (   R   R`   R±   Rt   RÓ   RÔ   (   R   RZ   RY   R   R×   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRæ   ø  s      #c         C   s‡   d d  l  } i  } | r- t j | | ƒ } n  y t | d ƒ } Wn | SXy t | ƒ j ƒ  } Wn n Xy | j ƒ  Wn n X| S(   Niÿÿÿÿt   U(   R   R`   Rt   t   openR
   t   loadRÔ   (   R   RZ   RÕ   R   RY   R×   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRc     s"    c         C   sƒ   d } xv | d D]j } | j  | ƒ r xR t | | d g  ƒ D]7 } t | d i  ƒ j d d ƒ d k  r= | d } q= q= Wq q W| S(	   Ni    R­   t   objinstsRF   t   opacityg      ð?g®Gáz®ï?i   (   R@   R\   Rs   (   R   RY   t   ntransparentRŽ   t   dispobj(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   get_status_transparency#  s    $ c         C   sK   d d  l  } |  j d | ƒ } | s; d G| GHd d | g S|  j | | ƒ S(   NiÿÿÿÿRZ   s   Error reading status files   Error reading status file (   R]   Rc   t!   get_status_data_files_from_status(   R   RZ   t	   hint_dirsR]   RY   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   get_status_data_files/  s    	c         C   sœ  d d  l  } | s! d GHd d g Sg  } i  } g  } d } d } xJ| d D]>}	 | j |	 ƒ sk d G|	 GHqJ | |	 j d k rwx| |	 j D]ä }
 d |
 j k rŒ |
 j ƒ  } t j | ƒ } | j j | d ƒ spd } xh | D]` } | j j	 | | j j
 | d	 ƒ ƒ } | j j | ƒ rß d
 | | g } d	 } | d	 } Pqß qß W| d	 } | j |
 j ƒ | | |
 j <qpqŒ qŒ WqJ d g j | |	 j ƒ sJ | |	 j ƒ  } t j | ƒ } | j j | d ƒ sZd } xh | D]` } | j j	 | | j j
 | d	 ƒ ƒ } | j j | ƒ rÒd
 | | g } d	 } | d	 } PqÒqÒW| d	 } | j |	 ƒ | | |	 <qˆ| d	 } | d	 } | j |	 ƒ | | |	 <qJ qJ W| | | | g S(   Niÿÿÿÿs   Error reading statusi    R­   s%   WARNING reading status file - no key:t
   GL2dScreent   Imagei   i   t   FULLPATHR¬   (   R]   R@   R¥   Rê   Rt   R`   t   check_filenameR^   Rb   R_   t   basenameR   R   R³   (   R   RY   Rð   R]   t   fileListRã   Râ   Rá   Rä   RW   t   dobjt   filnt
   check_filnt   foundt   hintt	   test_path(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRï   9  sb    
%

%



c      	      s­  d d  l  } d d  l ‰ | s- d GHd d g Sˆ j j | ƒ sh y ˆ j | ƒ Wqh d d | f SXn  g  } i  } g  } d } d } x| d D]}	 | j |	 ƒ s² d G|	 GHq‘ | |	 j d k rÈxÑ| |	 j D]î}
 d	 |
 j k rÓ |
 j ƒ  } t	 j
 | ƒ } d
 G| GHˆ j j | d ƒ rÁˆ j j ˆ j j | ˆ j j | d ƒ ƒ ƒ sŠt	 j | d ˆ j j | ˆ j j | d ƒ ƒ ƒ rÁˆ j j | ˆ j j | d ƒ ƒ } ˆ j j | ƒ r!d G| GHd GHt j t | ƒ j ƒ  ƒ j ƒ  } t j t | d ƒ j ƒ  ƒ j ƒ  } | | k rd GHˆ j j | ƒ \ ‰ ‰ ˆ j j ˆ ƒ \ ‰ ‰  ‡  ‡ ‡ ‡ f d †  } x­ t j d ƒ D]” } | | ƒ } ˆ j j | ƒ rîd G| GHt j t | ƒ j ƒ  ƒ j ƒ  } | | k rd G| GH| } Pqq~d G| GH| } | j | d | ƒ Pq~Wq5d GHn | j | d | ƒ d } ˆ j j | ˆ j j | d ƒ ƒ } ˆ j j | ƒ r”d | | g } d } | d } n  | d } | j |
 j ƒ | | |
 j <qÁqÓ qÓ Wq‘ d g j | |	 j ƒ s‘ | |	 j ƒ  } t	 j
 | ƒ } d G| GHˆ j j | d ƒ r™ˆ j j ˆ j j | ˆ j j | d ƒ ƒ ƒ s‡t	 j | d ˆ j j | ˆ j j | d ƒ ƒ ƒ r™ˆ j j | ˆ j j | d ƒ ƒ } ˆ j j | ƒ rd G| GHd GHt j t | ƒ j ƒ  ƒ j ƒ  } t j t | d ƒ j ƒ  ƒ j ƒ  } | | k rd GHˆ j j | ƒ \ ‰ ‰ ˆ j j ˆ ƒ \ ‰ ‰  ‡  ‡ ‡ ‡ f d †  } x­ t j d ƒ D]” } | | ƒ } ˆ j j | ƒ rëd G| GHt j t | ƒ j ƒ  ƒ j ƒ  } | | k rd G| GH| } Pqq{d G| GH| } | j | d | ƒ Pq{Wq2d GHn | j | d | ƒ d } | } ˆ j j | ƒ rrd | | g } d } | d } n  | d } | j |	 ƒ | | |	 <q™q‘ q‘ W| | | | g S(   Niÿÿÿÿs   Error reading statusi   s   Error creating directoryi    R­   s%   WARNING reading status file - no key:Rò   Ró   s   check_filn 1i   s8   File already exists!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!s   Need to compares%   Need to do something!!!!!!!!?????????c            s    ˆ j  j ˆ d ˆ |  ˆ  f ƒ S(   Ns   %s_%d%s(   R^   R_   (   t   i(   t   extR   R]   R^   (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   <lambda>¥  s    s   Probably ought to checks   The same no need to copyt   Uses   Not copying, no need toRô   R¬   s   check_filn 2c            s    ˆ j  j ˆ d ˆ |  ˆ  f ƒ S(   Ns   %s_%d%s(   R^   R_   (   Rþ   (   Rÿ   R   R]   R^   (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR   Ò  s    (   R�   R]   R^   Rb   R�   R@   R¥   Rê   Rt   R`   Rõ   R_   Rö   t   samefilet   hashlibt   sha256Rè   t   readt	   hexdigestRP   t   splitextt	   itertoolsR³   t   copyfileR   R   (   R   RY   t
   target_dirR�   R÷   Rã   Râ   Rá   Rä   RW   Rø   Rù   Rú   t   theFilet   hash1t   hash2t   make_fnRþ   t
   uniqueFileRû   Rý   (    (   Rÿ   R   R]   R^   s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRÑ   z  sÊ    
	~%	!%	!		%
	~%	!%	!		
i   c         C   s%   |  j  | ƒ } |  j | | | | ƒ S(   s£   
    Edit the status in file filename to change data filenames to those in fileDefn
    If any of the files do not exist then remove from the status Data_list
    (   Rc   RÒ   (   R   RZ   t
   removeLostRâ   t   fileDefnRY   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   edit_status_data_filesò  s    c   	      C   s2  d d l  } x| D]} | j | ƒ r¦ | j j | | d ƒ rZ | | j | | ƒ q*| r*| j | ƒ r£ | | =| d j | ƒ r  | d j | ƒ q  q£ q*q x� | d D]u } | | j d k r± xY | | j D]G } d | j k rØ t	 | j
 ƒ t	 | ƒ k r| j | | ƒ qqØ qØ Wq± q± Wq W| S(   s’   
    Edit the status to change data filenames to those in fileDefn
    If any of the files do not exist then remove from the status Data_list
    iÿÿÿÿNi   R­   Rò   Ró   (   R]   R@   R^   Rb   t   set_filenameR³   Ro   R¥   Rê   t   strR   (	   R   RY   R  Râ   R  R]   t   objnameRW   Rø   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRÒ   ü  s$     &c         C   s7  | r! |  j  d | d | ƒ } n  | s4 d G| GHd S| j d ƒ ré i  } x? d d d g D]. } | d j | ƒ rY | d | | | <qY qY WxH d	 d
 g D]: } | d j | d ƒ r˜ | d | d | | d <q˜ q˜ Wt ƒ  j | ƒ n  | j d ƒ rt ƒ  j | d ƒ n$ | j d ƒ r/| d j ƒ  n d Sd S(   NRZ   RÕ   s   Error reading status filei   t   view_optionst   fog_strengtht
   slab_widtht   slab_offsett   fogt   slabt   _ont   _enabledRž   R#   i   i    (   Rc   R@   R·   t   setViewParamst   restore(   R   RY   RZ   RÕ   RB   t   item(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   restore_view   s(    	 !c         C   s×   | r |  j  d | ƒ } n  | rÓ t | d ƒ rÓ | j d ƒ rÓ t | d ƒ d k rÓ t } x( | d D] } | d k rf t } Pqf qf W| rÏ x< | d D]0 } t | | d ƒ r— | | j ƒ  rÇ t Sq— q— Wt St St S(   sE   
    Check that we can load status from the pickle file filename
    RZ   R@   R­   i    R¬   Rt   (   Rc   R[   R@   RR   Ry   Rz   Rt   (   R   RZ   RY   t   onlyCrystalt   s(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRx   <  s     :iÿÿÿÿc          K   sÀ	  d d l  } d d l } d d l } d d l }	 d d l }
 d d l } d d l } d } d } | r{ |  j d | ƒ } n  | sŽ d G| GHd Sd } t } | j	 d ƒ r	t
 j | d ƒ } d	 G| d G| GH| d d
 k r	| d d k r	| d
 d k  r	t } q	n  | d k  r{| j	 d ƒ rc| d j	 d ƒ rc| d d j	 d ƒ rc| d d d } q{t d ƒ j d ƒ } n  | j d ƒ sß| j	 d ƒ r³| d j ƒ  | j ` qß| j	 d ƒ rßt ƒ  j d | d ƒ qßn  | rB| rBg  } x! | j j D] } | j | ƒ qþWx | D] } | j ƒ  qWd | j _ qBn  t t ƒ  _ | j d ƒ rù| j	 d ƒ rù| rªg  t ƒ  _ d t ƒ  _ t ƒ  j j ƒ  t t ƒ  _ n5 g  t ƒ  _ d t ƒ  _ t ƒ  j j ƒ  t ƒ  j  ƒ  t ƒ  j! d | d ƒ n  | j d ƒ r2| j	 d ƒ r2t" ƒ  j# d | d ƒ n  | j d ƒ rk| j	 d ƒ rkt" ƒ  j$ d | d ƒ n  | j d ƒ r×| j	 d ƒ r×d d l% } t& | d | j' ƒ r½| d j ƒ  q×t" ƒ  j( d | d ƒ n  | j d ƒ s| j	 d ƒ rt) ƒ  j! d | d ƒ qn  | j d ƒ sv| j	 d ƒ rJt* ƒ  j! d | d ƒ n  | j	 d ƒ rvt* ƒ  j! d | d ƒ qvn  | j d ƒ rµ| j	 d ƒ rµd d l+ } | j# | d ƒ n  | j d ƒ rî| j	 d ƒ rît, ƒ  j! d | d ƒ n  | j d ƒ rV| j	 d ƒ rV| d rVx< | d j- ƒ  D]' } t, ƒ  j. d | d | d | ƒ q(Wn  | j d ƒ r®| j	 d ƒ r®y' t" ƒ  } | r›| j/ | d ƒ n  Wq®d  GHq®Xn  | j d ƒ r¥| j	 d! ƒ r¥| sæ|  j0 d" | ƒ q¥t } | j1 j2 | ƒ } x€| d! D]t} | r	| j	 | ƒ r	t3 | | d# ƒ r+| | j4 j	 d$ ƒ se| d | | j4 d$ <n  t
 j | | j4 d$ ƒ } | d d
 k r¸| d d k r¸| d
 d k  r¸t } n  | r+| r+| j	 d ƒ r+g  t ƒ  _ d t ƒ  _ t ƒ  j j ƒ  t ƒ  j! d | d ƒ t t ƒ  _ t } q+n  | | j d | d% | ƒ } | d r[| | =n  | d r}| | d d& } q}q	q	Wxe | d! D]Y } | rŒ| j	 | ƒ rŒ| | j5 d' d d | ƒ } | d rå| | d d& } qåqŒqŒW| j	 d( ƒ r¥t6 | d( ƒ d k r¥d d l7 } | j8 ƒ  x{ | d( D]l } | j	 | ƒ r/| r›| | j ƒ  } | | j5 d' d d | ƒ } | d r˜| | d d& } q˜q›q/q/Wq¥n  | j d) ƒ sÇ|  j9 d" | ƒ n  | j d* ƒ s	| j	 d* ƒ r	d d l: } | j! d | d* ƒ q	n  | j d+ ƒ sj	| j	 d+ ƒ rZ	x. | d+ j; ƒ  D] \ } } | |  j< | <q:	Wn  |  j= j> ƒ  n  | j d, ƒ r£	| j	 d, ƒ r£	t? ƒ  j! d | d, ƒ n  | r¼	t@ ƒ  jA | ƒ n  d S(-   s:   
    Restore the status from the pickle file filename
    iÿÿÿÿNR   i   RZ   s   Error reading status filei    R™   s    Reading status file from versioni   i   i   R¡   Ri   R~   RF   R%   R$   t   gui_DISParamsRœ   R�   R¨   Rš   RŸ   R  R    R¤   R§   t   sett   ModInfoR©   s&   Failed to restore main window geometryR­   RY   t
   dataparamst   ccp4mg_creator_versiont   default_dirs   
t   override_visiblet   CrystalData_listR#   R&   R®   t
   jobcontrol(B   RŽ   R¯   t   CrystalR   t   typesR]   t   modelRc   Rz   R@   R`   t   parseVersionRy   Rr   Rs   R³   R  t   ParamsManagerShadowR(   R½   RË   RÌ   R   t   deleteR¦   t   last_MolData_numberRÃ   t   usingOldColourst   rgbrepst   n_standard_rgbrepst   RGBRepst   cleart   load_defaultt	   setparamsR·   t	   setParamst   setMouseBindingst   display_tablet
   isinstancet   LightShadowt   setLightParamsR´   R»   R¼   R¿   t   keyst   set_sett   restoreGeometryt   update_data_statusR^   t   dirnameR[   R'  t   restore_display_objectsRR   t   rebuildt   UpdateDisplayR!  RÐ   RA   R?   t   pluginsStatusChangedt   emitt
   JOBCONTROLR‚   Rƒ   (    R   RY   RZ   R~   R   RT   RŽ   R¯   R-  R   R.  R]   R/  t   messaget   complete_reselectionR²   t   old_colourst   obj_listR”   R=  R¼   R%  RÛ   t   data_old_coloursR)  RW   R(  Rà   RG  RÐ   RC   RD   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR„   T  s   	09  )(	0	
 

 
 %

 %c         K   s·  d d l  } d d l }	 d d l }
 g  |  _ d } d } | st |  j d | d | ƒ } | sq | j d ƒ rt qt n  | r› d d l } | j j | ƒ } n  | j	 ƒ  } g  } x | D] } | j
 | j ƒ q´ Wg  } xn | D]f } | d j | j ƒ s1d | j k s1| j | j ƒ s1| j | | j ƒ rÛ | j
 | ƒ qÛ qÛ Wx1 | D]) } |  j j
 d | j g ƒ | j ƒ  qLW~ g  } g  } x¹ | d D]­ } | j | ƒ r“| j | | j ƒ sÎ| j
 | ƒ q@| | j | | j ƒ } | j | | ƒ s| j
 | ƒ q@| j | | ƒ } | r@|  j j
 d	 | g ƒ q@q“q“WxÀ | D]¸ } | } | | j d
 | ƒ } t | ƒ d k r¸t | d d ƒ r¸| d j | k r¸| d j } q¸n  | | j d | ƒ } | d rí| | d d } qK|  j j
 d | g ƒ qKW| j d ƒ r-t ƒ  j | d ƒ n  | j d ƒ re|  j j t ƒ  j d | d j ƒ ƒ n  | j d ƒ rš|  j j t ƒ  j d | d ƒ ƒ n  | r³t ƒ  j | ƒ n  d S(   sw   
    Restore the data status from the pickle file filename
    Attempt to minimise deleting and adding new objects
    iÿÿÿÿNR   RZ   RÕ   R­   s   Legends&Imagest   delete_DataObjt   update_DataObjR)  i   R   R*  i   s   
t   add_DataObjR$   RF   R%   R¡   (   RŽ   R-  R   R:   Rc   R@   R]   R^   RE  R‘   R   R   R³   t
   isSameDataR2  t   indexRD  R  RR   R[   RF  RÃ   RÏ   R½   R%   R‚   Rƒ   (   R   RY   RZ   RÕ   R   R*  t   delay_deleteRT   RŽ   R-  R   RL  R)  R]   t   current_dataobjt   current_dataobj_namesR”   t   delete_listR   t   add_listt   changed_listt	   data_namet   d_objRà   t   theName(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRD    sr    	& %
	)&c         C   s/   t  |  d ƒ s g  |  _ n  |  j j | ƒ d  S(   Nt   retry_commands(   R[   R_  R   (   R   R   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   AppendRetryCommandsx  s     c         C   s[   t  |  d ƒ s d  Sx; |  j D]0 } y  t | d | d | d ƒ Wq q Xq W|  ` d  S(   NR_  i    i   i   (   R[   R_  t   apply(   R   R   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   apply_retry_commandsƒ  s      c         C   s0  d d  l  } x | j  j D] } | j ƒ  q Wd } t ƒ  rq |  j ƒ  d } t d ƒ j d ƒ r|  j ƒ  qn¨ y6 |  j ƒ  d } t d ƒ j d ƒ r¦ |  j ƒ  n  Wno d GHt j	 ƒ  d  \ } } } t j
 j t | ƒ d ƒ t j
 j t | ƒ d ƒ d d  l } | j ƒ  n X| r,|  j ƒ  n  d  S(	   Niÿÿÿÿi    i   Ri   t   backup_data_filess   Error saving statusi   s   
(   RÐ   t   application_instst   Exitt	   DEVELOPERRw   Rr   Rs   R–   t   syst   exc_infot   stderrt   writeR  t	   tracebackt   print_stackt   autoSaveCleanup(   R   RÐ   t   appt   savedt   exc_typet	   exc_valuet   exc_tbRk  (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRe  ’  s.    	
 
 c   
   	   C   sl  d d  l  } g  } g  } g  } x³ | d D]§ } | | k rÃ | | k rÃ | | j | | j k rÃ | j d | d | | j d | | j ƒ } | j | | | | ƒ }	 |	 s³ ~ qÐ | j | ƒ q) | j | ƒ q) Wxˆ | d D]| } | | k rß | | k rß | d j | ƒ s+| | j | | j k r[| j ƒ  } | j | | ƒ | j | ƒ q[qß qß W| | | g S(   NiÿÿÿÿR­   R   R¥   RZ   (   RŽ   R¥   RÎ   RZ   t
   differenceR   R³   R¾   (
   R   t   initial_statust   final_statusRŽ   R­   t   add_Data_listt   minus_Data_listt   datanamet   tmpt   diff(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   status_difference¯  s(    ,.c   	      C   s  d d  l  } xK | D]C } | d j | ƒ r | j | ƒ r | d j | ƒ | | =q q WxM | D]E } | j } | d j | ƒ ra | j | ƒ ra | | j | ƒ qa qa Wxa | D]Y } | j } | d j | ƒ s± | j ƒ  } | j | ƒ | d j | ƒ | | | <q± q± W| S(   NiÿÿÿÿR­   (	   RŽ   R³   R@   Ro   R   t   addRÎ   R¾   R   (	   R   RY   R­   Rv  Rw  RŽ   Rx  Rø   Ry  (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt
   status_addÌ  s"    "	"	c         C   sÅ   t  |  d ƒ s d |  _ n  |  j r± g  } d } xB |  j D]7 } | j d d d t | ƒ | d g ƒ | d } q: W| j d d	 g ƒ d
 d | d d g g d t |  j ƒ f Sd d g d f Sd  S(   Nt   presentation_runningi    i   t   rb1t   presentation_scenet   scenei   t   comt   presentation_closet   cast   Presentationt   TEAROFFt   1t   prt   _presentationR   (   R[   R~  t   current_presentationR   R  (   R   t   menuRþ   R   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   get_presentation_menuê  s    	')c         C   sX   d d  l  } |  j d |  _ |  j j |  j d d d g ƒ ƒ t |  j ƒ d |  _ d  S(   Niÿÿÿÿi   Rl   R%   R¢   (   t   timeR7   R8   R   Rq   RR   R9   (   R   R�  (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   autoSaveý  s
    "c         C   s‡   | d k r% t  d |  j | ƒ } n# t t |  j ƒ d |  j | ƒ } | |  j k rƒ | |  _ |  j d |  j |  j d d ƒ n  d  S(   Ni    i   RY   t   restore_all_visible(   t   maxR9   t   minRR   R8   RD  (   R   t	   incrementt   new(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   autoRestore  s    #	c         C   sU   d d  l  } | j j t j ƒ  d d | d ƒ } |  j d | d d ƒ d G| GHd  S(   Niÿÿÿÿt	   auto_savet
   auto_save_s   .pklRZ   Rg   s   history.autoSaveToFile(   R]   R^   R_   R`   Ra   Rq   (   R   t   labelR]   RZ   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   autoSaveToFile(  s    &c         C   s{   d d  l  } d d  l } | j j | j j t j ƒ  d ƒ ƒ rw y& | j | j j t j ƒ  d ƒ ƒ Wqw d GHqw Xn  d  S(   NiÿÿÿÿR•  sE   ERROR in history.autoSaveCleanup cleaning up auto saved status files.(   R]   R�   R^   Rb   R_   R`   Ra   R�   (   R   R]   R�   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyRm  2  s    '&c         C   sQ   d d  l  } d d  l } | j  | j j t j ƒ  d d ƒ ƒ } | rI d Sd Sd  S(   Niÿÿÿÿt   recovers   auto_save_*.pkli   i    (   t   globR]   R^   R_   R`   Ra   (   R   Rš  R]   t	   file_list(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   recoveryFileAvailable@  s
    'c         C   ss   d d  l  } d d  l } |  j ƒ  } | ro | j | | j j t j ƒ  d | j j | ƒ d ƒ ƒ |  j	 ƒ  n  d  S(   NiÿÿÿÿR™  (
   R�   R]   t   autoSaveLastFileR	  R^   R_   R`   Ra   RP   Rm  (   R   R�   R]   t   last_auto_save(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   recoverAutoSaveJ  s    	/c         C   s¨   d d  l  } d d  l } g  } | j  | j j t j ƒ  d d ƒ ƒ } | sO g  S| j t ƒ | j ƒ  x; | D]3 } | j	 | j j
 | j j | ƒ d ƒ d ƒ qm W| S(   NiÿÿÿÿR™  s   auto_save_*.pkli    i
   (   Rš  R]   R^   R_   R`   Ra   t   sortt   sortAutoSaveFilest   reverseR   Rö   R  (   R   Rš  R]   t	   date_listR›  R   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   getRecoverFiles[  s    ' 
1c         C   sb   d d  l  } | j j t j ƒ  d d | d ƒ } | j j | ƒ rZ |  j d | ƒ } | Sd Sd S(   NiÿÿÿÿR™  R–  s   .pklRZ   i   i    (   R]   R^   R_   R`   Ra   Rb   R„   (   R   R—  R]   RZ   Rà   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR™  p  s    &c         C   sº   d d  l  } d d  l } | j  | j j t j ƒ  d d ƒ ƒ } | sI d Sd } | j j | d ƒ } xJ t d t | ƒ ƒ D]3 } | j j t	 ƒ } | | k r{ | } | } q{ q{ W| | S(   NiÿÿÿÿR•  s   auto_save_*.pklR   i    i   (
   Rš  R]   R^   R_   R`   Ra   t   getmtimet   rangeRR   R×   (   R   Rš  R]   R›  t	   last_filet   tt   iit   t2(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR�  }  s    ' c         C   s  d |  _  d |  _ d |  _ g  |  _ d |  _ g  |  _ t t j ƒ d k rO d Sd d  l	 } d } x¶
| t t j ƒ k  r| j
 d t j | ƒ r÷ t j j t j d d d d ƒ } t | d	 d ƒ } | r| j ƒ  } | j ƒ  | GHt j ƒ  qn
| j
 d
 t j | ƒ rd |  _ nð	| j
 d t j | ƒ rAd |  _ nË	| j
 d t j | ƒ r»| d } t j j t j | ƒ sœd t j | GHd t j | St j j t j | ƒ |  _  nQ	| j
 d t j | ƒ r5| d } t j j t j | ƒ sd t j | GHd t j | St j j t j | ƒ |  _ n×| j
 d t j | ƒ r¯| d } t j j t j | ƒ s�d t j | GHd t j | St j j t j | ƒ |  _ n]| j
 d t j | ƒ rò| d } |  j j d t j | g ƒ n| j
 d t j | ƒ sW| j
 d t j | ƒ sW| j
 d t j | ƒ rS| j d t j | ƒ rS| j
 d t j | ƒ s‰| j
 d t j | ƒ r–| d } n  t j | } d G| GHt j j | ƒ rã|  j j d t j j | ƒ g ƒ qt j j | ƒ d d } t j j | ƒ s.d t j | GHd t j | S|  j j d t j j | ƒ g ƒ n¹| j
 d t j | ƒ rø| d } t j | } t j j | ƒ sÓ| d } t j j | ƒ sÓd t j | GHd t j | Sn  |  j j d  t j j | ƒ g ƒ n| j
 d! t j | ƒ sD| j
 d t j | ƒ r| j d" t j | ƒ r| j
 d! t j | ƒ rj| d } n  t j | } t j j | ƒ sÇ| d# } t j j | ƒ sÇd$ t j | GHd$ t j | Sn  i  } t j j | ƒ | d% <d& d' d( d) g }	 |  j j d* | g ƒ nþ| j
 d+ t j | ƒ sZ| j
 d t j | ƒ r| j d, t j | ƒ r| j
 d+ t j | ƒ r€| d } n  t j | } t j j | ƒ sÝ| d- } t j j | ƒ sÝd. t j | GHd. t j | Sn  |  j j d/ t j j | ƒ g ƒ n
| j
 d0 t j | ƒ r‰| d } t j j t j | ƒ s]d1 t j | GHd1 t j | S|  j j d2 t j j t j | ƒ g ƒ nƒ| j
 d3 t j | ƒ rxg| d t t j ƒ k  r	d4 d5 d6 d7 g j t j | d ƒ r	d |  j t j | d <| d } q¥Wnÿ| j
 d8 t j | ƒ r†| d } t ƒ  j t j | ƒ r\t j | |  _ qd9 t j | d: GHd9 t j | d: Sn†| j
 d; t j | ƒ r¬| d } n`| j
 d< t j | ƒ sÞ| j
 d= t j | ƒ rÖ	| d> t t j ƒ k  rF	y< t t j | d ƒ t t j | d> ƒ g }
 | d> } WqT	d? GHd? SXn d@ GHdA GHdB S|
 d dC k  s˜	|
 d dD k s˜	|
 d |
 d k  s˜	|
 d dD k r¡	dE GHdE S| j
 d< t j | d> ƒ rÊ	|
 |  _ q|
 |  _ n6| j
 dF t j | ƒ r*
t j  dG k s| j
 dH t j | ƒ s'
t! j" ƒ  q'
qnâ t j | } t j j | ƒ rt j j | ƒ \ } } dI g j | ƒ r’
t j j t j | ƒ |  _ qdJ g j | ƒ râ
t j j | ƒ d dK k rþ
t j j t j | ƒ |  _ qþ
q|  j j t j j | ƒ ƒ n t j | S| d } qd Wd S(L   NR   iÿÿÿÿi   s   -hR«   t   pythont   etcs   help.txtt   rs   -rs   -norei    s   -scrs   Script file does not exist: s   -sts   Status file does not exist: s   -pis   Picture file does not exist: s   -drt   drawing_styles   -mos   -pdt   -s   \.pdb$s   command line pdbR/  s   .pdbs   Model file does not exist: s   -maps   .maps   Map file does not exist: t   maps   -mts   \.mtz$s   .mtzs   MTZ file does not exist: RZ   R×   t   phit   wtRs  t   mtzs   -ves	   \.vector$s   .vectors   Vector file does not exist: t   vectors   -is   Image file does not exist: t   images   -deR   R    R!   R"   s   -prs   ERROR project name s    is not recogniseds   -psn_s   -pos   -masti   s#   ERROR interpreting '-port' arguments1   ERROR insufficient qualifiers for '-port' commands   should be '-port first last'sN   ERROR insufficient qualifiers for '-port' command
should be '-port first last'iè  i'  s@   ERROR ports not in range 1000-10000 or end range less than starts   -qt   win32s   -quits   .pkls   .pys   .mgpic(#   t   command_line_scriptR�   t   command_line_picturet   command_line_datafilesR…   t   command_line_other_filesRR   Rg  t   argvRM   t   matchR]   R^   R_   t   environR±   R  RÔ   t   exitRb   t   abspathR   t   searchR  R³   R3   Rm   t   get_project_dirR}   RQ   R4   R5   t   platformR`   t   redirectOutput(   R   RM   Rþ   t   helpfileR×   t   helptextRù   t   filn1t   fileinfot   argst   portst   filn0Rÿ   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   parse_program_command_line¡  s    						 "




 232 	%%

%3 
3 
%
,&
2. $"	c         C   s  d } |  j  rQ t ƒ  j d |  j  ƒ } | | d } t ƒ  rQ t ƒ  j ƒ  qQ n  |  j rÕ xx |  j D]j \ } } | d k r� t ƒ  j | ƒ qd | d k r¸ t ƒ  j	 | d d d ƒqd t ƒ  j	 | d d ƒqd Wn  x' |  j
 D] } t ƒ  j	 | d d ƒqß W| S(   Ni    RZ   R®  R³  t   use_current_stylei   (   R¸  t   PDt   restore_picture_definitiont   DISPLAYTABLEt   loadAllDataObjR¹  R¶   t   set_default_drawing_styleR·   R±   Rº  (   R   t   rct   rcpdt   filetypeRZ   (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   apply_program_command_lineW  s     		 	c         C   sf   |  j  s d Si  } d } y t |  j  | ƒ Wn2 t k
 ra } | d |  j  } | GH| j GHd SXd S(   Ni    R   s   Error running script i   (   R·  t   execfilet   StandardErrorRÈ  (   R   t   globsRL  t   e(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   run_command_line_scripto  s    	 (/   R   R   R(   R    t
   pyqtSignalRI  R   RE   RG   RX   Rf   Rw   R|   Ry   R‰   R–   Rq   Ræ   Rc   Rî   Rñ   Rï   RÑ   R  RÒ   R!  Rx   R„   RD  R`  Rb  Re  R{  R}  RŒ  RŽ  R”  R˜  Rm  Rœ  RŸ  R¤  R™  R�  RË  RÕ  RÚ  (    (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR   ;   sZ   	,			d 	›	
A	x
$Â	`						
		
			$	¶	c          C   sû   d d  l  }  |  j d d d d d d d d	 d
 d d g d i d d	 6d d 6d d 6d d
 6d d 6d i t d t d d d d ƒ d	 6t d t d d d d ƒ d 6t d t d d d d ƒ d 6t d t d d d d ƒ d
 6t d t d d d d ƒ d 6ƒ } | S(   NiÿÿÿÿR   Ri   t   helps   program_status.htmlt   titles   Saving session optionst   guiR~   t   interpret_old_selectionsRc  Rj   t   defaulti   i    t   ask_restore_datat
   definitiont   typeR—  s   Restore status on restartt   stylet   checkboxs   Ask before restorings   Backup data files on exits%   Attempt to parse old style selectionss+   Save separate status for each CCP4i project(   R¯   t   ParamsManagert   dictt   bool(   R¯   t   pm(    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   createParamsManager  s$    	

"c         C   sË   d d  l  } d d  l } y¤ | j j |  ƒ d d d !} | j | j | t ƒ  j ƒ ƒ } | j j | ƒ d d d !} | j | j | t ƒ  j ƒ ƒ } | | k  r§ d S| | k r· d Sd SWn d SXd  S(   Niÿÿÿÿi
   iüÿÿÿi   i    (   R]   R�  R^   RP   t   mktimet   strptimet   HISTORYR;   (   t   file1t   file2R]   R�  t   label1t   t1t   label2Rª  (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyR¡  ˜  s    !!(   t   __doc__Rg  R]   RÅ   R    t   global_definitionsR  R  R`   R   R   R   R
   R'   R   Rê  R¡  (    (    (    s>   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/history.pyt   <module>   s&   
	ÿ ÿ ÿ ÿ ÿ ÿ J	