ó
“™xTc           @   sš   d  d l  m Z d  d l m Z d  d l m Z m Z d  d l m Z d  d l	 m
 Z
 d  d l m Z d  d l Z d „  Z e d	 k r– e ƒ  d
 GHn  d S(   iÿÿÿÿ(   t   division(   t   flex(   t   Exception_expectedt	   show_diff(   t   Sorry(   t   OrderedDict(   t   StringIONc          C   s¢  d d  l  }  d d l  m } | j ƒ  } t j d� ƒ | d <| j i d d d	 g d
 6d d d g d 6ƒ | j dŽ ƒ y d� | d <Wn t k
 r– n Xt ‚ t	 | ƒ d k sµ t ‚ | j
 ƒ  d k sÍ t ‚ | j ƒ  d d
 d g k sî t ‚ y d | d <Wn t k
 rn Xt ‚ | j d d� d d‘ ƒ } | j ƒ  d d g k sLt ‚ | j ƒ  t j d d d g ƒ t j d d d g ƒ g k sŽt ‚ t | j ƒ  ƒ i d d 6d d 6i d d 6d d 6i d d 6d d 6g k sßt ‚ | j ƒ  } d | d <d | d  <d! | d" <d | k st ‚ d  | k s-t ‚ d" | k s?t ‚ | d d k sUt ‚ | d  d k skt ‚ | d" d# k s�t ‚ | j ƒ  d d  d" g k s¢t ‚ | j ƒ  d d d# g k sÃt ‚ y d | d <Wn t k
 rän Xt ‚ | j | ƒ t	 | ƒ d	 k st ‚ | j ƒ  d’ d“ d” d t j d d d d g ƒ f d
 t j d d d d g ƒ f d t j d d d d g ƒ f g k s‹t ‚ d$ d% d& d' g | d
 <d
 | j d( j ƒ  k sÀt ‚ t | d
 ƒ d) d* d+ d, g k sèt ‚ | j ƒ  } d | d <d- | d. <| j d d• d d– ƒ } | j | ƒ | j | ƒ | j | ƒ | j j ƒ  d" d. d d  g k snt ‚ | j j ƒ  d# d/ d d g k s•t ‚ | j j ƒ  d( d0 g k s¶t ‚ | j ƒ  d d  d" d d d. d d g k sæt ‚ t | d ƒ d d d g k st ‚ t | d ƒ d d d g k s0t ‚ t | d ƒ d d d g k sUt ‚ t | d ƒ d d d g k szt ‚ y | d
 Wn t k
 r™n Xt ‚ | j d d— d d˜ ƒ } | j | ƒ d1 | k s×t ‚ d2 | k sét ‚ t | j d ƒ ƒ d d d g k st ‚ y | j d d3 t ƒWn t k
 r=n Xt ‚ t | j d d3 d  ƒƒ d g k snt ‚ y | j d4 ƒ Wn t k
 r’n Xt ‚ | j d4 d5 d  d6 d7 ƒd7 k sÀt ‚ | j d ƒ d k sÛt ‚ y | j d ƒ Wn t k
 rÿn Xt ‚ | j d d3 d  d6 d6 ƒd6 k s-t ‚ y | j d4 ƒ Wn t k
 rQn Xt ‚ | j d4 d5 d  ƒd  k syt ‚ | j ƒ  } | | d8 <d8 | k s¡t ‚ | d9 | k s·t ‚ | d8 d: d k sÑt ‚ d | d8 d <| d8 d d k sùt ‚ | d8 d; =y | d8 d Wn t k
 r'n Xt ‚ | j ƒ  }	 |	 d8 d( }
 |	 d< d= =|	 d8 j d ƒ smt ‚ |
 j d ƒ sƒt ‚ |	 d8 j j d( ƒ sŸt ‚ |	 d8 d =|	 d8 j j d( ƒ sÇt ‚ |	 d8 d0 =|	 d8 j j d0 ƒ sït ‚ t ƒ  } | |	 IJt  | j! ƒ  d> ƒ s	t ‚ | j" ƒ  } | j ƒ  } | d8 d | d8 d k sX	t ‚ | d8 d | d8 d k	 sz	t ‚ t" j" | ƒ } t" j | ƒ } | d | d k s²	t ‚ | d | d k	 sÌ	t ‚ | j" ƒ  } | j ƒ  } | d | d k sþ	t ‚ | d | d k	 s
t ‚ t ƒ  } | j# d? | ƒ t  | j! ƒ  d@ ƒ sM
t ‚ t ƒ  } | j# d? | dA dB dC dD ƒ t  | j! ƒ  dE ƒ sŽ
t ‚ t ƒ  } | j# d? | dA dF dG dH dC dD ƒ t  | j! ƒ  dI ƒ sÕ
t ‚ | j$ dJ t% ƒ t ƒ  } | j# d? | ƒ t  | j! ƒ  dK ƒ st ‚ | j& ƒ  } | j | ƒ d | d  <| j ƒ  } | | dL <| j i | d8 6ƒ }	 t ƒ  } |	 j# d? | ƒ t  | j! ƒ  dM ƒ sžt ‚ | j ƒ  } d | d1 <d | d2 <d | dN <| j ƒ  } d | d1 <d | dN <d | dO <| j' | ƒ } | j' | ƒ } | j ƒ  d™ dš g k s.t ‚ | j ƒ  d› dœ g k sLt ‚ | j d t( dP d� dQ dž dR dŸ ƒ ƒ }
 |
 |
 k s…t ‚ |
 |
 j ƒ  k s�t ‚ |
 | k s¯t ‚ |
 | k sÁt ‚ | j d t( dP d  dQ d¡ dR d¢ ƒ ƒ } | j |
 ƒ | j | ƒ | j' | ƒ } | d( | k s't ‚ | j d t) d d£ f d d¤ f d
 d¥ f f ƒ ƒ }
 | j ƒ  } | j |
 ƒ | j i | d8 6ƒ }	 t ƒ  } |	 j# d? | d[ i d\ d( 6ƒ t  | j! ƒ  d] ƒ sËt ‚ t ƒ  } |	 j# d? | ƒ t  | j! ƒ  d^ ƒ s t ‚ |
 j d¦ ƒ t ƒ  } |	 j# d? | ƒ t  | j! ƒ  da ƒ sBt ‚ |
 j* db d ƒ t ƒ  } |	 j# d? | ƒ t  | j! ƒ  dc ƒ s‡t ‚ |
 j ƒ  } | j* db dD ƒ | j* db dD ƒ | j* db dD ƒ y | j# d? | ƒ Wn t k
 rì} n Xt ‚ |
 j+ ƒ  y |
 j# d? | ƒ Wn t k
 r&} n Xt ‚ | j d i d§ df 6d¨ dg 6ƒ } t ƒ  } | j# d? | dh t% ƒ t  | j! ƒ  di ƒ sˆt ‚ | j ƒ  } | j ƒ  }	 | |	 dX <dF | d2 <t ƒ  } |	 j# d? | ƒ t  | j! ƒ  dj ƒ sét ‚ | j d t) dk d© f dl dª f dp d« f dr d¬ f f ƒ ƒ } t ƒ  } | j# d? | dh t% ƒ | j, dD ƒ t  dv j- dw „  | j. ƒ  Dƒ ƒ dx ƒ s€t ‚ | j ƒ  } | j ƒ  }	 | |	 dX <dy | d1 <dz | d2 <d{ | dN <d| | dO <d} | d~ <t ƒ  } | |	 IJ| j, dD ƒ t  dv j- d „  | j. ƒ  Dƒ ƒ d€ ƒ s#t ‚ |  j j/ d� | j! ƒ  ƒ j ƒ  } | dX } | d1 | d1 k sht ‚ | d2 | d2 k s‚t ‚ | dN | dN k sœt ‚ | dO | dO k s¶t ‚ | d~ j0 ƒ  | d~ k sÖt ‚ |  j j/ d� d‚ ƒ j ƒ  }	 |	 GH| j ƒ  } | j d d­ d d® ƒ } | j | ƒ | j1 d1 ƒ | k sBt ‚ | j1 d2 ƒ d  k s]t ‚ | j1 d2 d6 | ƒ| k s~t ‚ | j2 d1 d… i d_ d„ 6d` d† 6d_ d‡ 6ƒ} t | dƒ ƒ d d d g k sÍt ‚ t | d„ ƒ d d d g k sòt ‚ t | d† ƒ d` d` d` g k st ‚ t | d‡ ƒ d_ d_ d_ g k s<t ‚ | j i dX d† 6dY d‡ 6ƒ | j i dˆ d† 6d‰ d‡ 6dŠ d_ ƒt | dƒ ƒ d d d d` d_ g k s£t ‚ t | d„ ƒ d d d d` d_ g k sÎt ‚ t | d† ƒ d` d` d` dX dˆ g k sùt ‚ t | d‡ ƒ d_ d_ d_ dY d‰ g k s$t ‚ | j ƒ  } d‹ | d1 <t ƒ  } | j# d? | ƒ | j, dD ƒ t  dv j- g  | j. ƒ  D] }
 |
 j0 ƒ  ^ qvƒ dŒ ƒ sžt ‚ d  S(¯   Niÿÿÿÿ(   t   modeli   i   i   t   _loop_ai   i   i   t   _loop_ct   7t   8t   9t   _loop_bi   t   0i   t   _loop_invalidt   no_leading_underscoret   headert   _loop2_at   _loop2_bt   datat   1t   3t   5t   2t   4t   6t   _tags
   'a string't   _tag1g‰A`åÐ"	@t   _another_tags   3.142i   i   i   i   t   _loopt   11t   12t   13t   14g333333ó?t   _tag2s   1.2t   _loop2t   _at   _bt   value_errort   _none_existentt	   key_errort   defaultt
   my_defaultt   fredt   frEdt   _Tagt   _tAgt   Fredt   _loop_Bs†   data_fred
_tag1                             'a string'
_another_tag                      3.142
_tag2                             1.2

t   outsç   data_fred
_tag1                             'a string'
_another_tag                      3.142
loop_
  _loop_a
  _loop_b
  6  5
  4  3
  2  1

_tag2                             1.2
loop_
  _loop2_a
  _loop2_b
  1  2
  3  4
  5  6

t   indents       t   data_name_field_widthi    s®   data_fred
_tag1 'a string'
_another_tag 3.142
loop_
    _loop_a
    _loop_b
    6  5
    4  3
    2  1

_tag2 1.2
loop_
    _loop2_a
    _loop2_b
    1  2
    3  4
    5  6

t    t
   indent_rows      s˜   data_fred
_tag1 'a string'
_another_tag 3.142
loop_
_loop_a
_loop_b
   6  5
   4  3
   2  1

_tag2 1.2
loop_
_loop2_a
_loop2_b
   1  2
   3  4
   5  6

t	   recursivesç   data_fred
_another_tag                      3.142
_tag1                             'a string'
_tag2                             1.2
loop_
  _loop_a
  _loop_b
  6  5
  4  3
  2  1

loop_
  _loop2_a
  _loop2_b
  1  2
  3  4
  5  6

t   bobs¥   data_fred

save_bob
   loop_
    _loop_a
    _loop_c
    _loop_b
    1  11  7
    2  12  8
    3  13  9
    4  14  0

  _tag1                             3
  save_

t   _ct   _dt   _loop_dt   _loop_et   _loop_fi   ióÿÿÿgš™™™™©kÀg®Gáz@g–C‹lçû@t   at   bt   cct   loop_format_stringss   % 4i% 8.2f %ss]   data_fred
loop_
  _loop_a
  _loop_b
  _loop_c
   1 -221.30 a
  21    3.01 b
 -13    4.25 cc

sc   data_fred
loop_
  _loop_a
  _loop_b
  _loop_c
    1  -221.3  a
   21    3.01  b
  -13   4.246  cc

t   .t   ?st   data_fred
loop_
  _loop_a
  _loop_b
  _loop_c
    1  -221.3  a
   21    3.01  b
  -13   4.246  cc
    .       ?  .

t   indexsc   data_fred
loop_
  _loop_a
  _loop_b
  _loop_c
    1  -221.3  a
  -13   4.246  cc
    .       ?  .

s   string with spacest   nospacest   _a_1t   _a_2t   align_columnssH   loop_
  _a_1
  _a_2
  'string with spaces'  a
  nospaces              b
s,   data_a
_b                                ''
s   _entity_poly.entity_ids%   _entity_poly.pdbx_seq_one_letter_codet$   TFGSGEADCGLRPLFEKKSLEDKTERELLESYIDGRsd   IVEGSDAEIGMSPWQVMLFRKSPQELLCGASLISDRWVLTAAHCLLYPPWDKNFTENDLLVRIGKHSRTRYERNIEKISM
THVFRLKKWIQKVIDQFGEs   NGDFEEIPEE(TYS)LQs)   _entity_poly.pdbx_seq_one_letter_code_cant   NGDFEEIPEEYLQs   _entity_poly.pdbx_strand_idt   Lt   Ht   Is   
c         s   s   |  ] } | j  ƒ  Vq d  S(   N(   t   rstrip(   t   .0t   l(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cif/tests/tst_model.pys	   <genexpr>™  s    s  loop_
  _entity_poly.entity_id
  _entity_poly.pdbx_seq_one_letter_code
  _entity_poly.pdbx_seq_one_letter_code_can
  _entity_poly.pdbx_strand_id
  1  TFGSGEADCGLRPLFEKKSLEDKTERELLESYIDGR  TFGSGEADCGLRPLFEKKSLEDKTERELLESYIDGR  L
  2
;
IVEGSDAEIGMSPWQVMLFRKSPQELLCGASLISDRWVLTAAHCLLYPPWDKNFTENDLLVRIGKHSRTRYERNIEKISM
THVFRLKKWIQKVIDQFGE
;

;
IVEGSDAEIGMSPWQVMLFRKSPQELLCGASLISDRWVLTAAHCLLYPPWDKNFTENDLLVRIGKHSRTRYERNIEKISM
THVFRLKKWIQKVIDQFGE
;
  H
  3  NGDFEEIPEE(TYS)LQ                     NGDFEEIPEEYLQ                         Is   1 "a" 2s   1 'b' 3s   O1's   O2"s   1 'a' "b" 3t   _ec         s   s   |  ] } | j  ƒ  Vq d  S(   N(   RN   (   RO   RP   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cif/tests/tst_model.pys	   <genexpr>¹  s    s¿   data_a
_a                                '1 "a" 2'
_b                                "1 'b' 3"
_c                                O1'
_d                                O2"
_e
;
1 'a' "b" 3
;

t   input_strings±  data_a
loop_
  _pdbx_refine_tls_group.id
  _pdbx_refine_tls_group.refine_tls_id
  _pdbx_refine_tls_group.selection
  _pdbx_refine_tls_group.selection_details
  1  1  ?  "chain 'A' and (resid    2  through   15 )"
  2  2  ?  "chain 'A' and (resid   16  through   26 )"
  3  3  ?  "chain 'A' and (resid   27  through   43 )"
  4  4  ?  "chain 'B' and (resid    1  through   14 )"
  5  5  ?  "chain 'B' and (resid   15  through   20 )"
s   _a.1s   _a.2t   default_dicts   _a.3s   _a.4t   ct   dt   default_values   123
456s   _a
;
123
456
;
(   i   i   i   (   i   i   R   (   i   i   (   R   R   (   i   i   i   i   i   i   (   R   R   (   R   s
   'a string'(   R   s   3.142(   R   R   (   i   i   i   i   i   i   (   R%   R&   (   i   i   i   i   i   i   (   R&   R   (   R%   R   (   R:   R   (   R%   R   (   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   ióÿÿÿ(   gš™™™™©kÀg®Gáz@g–C‹lçû@(   R>   R?   R@   (   RB   RC   RB   (   s   string with spacesRE   (   R>   R?   (   R   R   R   (   RI   sd   IVEGSDAEIGMSPWQVMLFRKSPQELLCGASLISDRWVLTAAHCLLYPPWDKNFTENDLLVRIGKHSRTRYERNIEKISM
THVFRLKKWIQKVIDQFGEs   NGDFEEIPEE(TYS)LQ(   RI   sd   IVEGSDAEIGMSPWQVMLFRKSPQELLCGASLISDRWVLTAAHCLLYPPWDKNFTENDLLVRIGKHSRTRYERNIEKISM
THVFRLKKWIQKVIDQFGERJ   (   RK   RL   RM   (   s   _a.1s   _a.2(   i   i   i   i   i   i   (3   t	   iotbx.cifR   t   loopR   t   doublet   add_columnst   add_rowt   AssertionErrorR   t   lent   sizet   keysR   t   valuest
   std_stringt   listt   iterrowst   blockt   add_loopt   itemst   loopst   updatet   _itemst   KeyErrort   get_looped_itemt
   ValueErrort   Nonet   get_single_itemt   cift   deepcopyt   has_keyR   R   t   getvaluet   copyt   showt   sortt   Truet   savet
   differencet   dictR   t
   delete_rowt   cleart   seekt   joint	   readlinest   readert   stript   get_loopt   get_loop_with_defaults(   t   iotbxR   RX   t   loop2Rd   t   block1t   loop3t   bad_loopt	   cif_modelt   cmRP   t   st   cm2t   cm3t   b2t   b3t   l2t   l3Rw   t   b1t   b4t   b5R?   t   et   cbt   cb2t	   cif_blockt   loop_a(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cif/tests/tst_model.pyt   exercise_cif_model
   sr     !  $ 


!!  		-(

''!%%%%  *  *  !  !  !
  	
""			"	

	





''		
	
		
  
  	

		    	





	
!
 !$%%%%!++++
	.t   __main__t   OK(   t
   __future__R    t   cctbx.array_familyR   t   libtbx.test_utilsR   R   t   libtbx.utilsR   t   libtbx.containersR   t	   cStringIOR   Rs   R™   t   __name__(    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cif/tests/tst_model.pyt   <module>   s   	ÿ ÷