ó
ç™xTc           @   s„   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 j Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d S(	   iÿÿÿÿ(   t   division(   t   remove_treeNc         C   së   t  j } t  j } t j t j B} | t j B} xµ |  D]­ } y | | ƒ j } Wn$ t k
 re ‚  q6 t k
 ru q6 Xt	 j
 | ƒ r’ | | B} n
 | | B} | | k r6 y | | | ƒ Wqã t k
 rÏ ‚  qã t k
 rß qã Xq6 q6 Wd  S(   N(   t   ost   statt   chmodt   S_IRUSRt   S_IWUSRt   S_IXUSRt   st_modet   KeyboardInterruptt	   Exceptiont   opt   isdir(   t   pathst   os_statt   os_chmodt   irwusrt   irwxusrt   patht   modet   new_mode(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/clear_paths.pyt   make_paths_writable_if_possible   s*    		 
 c         C   s�   g  } xt |  D]l } t  j | ƒ rZ y t | ƒ WqZ t k
 rF ‚  qZ t k
 rV qZ Xn  t  j | ƒ r | j | ƒ q q W| S(   N(   R   R   R   R	   R
   t   append(   R   t	   remainingR   (    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/clear_paths.pyt   remove_directories_if_possible   s     c         C   s„   g  } xw |  D]o } t  j | ƒ r] y t j | ƒ Wq] t k
 rI ‚  q] t k
 rY q] Xn  t  j | ƒ r | j | ƒ q q W| S(   N(   R   t   existsR   t   removeR	   R
   R   (   R   R   R   (    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/clear_paths.pyt   remove_files_if_possible,   s     c         C   s×   g  } xÊ |  D]Â } t  j | ƒ r° t  j | ƒ } x| t d ƒ D]k } | d t j d ƒ } t  j | ƒ s> y t j | | ƒ Wn$ t k
 r” ‚  n t	 k
 r¤ n XPq> q> Wn  t  j | ƒ r | j
 | ƒ q q W| S(   Niè  s   _OBSOLETE_%8.8Xi   i    l        (   R   R   t   normpatht   xranget   randomt	   randrangeR   t   renameR	   R
   R   (   R   R   R   t   i_trialt   new_path(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/clear_paths.pyt(   rename_files_and_directories_if_possible9   s"     c         C   sb   t  d |  ƒ t d |  ƒ } t d |  ƒ } g  } x* | | g D] } | j t d | ƒ ƒ q> W| S(   NR   (   R   R   R   t   extendR#   (   R   t   remaining_dirst   remaining_filesR   t   remaining_paths(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/clear_paths.pyt2   remove_or_rename_files_and_directories_if_possibleK   s    (   t
   __future__R    t   distutils.dir_utilR   R   R   R   t   os.pathR   R   R   R   R   R#   R(   (    (    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/clear_paths.pyt   <module>   s   				