ó
Œ™xTc           @   s3   d  d l  m Z d e f d „  ƒ  YZ d „  Z d S(   iÿÿÿÿ(   t   divisiont   try_read_filec           B   s   e  Z d  „  Z RS(   c            sô  ‡  ‡ f d †  } d | k rV d d  l  j } | j ˆ ƒ rV | d d d d  ƒ d  Sn  d | k rÁ t ˆ d ƒ j d ƒ } | d	 k rÁ d d  l } | j j d
 ˆ ƒ } | d d d | ƒ d  Sn  d | k rld d  l	 } y | j
 j d
 ˆ ƒ } WnE t k
 r‚  qlt k
 r9| j
 j d
 ˆ ƒ r0‚  n  d  } qlX| j ƒ  j ƒ  d k rl| d d d | ƒ d  Sn  d | k rÞd d  l } y | j j d
 ˆ ƒ }	 Wn$ t k
 r³‚  qÞt k
 rÃqÞX| d d d |	 ƒ d  Sn  d | k red d  l }
 y |
 j j j d
 ˆ ƒ } Wn$ t k
 r(‚  qet k
 r8qeXt | ƒ d k re| d d d | ƒ d  Sn  d | k rÝ| d  k	 rÝ| j ƒ  j ƒ  d k r¬| d d  d d  ƒ d  S| j ƒ  j ƒ  d k rÝ| d d d | ƒ qÝn  | d d  d d  ƒ d  S(   Nc            s   ˆ ˆ  _  |  ˆ  _ | ˆ  _ d  S(   N(   t	   file_namet	   file_typet   file_content(   R   R   (   t   OR   (    s9   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/utils.pyt   O_assign   s    		t	   directoryiÿÿÿÿR   R   t   mtzt   rbi   t   MTZR   t   pdbi    t   philt   cif(   t   os.patht   patht   isdirt   Nonet   opent   readt	   iotbx.mtzR   t   objectt	   iotbx.pdbR   t   inputt   KeyboardInterruptt	   Exceptiont   is_pdb_filet   atomst   sizet
   iotbx.philR   t   parset   mmtbx.monomer_library.servert   monomer_libraryt   servert   read_cift   lent   unknown_sectiont   header_section(   R   R   t   input_typesR   t   opt   leadt   iotbxt   mtz_objt   pdb_inpt   phil_objt   mmtbxt   cif_obj(    (   R   R   s9   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/utils.pyt   __init__   sl     
    (   t   __name__t
   __module__R/   (    (    (    s9   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/utils.pyR      s   c            s=  t  d ƒ j t  | ƒ ƒ s! t ‚ i  ‰ x | D] } g  ˆ | <q. W| d  k rW d  ‰ n | j ƒ  ‰ g  ˆ d <d d l m ‰  d d l m ‰ d d  l	 j
 ‰ xš |  D]’ ‰ ˆ d k rÊ t | j ƒ  ƒ ‚ n  t ˆ ƒ d k râ q£ n  ‡ ‡ ‡ f d †  } ‡  ‡ ‡ ‡ ‡ ‡ f d †  } | ƒ  r£ ˆ d  k	 r£ | ƒ  q£ q£ Wˆ S(   NR   R   R   R   R   iÿÿÿÿ(   t   Sorry(   t   show_strings   --helps   -helps   -hi    c             sy   ˆ j  ˆ  ƒ s t St d ˆ  d ˆ ƒ }  |  j d  k r; t S|  j d k ra ˆ d j |  j ƒ n ˆ |  j j |  ƒ t S(   NR   R&   R   (   t   isfilet   FalseR   R   R   t   appendR   t   True(   t   obj(   t   argt   input_objectsR'   (    s9   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/utils.pyt   try_as_fileN   s      c             s�   y ˆ j  d ˆ ƒ }  Wnb t k
 r, ‚  nO t k
 rz ˆ j ˆ ƒ ra ˆ  d ˆ ˆ ƒ ƒ ‚ n  ˆ  d ˆ ˆ ƒ ƒ ‚ n Xˆ d j |  ƒ d  S(   NR9   s   Error processing file: %ss(   Command-line argument not recognized: %sR   (   t   processR   R   R4   R6   (   t   command_line_params(   R2   R9   t   argument_interpreterR:   R'   R3   (    s9   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/utils.pyt   try_as_command_line_paramsW   s      (   s	   directorys   mtzs   pdbs   cif(   s   --helps   -helps   -h(   t   sett
   issupersett   AssertionErrorR   t!   command_line_argument_interpretert   libtbx.utilsR2   t   libtbx.str_utilsR3   R   R   t
   SystemExitt   as_strR#   (   t   argst   master_philR&   t   keyR;   R?   (    (   R2   R9   R>   R:   R'   R3   s9   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/utils.pyt   process_command_line_inputs=   s*    !	
 	
N(   t
   __future__R    R   R   RK   (    (    (    s9   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/utils.pyt   <module>   s   ;