ó
é™xTc           @   s  d  d l  m Z d  d l m Z d  d l Z d  d l m Z d  d l m Z m	 Z	 m
 Z
 d  d l m Z d  d l m Z d  d l Z d  d l m Z d  d l Z d  d l Z d  d l Z d	 „  Z d
 e f d „  ƒ  YZ d „  Z e Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d „  Z e d „ Z d „  Z d „  Z d „  Z  e e! d „ Z" e d „ Z# d „  Z$ d „  Z% e d d „ Z& d „  Z' d „  Z( d „  Z) e Z* d  Z+ e j, d! ƒ Z- d" Z. e j, e. ƒ Z/ d# „  Z0 d$ „  Z1 d% „  Z2 d& „  Z3 d' e f d( „  ƒ  YZ4 d) e f d* „  ƒ  YZ5 e j6 d+ e4 e5 g ƒ Z7 d, „  Z8 d- „  Z9 d. „  Z: d/ „  Z; d0 „  Z< d1 „  Z= d2 „  Z> d3 „  Z? d4 „  Z@ d5 „  ZA e ZB d6 „  ZC d7 f  d8 „  ƒ  YZD d9 e f d: „  ƒ  YZE d; „  ZF d< „  ZG d= „  ZH d> „  ZI d? „  ZJ eK d@ k reJ ƒ  n  d S(A   iÿÿÿÿ(   t   division(   t   philN(   t   Sorry(   t   Exception_expectedt	   show_difft   anchored_block_show_diff(   t   easy_pickle(   t   Auto(   t   StringIOc             s�  d g ‰  x× d d d d g D]Ã ‰ ‡  ‡ f d †  }  d d d d d	 g } x“ | D]‹ } |  d
 | ƒ xu | D]m } | | } |  d
 | ƒ xM | D]E } | | } |  d
 | ƒ x% | D] } | | } |  d
 | ƒ q² WqŽ Wqj WqP Wq Wˆ  d d k sù t  ‚ d „  }	 |	 d d ƒ }
 t |
 ƒ d k s)t  ‚ |
 d j d k sBt  ‚ t |
 d ƒ d k s^t  ‚ d j g  t d ƒ D] } t | ƒ ^ qqƒ } |	 d t j j	 d d d
 | ƒ ƒ }
 t |
 ƒ d k sÈt  ‚ |
 d j | k sát  ‚ |	 d t |
 d ƒ ƒ }
 t |
 ƒ d k st  ‚ |
 d j | k s+t  ‚ t j j
 d | d d ƒ } |	 d t | ƒ ƒ }
 t |
 ƒ d k sst  ‚ |
 d j | k sŒt  ‚ d  S(   Ni    t   't   "s   '''s   """c            s«   t  j j d ˆ d |  ƒ } t  j d | d d ƒ } t | ƒ d k sK t ‚ | d } | j ˆ k sj t ‚ | j |  k s t ‚ t | ƒ | k s— t ‚ ˆ  d c d 7<d  S(   Nt   quote_tokent   stringt   input_stringt   source_infot   test_stringi   i    (	   R   t	   tokenizert   quote_python_strt   tokenize_value_literalt   lent   AssertionErrorR   t   valuet   str(   R   R   t   wordst   word(   t   n_okR   (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   check   s    	
t    s   
t   xR   i0  c         S   s   t  j d |  d d  ƒ S(   NR   R   (   R   R   t   None(   R   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   tvl*   s    	R   s   "	
z�"i   s   	
z�i   R   R   (   R   R   R   R   t   joint   xranget   chrR   R   R   R   (   R   t   ch_sett   c0t   c1t   c01t   c2t   c012t   c3t   c0123R   R   t   _R   R   (    (   R   R   s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt"   exercise_string_quote_and_tokenize   sB    	


!	.t   recyclec           B   s   e  Z d  d d d d „ Z RS(   R   i    c      	   C   s-  t  j d | ƒ |  _ t ƒ  |  _ |  j j d |  j d | d | d | ƒ |  j j ƒ  |  _ | d  k	 rƒ t |  j | ƒ sƒ t	 ‚ n  | d k r)t  j d |  j ƒ } t ƒ  } | j d | d | d | d | ƒ | j ƒ  } | |  j k r)d GHt
 j j |  j ƒ d GHt
 j j | ƒ t d	 ƒ ‚ q)n  d  S(
   NR   t   outt   prefixt   attributes_levelt   print_widthR   s	   self.out:s   out_out:s   out_out != self.out(   R   t   parset
   parametersR   R-   t   showt   getvalueR   R   R   t   syst   stdoutt   writet   RuntimeError(   t   selfR   R.   R/   R0   t   expected_outt   out_parameterst   out_out(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   __init__@   s2    			N(   t   __name__t
   __module__R   R=   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR,   >   s   c       	   C   s\  x3 d d d d d d g D] }  t  d |  d d ƒ q Wt  d d	 d d
 ƒ t  d d d d ƒ t  d d d d ƒ t  d d d d d d ƒ } d }  t  d |  d d d d ƒ t  d |  d d d d ƒ t  d |  d d d d ƒ t  d |  d d d d
 ƒ t  d |  d d d d d d ƒ t  d d d d ƒ t  d d d d d d  ƒ t  d d! d d" ƒ t  d d# d$ d% d d& ƒ t  d d' d d d d( ƒ t j d d) ƒ } t | j d* d ƒ d+ ƒ s¸t ‚ t | j d* d ƒ d, ƒ sÚt ‚ x< d- d d d  g D]( } t | j d* | ƒ d. ƒ sít ‚ qíWt  d d/ d d0 ƒ t  d d1 d d2 ƒ t  d d3 d d d d4 ƒ d  S(5   NR   s   
s      
s	      	 
 	 t   #s   	#R   R:   s      name	=value

s   name = value
s   name="value\\"s   name = "value\\"
s   name="value\\\""s   name = "value\\\""
s      name	=	value

R/   i   s·   name = value
  .help = None
  .caption = None
  .short_caption = None
  .optional = None
  .type = None
  .multiple = None
  .input_size = None
  .style = None
  .expert_level = None
sR   name=value
.help=help message with detailed information
.optional=True
.type=path
sÛ   name = value
  .help = "help message with detailed information"
  .caption = None
  .short_caption = None
  .optional = True
  .type = path
  .multiple = None
  .input_size = None
  .style = None
  .expert_level = None
i   sb   name = value
  .help = "help message with detailed information"
  .optional = True
  .type = path
i   s@   name = value
  .help = "help message with detailed information"
i    R0   i   sX   name = value
  .help = "help message"
          "with detailed"
          "information"
s   name { }s	   name {
}
s&   name
.help=message
.expert_level=3
{ }sé   name
  .style = None
  .help = message
  .caption = None
  .short_caption = None
  .optional = None
  .call = None
  .multiple = None
  .sequential_format = None
  .disable_add = None
  .disable_delete = None
  .expert_level = 3
{
}
s   name{a=b
c=d
}s   name {
  a = b
  c = d
}
s.   a=b
c=d
 e {} name { var1=None
var2=None
} f=gR.   s    prefix s…    prefix a = b
 prefix c = d
 prefix e {
 prefix }
 prefix name {
 prefix   var1 = None
 prefix   var2 = None
 prefix }
 prefix f = g
sì   !name # 1 2 3
  !.help="a"
        "b"
        "c"
      # 1 2 3
  .expert_level=1 # x
        # 1 2 3
{
  !a=b
    .type="int" # y
  c=d # e
    !.help="d"
          "e"
          "f"
    .expert_level=2
}
d=a b c # 1 {2} 3 \
4 {5 6}}
s_   !name
  .expert_level = 1
{
  !a = b
    .type = int
  c = d
    .expert_level = 2
}
d = a b c
sx   x=1
y=2
  .expert_level=1
z=3
  .expert_level=2
s {
  a=x
}
t
  .expert_level=1
{
  a=y
}
u
  .expert_level=2
{
  a=z
}
t   expert_levels   x = 1
s {
  a = x
}
s(   x = 1
y = 2
s {
  a = x
}
t {
  a = y
}
iÿÿÿÿs<   x = 1
y = 2
z = 3
s {
  a = x
}
t {
  a = y
}
u {
  a = z
}
s   s{a=1}t{b=2}s   s {
  a = 1
}
t {
  b = 2
}
s   s{a=1;b=2  b ;c=3}t{x=4;y=5;}s6   s {
  a = 1
  b = 2 b
  c = 3
}
t {
  x = 4
  y = 5
}
s{   a=None;.type=int;s .multiple=True;.optional=False{c=None}t .style=column;{d=None;.type=float;.optional=True;e=x;.type=str;}s±   a = None
  .type = int
s
  .optional = False
  .multiple = True
{
  c = None
}
t
  .style = column
{
  d = None
    .optional = True
    .type = float
  e = x
    .type = str
}
(   R,   R   R1   R   t   as_strR   R   (   R   t   rt   paramsRA   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_parse_and_show`   s~    				
t   int_phil_convertersc           B   s/   e  Z d  d „ Z d „  Z d „  Z d „  Z RS(   i   c         C   s%   t  | ƒ | k s t ‚ | |  _ d  S(   N(   t   intR   t   factor(   R9   RH   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR=   W  s    c         C   s   |  j  d k r d Sd |  j  S(   Ni   s   libtbx.phil.tst.ints   libtbx.phil.tst.int(factor=%d)(   RH   (   R9   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   __str__[  s     c         C   s9   t  j d | d | j ƒ  ƒ } | d  k r. | S| |  j S(   NR   t   path(   R   t   int_from_wordst	   full_pathR   RH   (   R9   R   t   masterR   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt
   from_words_  s     c         C   sE   | d  k r" t j j d d ƒ g St j j d t | |  j ƒ ƒ g S(   NR   R   (   R   R   R   R   R   RH   (   R9   t   python_objectRM   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   as_wordsd  s    (   R>   R?   R=   RI   RN   RP   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRF   U  s   		t   converter_implementationc           B   s   e  Z d  „  Z RS(   c         C   s   |  j  d k r d Sd |  j  S(   Ni   s!   libtbx.phil.tst.converter_factorys,   libtbx.phil.tst.converter_factory(factor=%d)(   RH   (   R9   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRI   k  s     (   R>   R?   RI   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRQ   i  s   c          K   s
   t  |  �  S(   N(   RQ   (   t   args(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt!   converter_factory_phil_converterso  s    c          C   s  d }  t  d |  d d d d ƒ } | j j ƒ  } | j d  k sE t ‚ | j d k sZ t ‚ | j d  k so t ‚ | j d k s„ t ‚ | j	 d	 k s™ t ‚ y t
 j d
 ƒ Wn+ t k
 r× } t | ƒ d k sÞ t ‚ n Xt ‚ y t
 j d ƒ Wn+ t k
 r} t | ƒ d k s#t ‚ n Xt ‚ y t
 j d ƒ Wn+ t k
 ra} t | ƒ d k sht ‚ n Xt ‚ y t
 j d ƒ WnI t k
 rÄ} t | ƒ } | j d ƒ s¬t ‚ | j d ƒ sËt ‚ n Xt ‚ y t
 j d ƒ Wn+ t k
 r	} t | ƒ d k st ‚ n Xt ‚ d  S(   NsÞ   x1=None
  .type=libtbx.phil.tst.int
y1=3
  .type=libtbx.phil.tst.int
x2=None
  .type=libtbx.phil.tst.int(factor=2)
y2=3
  .type=libtbx.phil.tst.int( factor = 2 )
z3=4
  .type=libtbx.phil.tst.converter_factory( factor= 3 )
R   R:   së   x1 = None
  .type = libtbx.phil.tst.int
y1 = 3
  .type = libtbx.phil.tst.int
x2 = None
  .type = libtbx.phil.tst.int(factor=2)
y2 = 3
  .type = libtbx.phil.tst.int(factor=2)
z3 = 4
  .type = libtbx.phil.tst.converter_factory(factor=3)
R/   i   i   i   i   s   x=None
  .type=foo.int
s4   Unexpected definition type: "foo.int" (input line 2)s$   x=None
  .type=libtbx.phil.tst.none
sn   .type=libtbx.phil.tst.none: object "none_phil_converters" not found in module "libtbx.phil.tst" (input line 2)s(   x=None
  .type=libtbx.phil.tst.improper
sY   "libtbx.phil.tst.improper_phil_converters" is not a callable Python object (input line 2)s/   x=None
  .type=libtbx.phil.tst.int(factor=1.5)
sV   Error constructing definition type "libtbx.phil.tst.int(factor=1.5)": AssertionError: s    (input line 2)s*   x=None
  .type=libtbx.phil.tst.int(a=1=2)
sr   Error evaluating definition type "libtbx.phil.tst.int(a=1=2)": SyntaxError: invalid syntax (line 1) (input line 2)(   R,   R2   t   extractt   x1R   R   t   y1t   x2t   y2t   z3R   R1   R8   R   R   t   AttributeErrort	   TypeErrort
   startswitht   endswith(   R   RC   RD   t   e(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_import_convertersr  sV    	     c         C   s®   y t  j d |  ƒ Wn� t k
 r* ‚  n€ t k
 r£ } | d  k sW t | ƒ | k ry t | ƒ GH| d  k	 ry | GHqy n  | d  k	 rª t | ƒ | k s  t ‚ qª n Xt ‚ d  S(   NR   (   R   R1   t   KeyboardInterruptt	   ExceptionR   R   R   R   (   R   t   exception_stringR^   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   test_exceptionÃ  s      c           C   sI  t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d	 d
 ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d d ƒ t  d  d! ƒ t  d" d# ƒ t  d$ d# ƒ t  d% d# ƒ t  d& d' ƒ t  d( d' ƒ t  d) d* ƒ t  d+ d, ƒ d  S(-   Ns   'a's0   Unquoted word expected, found 'a' (input line 1)t   as   Unexpected end of input.s   a=
bs"   Missing value for a (input line 1)s   x=;s"   Missing value for x (input line 1)s   s{z=}s"   Missing value for z (input line 1)s   s{y={s"   Missing value for y (input line 1)s   s{y=1{s+   Syntax error: unexpected "{" (input line 1)s   s{y=#s   a bs4   Syntax error: expected "=", found "b" (input line 1)s   {}s   a {s5   Syntax error: no matching "}" for "{" at input line 1s   ;{}s+   Syntax error: unexpected ";" (input line 1)s   s{;}s   a=b
.foo nones4   Unexpected definition attribute: .foo (input line 2)s
   a=b
c "abcs2   Syntax error: missing closing quote (input line 2)s   1 {s4   Syntax error: improper scope name "1" (input line 1)s
   scope
.foos/   Unexpected scope attribute: .foo (input line 2)s   a. 2s:   Syntax error: improper definition name "a." (input line 1)s   a.include=Nones-   Reserved identifier: "include" (input line 1)s
   include {}s   a.include.b.c {}s   __foo__=Nones-   Reserved identifier: "__foo__" (input line 1)s
   __foo__ {}s   a=None
.type=foos0   Unexpected definition type: "foo" (input line 2)s#   s .multiple=True .optional=False {}sW   One True or False value expected, .multiple="True .optional=False" found (input line 1)(   Rc   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_syntax_errorsÏ  sd    c          C   s»  t  j d d ƒ j ƒ  d k s$ t ‚ t  j d d ƒ j ƒ  d k sH t ‚ t  j d d ƒ j ƒ  d k sl t ‚ t  j d d ƒ j ƒ  d k s� t ‚ t  j d d ƒ j ƒ  d k s´ t ‚ t  j d d	 ƒ }  t |  j ƒ  d
 ƒ sâ t ‚ |  j d d ƒ j d j d j d k st ‚ |  j d d ƒ j d j d j d k s@t ‚ |  j d d ƒ j d j d j d k sot ‚ y t  j d d ƒ Wn+ t	 k
 r°} t
 | ƒ d k s·t ‚ n Xt ‚ d  S(   NR   s   #phil __ON__
a=1s   a = 1
s   #phil __OFF__
a=1R   s   #phil __END__
a=1s   #phil __OFF__
#phil __ON__ 
a=1s   #phil __END__
#phil __ON__ 
a=1s—   
#phil __OFF__
a b c
#phil __ON__
a=1
#phil __OFF__
c a b
 #phil __ON__
b=2

#phil __ON__
c=3
# phil __OFF__
d=4
#phil __OFF__ b
e=5
#phil __OFF__
f=6
s   a = 1
c = 3
d = 4
RJ   Rd   i    i   t   ci   t   di   s   #phil __Off__
s%   Unknown: #phil __Off__ (input line 1)(   R   R1   RB   R   R   t   gett   objectsR   t   line_numberR8   R   R   (   RD   R^   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_phil_on_off_end  s&    $$$		/// c          C   s#   t  j d d ƒ }  t j |  ƒ d  S(   NR   s     a=1
  b {
    a=1
  }
(   R   R1   t   copyt   deepcopy(   R2   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_deepcopy-  s    		c         C   s�   t  ƒ  } |  j d | d | ƒ j d | ƒ | j ƒ  } | d  k sO | | k rb t j j | ƒ n  | d  k	 r‰ | | k r‰ t d ƒ ‚ n  d  S(   NRJ   t   with_substitutionR-   s   out != expected_out(	   R   Rh   R3   R4   R   R5   R6   R7   R8   (   R2   RJ   R:   Ro   R-   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt	   check_get6  s    		c         C   s   t  |  | | d t ƒd  S(   NRo   (   Rp   t   True(   R2   RJ   R:   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   check_get_subA  s    c          C   sš   t  j d d ƒ }  t |  d d d d ƒt |  d d d d ƒt |  d d	 d d
 ƒt |  d d d d ƒt |  d d d d ƒt |  d d d d ƒd  S(   NR   s   a=b
c=d
e {
  a=1
  b=x
}
e=gRJ   R   R:   s(   a = b
c = d
e {
  a = 1
  b = x
}
e = g
Rd   s   a = b
R^   s   e {
  a = 1
  b = x
}
e = g
s   e.as   a = 1
s   e.bs   b = x
s   e.c(   R   R1   Rp   (   R2   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt!   exercise_get_without_substitutionD  s    		c          C   s„  t  d d d d ƒ j }  t |  d d d d ƒt |  d d d d	 ƒt |  d d
 d d ƒt |  d d d d ƒg  |  j ƒ  D] } | j ^ q} d d d d
 d d g k s° t ‚ g  |  j d t ƒ D] } | j ^ qÃ d d d d
 d g k só t ‚ t j d d ƒ }  t |  d d d d ƒt |  d d d d ƒt |  d d d d ƒt |  d d d d ƒt j d d ƒ }  t	 ƒ  } |  j
 d | ƒ t | j ƒ  d ƒ s¤t ‚ t |  d d d d ƒt |  d d d d ƒt |  d d d d ƒt |  d d  d d! ƒt |  d d d d" ƒt |  d d d d# ƒt |  d d$ d d ƒt |  d d% d d! ƒt j d d& ƒ }  t |  d d' d d( ƒt |  d d) d d* ƒt |  d d+ d d, ƒt |  d d- d d. ƒt |  d d/ d d0 ƒt |  d d1 d d2 ƒt j d d3 ƒ }  t |  d d- d d4 ƒt |  d d/ d d5 ƒt |  d d6 d d7 ƒt |  d d8 d d9 ƒt |  d d: d d; ƒt |  d d< d d= ƒd  S(>   NR   sª   d0=0
a0 {
  d1=a b c
  include file name
  a1 {
    t0 {
      c=yes
      t1 {
        x=0
        y=1.
          .multiple=True
      }
    }
  }
  d2=e f 0g
  !d3=x
}
R:   sŸ   d0 = 0
a0 {
  d1 = a b c
  include file name
  a1 {
    t0 {
      c = yes
      t1 {
        x = 0
        y = 1.
      }
    }
  }
  d2 = e f 0g
  !d3 = x
}
RJ   s   a0.d1s   d1 = a b c
s
   a0.a1.t0.cs   c = yes
s   a0.a1.t0.t1.xs   x = 0
s   a0.a1.t0.t1.ys   y = 1.
t   d0s   a0.d2t   suppress_multiples   s {
  a=0
}
t.a=0
t   ss   s {
  a = 0
}
s   s.as   a = 0
t   ts   t.a = 0
s   t.as4   s {
  a {
    b=0
    c.d=1
  }
}
t.a.b=0
t.a.c.d=1
R-   s<   s {
  a {
    b = 0
    c.d = 1
  }
}
t.a.b = 0
t.a.c.d = 1
s&   s {
  a {
    b = 0
    c.d = 1
  }
}
s   a {
  b = 0
  c.d = 1
}
s   s.a.bs   b = 0
s   s.a.cs   c.d = 1
s   t.a.b = 0
t.a.c.d = 1
s   a.b = 0
a.c.d = 1
s   t.a.bs   t.a.cs"   a { b { } c { } }
x.y { }
x.z { }
Rd   s   a {
  b {
  }
  c {
  }
}
s   a.bs   b {
}
s   a.cs   c {
}
R   s   x.y {
}
x.z {
}
s   x.ys   y {
}
s   x.zs   z {
}
s   x.y { a.b { d.e=0
} }
s    x.y {
  a.b {
    d.e = 0
  }
}
s   y {
  a.b {
    d.e = 0
  }
}
s   x.y.as   a.b {
  d.e = 0
}
s   x.y.a.bs   b {
  d.e = 0
}
s	   x.y.a.b.ds   d.e = 0
s   x.y.a.b.d.es   e = 0
(   R,   R2   Rp   t   all_definitionsRJ   R   Rq   R   R1   R   R3   R   R4   (   R2   t   itemR-   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_nestedh  s�    !											i   c         C   sŸ   |  j  d | d t ƒ } t | j ƒ | k s3 t ‚ | j d j ƒ  j ƒ  } | d  k rv d | | j d d ƒ f GHn% | | k r› t d | | f ƒ ‚ n  d  S(   NRJ   Ro   i    s1     check_resolve_variables(parameters, "%s", "%s")s   
s   \ns   "%s" != "%s"(	   Rh   t   FalseR   Ri   R   t   resolve_variablesRB   R   t   replace(   R2   RJ   R:   t	   n_matchest   matchest   result(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   check_resolve_variables*  s    c          C   s�  t  j d d ƒ }  t |  d d d d ƒt |  d d d d ƒt |  d d ƒ t |  d d ƒ t  j d d	 ƒ }  t |  d d
 ƒ t |  d d ƒ t |  d d ƒ t |  d d d d ƒt |  d d ƒ t |  d d ƒ t |  d d ƒ t |  d d ƒ t |  d d ƒ t |  d d ƒ t |  d d d d ƒt |  d  d! ƒ t |  d" d# ƒ t |  d$ d% ƒ t |  d& d' ƒ y t |  d( ƒ Wn+ t k
 rª} t | ƒ d) k s±t ‚ n Xt ‚ t |  d* d+ ƒ t |  d, d- ƒ t |  d. d/ ƒ t |  d0 d1 ƒ t |  d2 d3 ƒ t |  d4 d5 ƒ t |  d6 d7 ƒ y t |  d8 ƒ Wn+ t k
 r_} t | ƒ d9 k sft ‚ n Xt ‚ t |  d* d+ ƒ t  j d d: ƒ }  t |  j	 d d d; t
 ƒ j ƒ d< k sµt ‚ i d= d 6d> d 6d> d 6d? d 6d@ d 6d? d& 6d? d( 6} xƒ dA D]{ } y |  j	 d | ƒ WnX t k
 rg} t | ƒ | | k rnt dB t t | ƒ ƒ t | | ƒ f ƒ ‚ qnqóXt ‚ qóWy |  j	 d d* ƒ Wn+ t k
 r³} t | ƒ dC k sºt ‚ n Xt ‚ dD t j dE <t |  d d* d dF ƒ|  j	 d d* ƒ j dG j dG j ƒ  dH k st ‚ t |  d dI d dJ ƒt |  d dK d dL ƒt |  d dM d dN ƒt |  d dO d dP ƒt |  d d. d dQ ƒt |  d d8 d dR ƒt |  d dS d dT ƒt  j d dU ƒ }  t |  d d d dV ƒt |  d d d dW ƒt |  d d d dX ƒt |  d d d dY ƒt |  d dZ d d[ ƒt |  d d d d\ ƒt |  d d& d d] ƒt |  d d( d d^ ƒt |  d d* d d_ ƒy |  j	 d d, ƒ Wn/ t k
 rÆ} t | ƒ d` da k sÍt ‚ n Xt ‚ y |  j	 d d. ƒ Wn+ t k
 r} t | ƒ db k st ‚ n Xt ‚ y |  j	 d d0 ƒ Wn/ t k
 rZ} t | ƒ dc dd k sat ‚ n Xt ‚ y |  j	 d d8 ƒ Wn+ t k
 r¢} t | ƒ de k s©t ‚ n Xt ‚ y |  j	 d dS ƒ Wn+ t k
 rê} t | ƒ df k sñt ‚ n Xt ‚ t |  d dg d dh ƒt  j d di ƒ }  t |  d dj d dk ƒt  j d dl ƒ }  y |  j	 d d ƒ Wn+ t k
 r‚} t | ƒ dm k s‰t ‚ n Xt ‚ d  S(n   NR   s   a=b
c = d   e   2
RJ   Rd   R:   s   a = b
Rf   s
   c = d e 2
s  a=1
b=$a
c=$b
d=2
e=$(.d) $c
s {
  i=10
  j=$i
  k=$j
  l=20
  m=$l $k
  n=$a
  t {
    x=$l
    y=$k
    z=$n
    n=$a $j $y
  }
  d=9
  e=$(d)
  f=$(.d)
  g=$(.s.t.x)
}
d=x
f=$(s.i)
g=$(s.a)
s {
  t {
    x=30
    a=40
  }
}
h=$(s.t.x)
i=$(s.t.a)
j=$(s.t.n)
k=$(.s.t.x)
l=$s
s   a = 1
t   bs   b = 1
s   c = 1
Rg   s   d = 2
R~   i   R^   s   e = 2 1
s   s.is   i = 10
s   s.js   j = 10
s   s.ks   k = 10
s   s.ms
   m = 20 10
s   s.ns   n = 1
s   s.t.xs   x = 20
s   s.t.ys   y = 10
s   s.t.zs   z = 1
s   s.t.ns   n = 1 10 10
t   fs   f = 10
t   gs(   Undefined variable: $s.a (input line 26)t   hs   h = 30
t   is   i = 40
t   js   j = 1 10 10
t   ks   k = 30
s   s.es   e = 9
s   s.fs   f = 2
s   s.gs   g = 20
t   ls$   Not a definition: $s (input line 37)s©   a=$a
b=$c
c=$b
d=$e
e=$f
f=$d
g=$d
h=$_X_Y_Z_
o=$_X_Y_Z_/abc.ext
p="$_X_Y_Z_/abc.ext"
q=$o$_X_Y_Z_/abc.ext$p
r="$o$_X_Y_Z_ abc.ext$p"
i=0
i=1
j=$i
k=x
k=y
l=$k
k=z
m=$k
Ro   i   s%   Undefined variable: $a (input line 1)s%   Undefined variable: $c (input line 2)s%   Undefined variable: $e (input line 4)s%   Undefined variable: $f (input line 5)t   abcdefgs   %s != %ss+   Undefined variable: $_X_Y_Z_ (input line 8)t   xyzt   _X_Y_Z_s
   h = "xyz"
i    s    (environment: "_X_Y_Z_")t   os   o = "xyz/abc.ext"
t   ps   p = "xyz/abc.ext"
t   qs(   q = "xyz/abc.extxyz/abc.extxyz/abc.ext"
RC   s(   r = "xyz/abc.extxyz abc.extxyz/abc.ext"
s   j = 1
s   l = y
t   ms   m = z
s‘   a=x
b=$a
c=$a $b.d
d=$a \$b
answer=yes no
e="$a"
f=$(a)
g=abc$(answer)bc
h=abc$(answer)bc 12$answer$(a)56
i=$
j=$(abc
k=$(1bc)
l=$()
m=$@
n='$a'
s   a = x
s   b = x
s   c = x "x.d"
s
   d = x \$b
t   answers   answer = yes no
s   e = "x"
s   f = x
s   g = "abcyes nobc"
s    h = "abcyes nobc" "12yes nox56"
s2   Syntax error: $ must be followed by an identifier:s    "$" (input line 10)s2   Syntax error: missing ")": "$(abc" (input line 11)s-   Syntax error: improper variable name "$(1bc)"s    (input line 12)s:   Syntax error: improper variable name "$()" (input line 13)s9   Syntax error: improper variable name "$@" (input line 14)t   ns	   n = '$a'
sR   v=x
w=y
s {
  a=$v
  s {
    a=$w
    b=$(s.a)
    c=$(s.s.a)
    d=$(.s.a)
  }
}
Rv   s@   s {
  a = x
  s {
    a = y
    b = y
    c = y
    d = x
  }
}
s
   a=$b
!b=y
s%   Undefined variable: $b (input line 1)(   R   R1   Rr   R�   R8   R   R   R   R   Rh   R{   Ri   t   reprt   ost   environR   t	   where_str(   R2   R^   t   diagsRJ   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_get_with_substitution4  s    			&	  		-
 3
 #		     		
		 c       	   C   sj   t  j d d ƒ }  xQ d d d d d d d	 d
 d g	 D]. } |  j | ƒ j d j ƒ  | k s4 t ‚ q4 Wd  S(   NR   s_   d0=0
a0 {
  d1=a
  a1 {
    t0 {
      c=yes
      t1 {
        x=0
      }
    }
  }
  d2=e
}
Rt   t   a0s   a0.d1s   a0.a1s   a0.a1.t0s
   a0.a1.t0.cs   a0.a1.t0.t1s   a0.a1.t0.t1.xs   a0.d2i    (   R   R1   Rh   Ri   RL   R   (   RD   RJ   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_full_path  s
    		c          C   sß  t  d d ƒ d IJt  d d ƒ d IJt  d d ƒ d IJt j d d	 d
 t ƒ }  t ƒ  } |  j d | ƒ t | j ƒ  d ƒ s† t ‚ t ƒ  } |  j	 ƒ  j d | ƒ t | j ƒ  d ƒ sÁ t ‚ y |  j
 d d ƒ Wn+ t k
 r} t | ƒ d k s	t ‚ n Xt ‚ y t j d ƒ Wn t k
 r-n Xt  d d ƒ d IJt  d d ƒ d IJt  d d ƒ d IJy t j d d d
 t ƒ }  WnU t k
 rÚ} t | ƒ j d ƒ s°t ‚ t t | ƒ j d ƒ ƒ d k sát ‚ n Xt ‚ t  d d ƒ d IJt  d d ƒ d IJt  d d ƒ d IJt j d d d
 t ƒ }  t ƒ  } |  j d | ƒ t | j ƒ  d ƒ sgt ‚ t  d d ƒ d  IJt j d d d
 t ƒ }  t ƒ  } |  j d | ƒ t | j ƒ  d! ƒ sÇt ‚ t ƒ  } |  j	 ƒ  j d | ƒ t | j ƒ  d" ƒ st ‚ y t j d d# d
 t ƒ Wn+ t k
 rI} t | ƒ d$ k sPt ‚ n Xt ‚ y t j d d% d
 t ƒ Wn+ t k
 r—} t | ƒ d& k sžt ‚ n Xt ‚ y t j d d' d
 t ƒ Wn+ t k
 rå} t | ƒ d( k sìt ‚ n Xt ‚ t j d d) d
 t ƒ } t | j d* d+ ƒ d, ƒ s&t ‚ t j d d- d
 t ƒ } t | j d* d+ ƒ d. ƒ s`t ‚ t | j
 d/ ƒ j d0 j ƒ  d/ ƒ sŒt ‚ t j d d1 d
 t ƒ } t | j d* d+ ƒ d2 ƒ sÆt ‚ t j d d3 d
 t ƒ } t | j d* d+ ƒ d4 ƒ s t ‚ t j d d5 d
 t ƒ } t | j d* d+ ƒ d6 ƒ s:t ‚ xžd7 d8 g D]�} t j d d9 | d
 t ƒ } t | j d* d+ ƒ d: ƒ s‹t ‚ | j ƒ  } | j j j ƒ  d; k sµt ‚ y t j d d< d
 t ƒ Wn+ t k
 rü} t | ƒ d= k st ‚ n Xt ‚ y t j d d> d
 t ƒ Wn+ t k
 rJ} t | ƒ d? k sQt ‚ n Xt ‚ y t j d d@ d
 t ƒ Wn+ t k
 r˜} t | ƒ dA k sŸt ‚ n Xt ‚ y t j d dB d
 t ƒ Wn+ t k
 ræ} t | ƒ dC k sít ‚ n Xt ‚ y t j d dD d
 t ƒ Wn+ t k
 r4} t | ƒ dE k s;t ‚ n Xt ‚ y t j d dF d
 t ƒ Wn+ t k
 r‚} t | ƒ dG k s‰t ‚ n Xt ‚ y t j d dH d
 t ƒ Wn+ t k
 rÐ} t | ƒ dI k s×t ‚ qGXt ‚ qGWd  S(J   Ns   tmp1.paramst   ws   !include none
a=x
s   tmp2.paramss   b=y
s   tmp3.paramss"   c=z
include file tmp2.params
d=$z
R   s^   tmp2=tmp2.params
include file tmp1.params
include file $tmp2
r=0
include file tmp3.params
s=1
t   process_includesR-   sL   tmp2 = tmp2.params
!include none
a = x
b = y
r = 0
c = z
b = y
d = $z
s = 1
s8   tmp2 = tmp2.params
a = x
r = 0
c = z
b = y
d = $z
s = 1
RJ   Rg   s3   Undefined variable: $z (file "tmp3.params", line 3)t   tmps   include file tmp3.params
s   include file tmp1.params
s   include file tmp2.params
t	   file_names   Include dependency cycle: t   ,i   s%   a=0
include file tmp/tmp1.params
x=1
s   tmp/tmp1.paramss!   b=1
include file tmp2.params
y=2
s   tmp/tmp2.paramss   c=2
z=3
s$   a = 0
b = 1
c = 2
z = 3
y = 2
x = 1
s   tmp4.paramss{   a=1
include file tmp1.params
s {
  a=2
  include file tmp1.params
  z=2
}
s {
  a=3
  include file tmp1.params
  z=3
}
z=1
s¼   a = 1
a = 0
b = 1
c = 2
z = 3
y = 2
x = 1
s {
  a = 2
  a = 0
  b = 1
  c = 2
  z = 3
  y = 2
  x = 1
  z = 2
}
s {
  a = 3
  a = 0
  b = 1
  c = 2
  z = 3
  y = 2
  x = 1
  z = 3
}
z = 1
sZ   a = 0
b = 1
c = 2
y = 2
x = 1
s {
  a = 0
  b = 1
  c = 2
  y = 2
  x = 1
  z = 3
}
z = 1
s   include foo
sC   "include" must be followed by at least two arguments (input line 1)s   include foo bar
s(   Unknown include type: foo (input line 1)s   include file foo foo
sC   "include file" must be followed exactly one argument (input line 1)s5   include scope libtbx.phil.tst.include_scope_target_1
R/   i   s:   x = 1
  .help = u
s
  .help = v
{
  y = 2
    .help = w
}
s=   o {
  include scope libtbx.phil.tst.include_scope_target_1
}
sP   o {
  x = 1
    .help = u
  s
    .help = v
  {
    y = 2
      .help = w
  }
}
s   o.s.yi    s7   include scope libtbx.phil.tst.include_scope_target_1 x
s   x = 1
  .help = u
s7   include scope libtbx.phil.tst.include_scope_target_1 s
s(   s
  .help = v
{
  y = 2
    .help = w
}
sS   a = None
c {
  include scope libtbx.phil.tst.include_scope_target_1 s.y
}
b = None
s.   a = None
c {
  y = 2
    .help = w
}
b = None
R   Rv   sQ   a = None
c {
  include scope libtbx.phil.tst.include_scope_target_2%s
}
b = None
sž   a = None
c {
  p = 1
  x = 1
    .help = u
  s
    .help = v
  {
    y = 2
      .help = w
  }
  q = 2
  r {
    y = 2
      .help = w
  }
  x = 3
}
b = None
s   c.ss   include scope foo foo foo
st   "include scope" must be followed one or two arguments, i.e. an import path and optionally a phil path (input line 1)s   include scope libtbx
sr   include scope: import path "libtbx" is too short; target must be a phil scope object or phil string (input line 1)s7   include scope libtbx.phil.t_s_t.include_scope_target_1
s9   include scope: no module libtbx.phil.t_s_t (input line 1)s8   include scope libtbx.phil.tst.include_scope_target_none
sf   include scope: object "include_scope_target_none" not found in module "libtbx.phil.tst" (input line 1)s6   include scope libtbx.phil.tst.include_scope_target_0n
s…   include scope: python object "include_scope_target_0n" in module "libtbx.phil.tst" is not a libtbx.phil.scope instance (input line 1)s6   include scope libtbx.phil.tst.include_scope_target_0f
s…   include scope: python object "include_scope_target_0f" in module "libtbx.phil.tst" is not a libtbx.phil.scope instance (input line 1)s7   include scope libtbx.phil.tst.include_scope_target_1 t
sz   include scope: path "t" not found in phil scope object "include_scope_target_1" in module "libtbx.phil.tst" (input line 1)(   t   openR   R1   Rq   R   R3   R   R4   R   t   uniqueRh   R8   R   R   R”   t   makedirst   OSErrorR\   R   t   splitRB   Ri   RL   RT   Rf   Rv   t   __phil_path__t
   ValueErrort   ImportErrorRZ   (   R2   R-   R^   RD   t   incl_postfixt	   extracted(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_include#  s>   			
	    	+							 		 	 					,				 		 	 		 	 	 	 		g      ð?s0   x=1
  .help=u
s
  .help=v
{
  y=2
    .help=w
}
s‚   p=1
include scope libtbx.phil.tst.include_scope_target_1
q=2
r {
  include scope libtbx.phil.tst.include_scope_target_1 s.y
}
x=3
c          C   sì  t  j d d ƒ }  t  j d d ƒ } xN |  j | ƒ |  j d g  ƒ |  j ƒ  g D]" } t | j ƒ  d ƒ sO t ‚ qO Wt  j d d ƒ } t ƒ  } |  j | ƒ j d | d d	 ƒ t | j ƒ  d
 ƒ sË t ‚ t  j d d ƒ } t ƒ  } |  j | ƒ j d | d d	 ƒ t | j ƒ  d ƒ s!t ‚ t  j d d ƒ }  t  j d ƒ } t |  j d | ƒ j ƒ  d ƒ sjt ‚ t  j d ƒ } t |  j d | ƒ j ƒ  d ƒ s¡t ‚ t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t ƒ  } | j | ƒ j d | d d	 ƒ t | j ƒ  d ƒ s?t ‚ t  j d d ƒ } t ƒ  } | j | ƒ j d | d d	 ƒ t | j ƒ  d ƒ s•t ‚ t  j d d ƒ } t ƒ  } | j | ƒ j d | d d	 ƒ t | j ƒ  d ƒ sët ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ s)t ‚ t  j d d ƒ } xR | | g D]D }  t ƒ  } |  j | ƒ j d | ƒ t | j ƒ  d ƒ sHt ‚ qHWxR | | g D]D }  t ƒ  } |  j | ƒ j d | ƒ t | j ƒ  d ƒ s�t ‚ q�Wt  j d d ƒ } xX | | | | g D]D }  t ƒ  } |  j | ƒ j d | ƒ t | j ƒ  d ƒ s
t ‚ q
Wt  j d d ƒ } t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ s¢t ‚ t  j d d  d! d" ƒ }  t  j d d# d! d ƒ } y |  j d | ƒ Wn+ t	 k
 r} t
 | ƒ d$ k st ‚ n Xt ‚ |  j d | d% t ƒ t  j d d& ƒ } y |  j d | ƒ Wn+ t	 k
 rƒ} t
 | ƒ d' k sŠt ‚ n Xt ‚ |  j d | d% t ƒ t  j d d( ƒ } y |  j d | ƒ Wn+ t	 k
 ró} t
 | ƒ d) k sút ‚ n Xt ‚ |  j d | d% t ƒ t  j d d* ƒ } y |  j d | ƒ Wn+ t	 k
 rc} t
 | ƒ d+ k sjt ‚ n Xt ‚ |  j d | d% t ƒ t  j d d, ƒ }  t  j d d- ƒ } |  j d | ƒ }	 t ƒ  } |	 j d | d d	 ƒ t | j ƒ  d. ƒ sñt ‚ t  j d d/ ƒ }  xÏ d0 d1 d2 g D]¾ }
 xµ d d3 g D]§ } t  j d d4 |
 ƒ } t ƒ  } |  j d | ƒ j d | ƒ |
 d0 k rŽ| j ƒ  d5 k sÍt ‚ q&|
 d1 k rµ| j ƒ  d6 k sÍt ‚ q&| j ƒ  d7 k s&t ‚ q&WqWt  j d d8 ƒ } y |  j d | ƒ }	 Wn/ t k
 r.} t t
 | ƒ d9 ƒ s5t ‚ n Xt ‚ t  j d d: ƒ }  t  j d d; ƒ } t ƒ  } |  j d | ƒ j d | ƒ t | j ƒ  d< ƒ sšt ‚ t  j d d= ƒ } y | j d | ƒ Wn+ t	 k
 rí} t
 | ƒ d> k sôt ‚ n Xt ‚ t  j d d? ƒ }  t  j d d@ ƒ } t ƒ  } |  j d | ƒ j d | ƒ t | j ƒ  dA ƒ sY	t ‚ t  j d dB ƒ }  t  j d dC ƒ } t ƒ  } |  j d | ƒ j d | ƒ t | j ƒ  dD ƒ s¾	t ‚ t  j d dE ƒ }  t  j d dC ƒ } t ƒ  } |  j d | ƒ j d | ƒ t | j ƒ  dF ƒ s#
t ‚ t  j d dG ƒ }  t  j d dH ƒ } t ƒ  } |  j d | ƒ j d | ƒ t | j ƒ  dI ƒ sˆ
t ‚ t  j d dJ ƒ }  t  j d dK ƒ } t ƒ  } |  j d | ƒ j d | ƒ t | j ƒ  dL ƒ sí
t ‚ xy dM dN dO dP dQ dR dS dT g D]Y } t  j d | ƒ } t ƒ  } |  j d | ƒ j d | ƒ t | j ƒ  dU ƒ st ‚ qWt  j d dV ƒ }  t  j d dW ƒ } t ƒ  } |  j d | ƒ j d | ƒ t | j ƒ  dX ƒ sÎt ‚ t  j d dY ƒ }  t  j d dZ ƒ } t  j d d[ ƒ } t  j d d\ ƒ } t |  j d | | g ƒ j ƒ  d] ƒ sDt ‚ t |  j d | | g ƒ j ƒ  d^ ƒ srt ‚ |  j d | | | g ƒ j ƒ  d_ k sŸt ‚ t  j d` ƒ }  t  j da ƒ } t |  j d | | g ƒ j ƒ  db ƒ sët ‚ t  j dc ƒ }  t  j dd ƒ } |  j d | | g ƒ }	 t |	 j ƒ  de ƒ s=t ‚ t  j df ƒ }  t  j dg ƒ } |  j d | | g ƒ }	 t |	 j ƒ  dh ƒ s�t ‚ t  j di ƒ }  t  j dj ƒ } t |  j d | ƒ j ƒ  dk ƒ sÕt ‚ t  j dl ƒ } t |  j d | ƒ j ƒ  dm ƒ st ‚ t  j dn ƒ } t |  j d | ƒ j ƒ  do ƒ sCt ‚ t  j dp ƒ }  t  j dq ƒ } t |  j d | ƒ j ƒ  dr ƒ s‰t ‚ t  j ds ƒ } t |  j d | ƒ j ƒ  dt ƒ sÀt ‚ t  j du ƒ }  t  j dq ƒ } t |  j d | ƒ j ƒ  dv ƒ st ‚ t |  j d | |  g ƒ j ƒ  dw ƒ s4t ‚ t  j dx ƒ }  t  j d ƒ } t |  j d | g dy ƒ j ƒ  dz ƒ s�t ‚ t  j d{ ƒ } t |  j d | g dy ƒ j ƒ  d| ƒ s¿t ‚ t  j d} ƒ } t |  j d | g dy ƒ j ƒ  d~ ƒ sýt ‚ t |  j d | |  |  | g ƒ j ƒ  d~ ƒ s1t ‚ t |  j d | |  |  | |  g ƒ j ƒ  d ƒ sht ‚ t  j d d€ ƒ }  t  j d d� ƒ } t |  j d | ƒ j ƒ  d‚ ƒ s´t ‚ t  j d dƒ ƒ }  t  j d d� ƒ } t |  j d | ƒ j ƒ  d„ ƒ s t ‚ t  j d d… ƒ }  xT d d† d‡ dˆ g D]@ } t  j d | ƒ } t |  j d | ƒ j ƒ  d‰ ƒ s%t ‚ q%WxQ dŠ d‹ dŒ g D]@ } t  j d | ƒ } t |  j d | ƒ j ƒ  d� ƒ syt ‚ qyWt  j d dŽ ƒ }  t  j d d� ƒ } t |  j d | ƒ j ƒ  d� ƒ s	t ‚ t  j d‘ ƒ }  t  j |  j ƒ  ƒ } t  j d’ ƒ } |  j d | | g ƒ } t | j ƒ  dA ƒ spt ‚ |  j ƒ  j j g  k sŽt ‚ | j ƒ  j j d“ g k s¯t ‚ | j ƒ  } | j j d“ g g k sÙt ‚ t |  j | ƒ j ƒ  dA ƒ sþt ‚ |  j | ƒ } t |  j | ƒ j ƒ  dA ƒ s2t ‚ t  j d d ƒ }  t  j d d” ƒ } |  j d | d• t ƒ \ } } t | j ƒ  d– ƒ s�t ‚ t | ƒ d— k s¨t ‚ t  j d d˜ ƒ }  t  j d d™ ƒ } |  j d | d• t ƒ \ } } t | j ƒ  dš ƒ st ‚ t d› j g  | D] } t
 | ƒ ^ qƒ dœ ƒ s>t ‚ t  j d d� ƒ }  t  j d dž ƒ } |  j d | ƒ } t | j ƒ  dŸ ƒ s�t ‚ t  j d d  ƒ }  y |  j ƒ  Wn/ t	 k
 rá} t t
 | ƒ d¡ ƒ sèt ‚ n Xt ‚ d  S(¢   NR   s   a=None
  .expert_level=1
R   t   sourcess	   a = None
s   a=1
a=2
R-   R/   i   s   a = 2
  .expert_level = 1
s	   a=1
!a=2
s   a = 1
  .expert_level = 1
sP   s {
  t {
    v=1
      .type=int
  }
}
s {
  u {
    a=3
      .type=int
  }
}
t   sources4   s {
  t {
    v = 1
  }
}
s {
  u {
    a = 3
  }
}
s   s.t.v=2
s.u.a=4s4   s {
  t {
    v = 2
  }
}
s {
  u {
    a = 4
  }
}
s5   s
  .expert_level=1
{
  a=None
    .expert_level=2
}
sE   s
  .optional=yes
  .expert_level=1
{
  a=None
    .expert_level=2
}
sC   s
  .multiple=1
  .expert_level=1
{
  a=None
    .expert_level=2
}
sS   s
  .multiple=1
  .optional=yes
  .expert_level=1
{
  a=None
    .expert_level=2
}
s   s {
  a=1
  a=2
}
s8   s
  .expert_level = 1
{
  a = 2
    .expert_level = 2
}
s   s {
  a=1
  !a=2
}
s8   s
  .expert_level = 1
{
  a = 1
    .expert_level = 2
}
s   s {
  a=1
}
s {
  a=2
}
s   s {
  a = 1
}
s {
  a = 2
}
s   s {
  a=1
}
s {
  !a=2
}
s   s {
  a = 1
}
s   !s {
  a=1
}
s {
  !a=2
}
s   s {
  a = None
}
s$   a=None
b {}
c { a=None
}
d { a {} }
R   RM   s   a { }s^   Incompatible parameter objects: definition "a" (master, line 1) vs. scope "a" (source, line 1)t   skip_incompatible_objectss   b=Nones\   Incompatible parameter objects: scope "b" (master, line 2) vs. definition "b" (input line 1)s   c { a { } }s\   Incompatible parameter objects: definition "a" (master, line 3) vs. scope "a" (input line 1)s   d { a=None
}s\   Incompatible parameter objects: scope "a" (master, line 5) vs. definition "a" (input line 1)sŽ  a=None
  .expert_level=1
b=None
  .expert_level=2
c
{
  a=None
    .expert_level=3
  b=None
    .expert_level=4
  c
    .expert_level=5
  {
    x=1
      .expert_level=6
    y=2
      .type="int"
      .expert_level=7
    t
      .expert_level=8
    {
      r=3
        .help="help"
    }
  }
}
t
  .expert_level=9
{
  a=4
    .expert_level=10
  b=5
    .expert_level=11
}

u=a *b c
  .type=choice
s½   a=7
v
{
  x=y
  y=3
}
c
{
  a=$(v.x)
  b=1
  c
  {
    y=$(v.y)
    t
    {
      r=x
    }
  }
}
t
{
  a=1
    .expert_level=-1
  b=2
}
a=9
t
{
  b=3
    .expert_level=-2
}
u=e b f *c a g
s°  a = 9
  .expert_level = 1
b = None
  .expert_level = 2
c {
  a = y
    .expert_level = 3
  b = 1
    .expert_level = 4
  c
    .expert_level = 5
  {
    x = 1
      .expert_level = 6
    y = 3
      .type = int
      .expert_level = 7
    t
      .expert_level = 8
    {
      r = x
        .help = help
    }
  }
}
t
  .expert_level = 9
{
  a = 1
    .expert_level = 10
  b = 3
    .expert_level = 11
}
u = a b *c
  .type = choice
s   c=a *b c
  .type=choice
Rd   R‚   Rf   t   *s   c=s   c = *a b c
s   c = a *b c
s   c = a b *c
s	   c=a *d c
sX   Not a possible choice for c: d (input line 1)
  Possible choices are:
    a
    *b
    cs@   v
  .multiple=true
{
  x=None
}
c
  .multiple=true
{
  a=None
}
s:   v {
  x=y
}
c {
  a=$(v.x)
}
v {
  x=z
}
c {
  a=$(v.x)
}
s8   v {
  x = y
}
v {
  x = z
}
c {
  a = y
}
c {
  a = z
}
s   c {
  a=$(v.x)
}
v {
  x=y
}
s'   Undefined variable: $v.x (input line 2)s   s {
  a=None
}
s   s.a=xs   s {
  a = x
}
s   s {
  t {
    a=None
  }
}
s   s.t.a=xs   s {
  t {
    a = x
  }
}
s   s.t {
  a=None
}
s   s.t {
  a = x
}
s   s.t {
  a.b=None
}
s	   s.t.a.b=xs   s.t {
  a.b = x
}
s   s.t.u {
  a.b.c=None
}
s'   v.w {
  p.q=z
}
s.t.u.a.b.c=$(v.w.p.q)
s   s.t.u {
  a.b.c = z
}
s   s{t.u.a.b.c=x
}s   s.t{u.a.b.c=x
}s   s.t.u{a.b.c=x
}s   s.t.u.a{b.c=x
}s   s.t.u.a.b{c=x
}s   s{t{u.a.b.c=x
}}s   s{t.u{a.b.c=x
}}s   s{t.u.a{b.c=x
}}s   s.t.u {
  a.b.c = x
}
s$   s.t
  .multiple=true
{
  a.b=None
}
sm   s.t.a.b=x
s.t.a.b=y
s{t.a.b=z
  t.a.b=q
}
s.t{a.b=r
    a.b=w
}
s.t.a{b=e
      b=f
}
s.t.a{b=e
      !b=f
}
s~   s.t {
  a.b = x
}
s.t {
  a.b = y
}
s.t {
  a.b = z
}
s.t {
  a.b = q
}
s.t {
  a.b = w
}
s.t {
  a.b = f
}
s.t {
  a.b = e
}
s;   s {
  a {
    f=None
  }
  b {
    f=None
    g=None
  }
}
s   s.a.f=1s   s.b.f=2s   s.b.g=3s;   s {
  a {
    f = 1
  }
  b {
    f = 2
    g = None
  }
}
s;   s {
  a {
    f = 1
  }
  b {
    f = None
    g = 3
  }
}
s8   s {
  a {
    f = 1
  }
  b {
    f = 2
    g = 3
  }
}
sP   s
  .multiple=True
{
  a=None
    .multiple=True
  b=None
    .multiple=False
}
sj   s {
  a = 1
  a = 2
  b = 3
  b = 4
}
s {
  a = 2
  a = 3
  b = 4
  b = 5
}
s {
  a = 1
  a = 2
  b = 4
}
s<   s {
  a = 2
  a = 3
  b = 5
}
s {
  a = 1
  a = 2
  b = 4
}
s1   a=None
  .multiple=True
b=None
  .multiple=False
s   a=1
a=2
b=3
b=4
s   a = 1
a = 2
b = 4
sg   s
{
  l
    .multiple=False
  {
    a=None
      .multiple=True
    b=None
      .multiple=False
  }
}
s8   s {
  l {
    a = 1
    a = 2
    b = 3
    b = 4
  }
}
s.   s {
  l {
    a = 1
    a = 2
    b = 4
  }
}
s$   a=None
  .type=str
  .multiple=True
s
   a=x
a="x"
s   a = "x"
s
   a="x"
a=x
s   a = x
s   a="x "
a=x
s   a = "x "
a = x
s,   a=None
  .type=str
  .multiple=True
a=x
a=y
s   a=z
s   a = x
a = y
a = z
s   a=y
a=y
a=z
a=x
s   a = y
a = z
a = x
s0   a=None
  .type=str
  .multiple=True
a=d
a=x
a=y
s   a = d
a = x
a = y
a = z
s   a = z
a = d
a = x
a = y
sA   a
  .multiple=True
{
  x=None
  y=None
}
a {
  x=1
}
a {
  y=2
}
i   s2   a {
  x = 1
  y = None
}
a {
  x = None
  y = 2
}
s   a.x=3
a.y=4sd   a {
  x = 1
  y = None
}
a {
  x = None
  y = 2
}
a {
  x = 3
  y = None
}
a {
  x = None
  y = 4
}
s   a {
x=3
y=4
}sH   a {
  x = 1
  y = None
}
a {
  x = None
  y = 2
}
a {
  x = 3
  y = 4
}
sH   a {
  x = 3
  y = 4
}
a {
  x = 1
  y = None
}
a {
  x = None
  y = 2
}
s;   s {
  t
    .multiple=true
  {
    a=None
    b=None
  }
}
s   s.t.a=x
s.t.b=y
sH   s {
  t {
    a = x
    b = None
  }
  t {
    a = None
    b = y
  }
}
s+   s.t
  .multiple=true
{
  a=None
  b=None
}
s6   s.t {
  a = x
  b = None
}
s.t {
  a = None
  b = y
}
sE   s
  .multiple=True
{
  t.u
    .multiple=True
  {
    a = None
  }
}
s   s {}s   s { t { } }s   s.t { u { a = None } }s   s {
  t.u {
    a = None
  }
}
s   s.t { u { a = 3 } }
s+   s.t { u { a = 3 } }
s.t { u { a = None } }
sB   s.t { u { a = None } }
s.t { u { a = 3 } }
s.t { u { a = None } }
s   s {
  t.u {
    a = 3
  }
}
sò   s {
  p = None
  q = None
  t
    .multiple=True
  {
    a = None
    b = None
    c.x
      .multiple=True
    {
      f = None
    }
  }
}
q
  .multiple=True
{
  r
    .multiple=True
  {
    s = None
      .multiple=True
    p = None
  }
}
sÛ   s.q = 1
s.p = 2
s.t.c { x { f = 3 } }
q.r.s = 4
s.t.a = 5
q.r.s = 6
s.t.b = 7
s.p = 8
s.t {
  a = 9
  b = 10
  c.x.f = 11
  c.x.f = 12
}
q { r { s=13; s=14; p=15; s=16; p=17 } r.s = 18; r.s = 19 }
s.t.a = 20
q.r.s = 21
sf  s {
  p = 8
  q = 1
  t {
    a = None
    b = None
    c.x {
      f = 3
    }
  }
  t {
    a = 5
    b = None
    c.x {
      f = None
    }
  }
  t {
    a = None
    b = 7
    c.x {
      f = None
    }
  }
  t {
    a = 9
    b = 10
    c.x {
      f = 11
    }
    c.x {
      f = 12
    }
  }
  t {
    a = 20
    b = None
    c.x {
      f = None
    }
  }
}
q {
  r {
    s = 4
    p = None
  }
}
q {
  r {
    s = 6
    p = None
  }
}
q {
  r {
    s = 13
    s = 14
    s = 16
    p = 17
  }
  r {
    s = 18
    p = None
  }
  r {
    s = 19
    p = None
  }
}
q {
  r {
    s = 21
    p = None
  }
}
s5   s
{
  a=None
    .multiple=True
    .optional=True
}
s   s {
  a=x
}
R   s   a = 1
a = 2
t   track_unused_definitionss   a = 2
i    so   a = 1
s {
  b = None
    .multiple = True
  b = 2
  t
    .multiple = True
  {
    c = None
    x = None
  }
}
sa   a = 10
s.b = 20
c = 30
d = 40
s {
  t {
    c = 300
    x = 0
  }
  t.c = $c
  e = 5
}
s.t.y = 1
s`   a = 10
s {
  b = 2
  b = 20
  t {
    c = 300
    x = 0
  }
  t {
    c = 30
    x = None
  }
}
s   
s:   d (input line 4)
s.e (input line 11)
s.t.y (input line 13)sg   a = *x y
  .optional = True
  .type = choice
b = *p *q
  .optional = True
  .type = choice(multi=True)
s   a = none
b = NoNe
s   a = x y
b = p q
s   a = None
a = None
sm   Duplicate definitions in master (first not marked with .multiple=True):
  a (input line 1)
  a (input line 2)(   R   R1   t   fetchR   RB   R   R   R3   R4   R8   R   R   Rq   R   RT   Rv   Rd   t   formatt   cloneR   R   (   RM   R¬   Rƒ   R-   t   master_plaint   master_optionalt   master_multiplet   master_optional_multipleR^   t   fetchedt   choicet   statR2   R   t	   source_aft	   source_bft	   source_bgt   customt   prevt   eff_philt   efft   dftt   workingt   unusedt   obj_loc(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_fetch�  sê   		1																																					    	&		!		$			 		 							 																								
	
																														
					M		!								%						 c          C   sô  t  j d d ƒ }  t  j d d ƒ } | j d j d |  j d ƒ d  k sP t ‚ t  j d d ƒ } t | j d j d |  j d d t ƒ j	 ƒ  d ƒ sž t ‚ t  j d d ƒ } | j ƒ  } t | j d j	 ƒ  d	 ƒ sß t ‚ | j d j d | j d ƒ d  k st ‚ | j
 | j | j ƒ  ƒ ƒ } t | j d j	 ƒ  d
 ƒ sLt ‚ | j d j d | j d ƒ d  k sxt ‚ t  j d d ƒ }  t | j d j d |  j d ƒ j	 ƒ  d ƒ sÀt ‚ t  j d d ƒ } t  j d d ƒ }  | j d |  d t ƒ } t | j	 ƒ  d ƒ st ‚ xJ d d g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  s%t ‚ q%Wt  j d d ƒ } t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ s·t ‚ t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ s÷t ‚ t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ s7t ‚ xM d d d g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  sGt ‚ qGWt  j d d ƒ } t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ sÙt ‚ t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ st ‚ t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ sYt ‚ xM d d d g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  sit ‚ qiWt  j d d ƒ } t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ sût ‚ t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ s;t ‚ t  j d d  ƒ }  | j d |  ƒ } t | j	 ƒ  d! ƒ s{t ‚ xM d d d" g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  s‹t ‚ q‹Wt  j d d# ƒ } t  j d d$ ƒ }  | j d |  ƒ } t | j	 ƒ  d% ƒ st ‚ t  j d d& ƒ }  | j d |  ƒ } t | j	 ƒ  d' ƒ s]t ‚ xJ d d( g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  sjt ‚ qjWt  j d d) ƒ } t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ süt ‚ xJ d d g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  s	t ‚ q	Wt  j d d* ƒ } t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ s›t ‚ t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ sÛt ‚ t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d+ ƒ st ‚ xM d d d g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  s+t ‚ q+Wt  j d d, ƒ } t  j d d ƒ }  | j d |  ƒ } t | j	 ƒ  d ƒ s½t ‚ t  j d d- ƒ }  | j d |  ƒ } t | j	 ƒ  d. ƒ sýt ‚ xP d d d d/ g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  s	t ‚ q	Wt  j d d0 ƒ } t  j d d1 ƒ }  | j d |  ƒ } t | j	 ƒ  d2 ƒ s¢	t ‚ t  j d d3 ƒ }  | j d |  ƒ } t | j	 ƒ  d4 ƒ sâ	t ‚ xP d d5 d6 d7 g D]< } t  j d | ƒ }  | j d |  ƒ } | j ƒ  sõ	t ‚ qõ	Wt  j d d8 ƒ } t  j d d ƒ }  | j d |  ƒ } | j ƒ  s}
t ‚ t  j d d9 ƒ }  | j d |  ƒ } t | j	 ƒ  d: ƒ s½
t ‚ t  j d d ƒ } d; t j d< <t  j d d= ƒ }  | j d |  ƒ } t | j	 ƒ  d> ƒ st ‚ | j d |  ƒ } t | j	 ƒ  d? ƒ sJt ‚ t  j d d@ ƒ } | j ƒ  } | j ƒ  szt ‚ t  j d dA ƒ }  | j d |  ƒ } | j ƒ  s°t ‚ t  j d dB ƒ }  | j d |  ƒ } t | j	 ƒ  dC ƒ sðt ‚ d  S(D   NR   s   a = "a" "b"
s   a = "a b"
  .type = str
i    R¬   s   a = None
  .type = str
t   diffs   v = 33/111
  .type = float
s   v = 33/111
s   v = 0.2972972973
s   v = 0.2972972972
s   s {
  a = None
}
s   s.a = xs   s {
  a = x
}
R   s
   s.a = Nones   s {
  a = None
  b = y
}
s   s.b = zs   s {
  b = z
}
s   s.a = x; s.b = zs   s {
  a = x
  b = z
}
s   s.b = ys%   s {
  a = None
  t {
    b = y
  }
}
s	   s.t.b = zs   s {
  t {
    b = z
  }
}
s   s.a = x; s.t.b = zs"   s {
  a = x
  t {
    b = z
  }
}
s	   s.t.b = ys'   s {
  a = None
  t.u {
    b = y
  }
}
s   s.t.u.b = zs   s {
  t.u {
    b = z
  }
}
s   s.a = x; s.t.u.b = zs$   s {
  a = x
  t.u {
    b = z
  }
}
s   s.t.u.b = ys*   a = None
  .type = str
  .multiple = True
s   a = xs   a = x
s   a = x; a = None; a = ys   a = x
a = y
s   a = Nones$   s
  .multiple = True
{
  a = None
}
s,   s
  .multiple = True
{
  a = None
  b = y
}
s   s {
  a = x
}
s {
  b = z
}
sQ   s
  .multiple = True
{
  a = None
    .type = str
    .multiple = True
  b = y
}
s&   s.a = x; s { a = None; b = z } s.a = ps*   s {
  a = x
}
s {
  b = z
}
s {
  a = p
}
s   s { a = None; b = y }sO   s
  .multiple = True
{
  t
    .multiple = True
  {
    a = x
  }
  b = None
}
s   s.t.a = Nones   s {
  t {
    a = None
  }
}
sY   s.t.a = y
s { t.a = x; b = z }
s.t.a = p
s { t.a = None; b = None }
s { t.a = r; b = q }
s�   s {
  t {
    a = y
  }
}
s {
  b = z
}
s {
  t {
    a = p
  }
}
s {
  t {
    a = None
  }
}
s {
  t {
    a = r
  }
  b = q
}
s	   s.t.a = xs
   s.b = Nones   s { t.a = x; b = None }sê   s
  .multiple = True
{
  d = None
  t.u
    .multiple = True
  {
    a = x
      .multiple = True
    b = None
    c = v *w
      .type=choice
  }
  e = None
    .multiple = True
  r {
    i = 0
      .multiple = True
    j = 1
  }
}
s  s.t.u.c=v
s {
  t.u {
    a = z
    b = y
    a = x
    c = w
    a = p
  }
  r.i = 0
  t.u {
    a = x
    b = None
    c = w
  }
  r {
    i = 1
    j = 1
  }
}
s {
  d = 2
  e = 1
  t.u {
    c = v
  }
  d = 3
  e = None
  r {
    i = 1
    j = 2
  }
  d = 4
  e = 5
}
s¸   s {
  t.u {
    c = *v w
  }
}
s {
  t.u {
    a = z
    a = p
    b = y
  }
  r {
    i = 1
  }
}
s {
  d = 4
  t.u {
    c = *v w
  }
  e = 1
  e = 5
  r {
    i = 1
    j = 2
  }
}
R‹   RŒ   s   a = $_X_Y_Z_s
   a = "xyz"
s   a = "$_X_Y_Z_"
s  s {
  p = None
    .multiple = True
  p = q1
  p = q2
  t {
    u
      .multiple = True
    {
      a = None
      b = None
        .multiple = True
      b = c1
      b = c2
    }
    u {
      a = x1
      b = y1
    }
    u {
      a = x2
      b = y2
    }
  }
}
s
   s.t.u.b=c2s   s.t.u { b=c3; b=c4; b=c3 }s8   s {
  t {
    u {
      b = c4
      b = c3
    }
  }
}
(   R   R1   Ri   t
   fetch_diffR   R   R   R°   Rq   RB   R±   RT   t   is_emptyR”   R•   (   R¬   RM   Rƒ   Rg   R   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_fetch_diffi
  s€   				,		)		,,		#																	
							$						c          C   s£  t  j d d ƒ }  |  j d d d t ƒ j d j ƒ  t k sC t ‚ |  j d d d t ƒ j d j ƒ  d d	 g k sz t ‚ |  j d d
 d t ƒ j d j ƒ  d k s« t ‚ |  j d d d t ƒ j d j ƒ  d k sÜ t ‚ |  j d d d t ƒ j d j ƒ  d k st ‚ |  j d d d t ƒ j d j ƒ  d k s>t ‚ y' |  j d d d t ƒ j d j ƒ  Wn+ t k
 r’} t	 | ƒ d k s™t ‚ n Xt
 ‚ y' |  j d d d t ƒ j d j ƒ  Wn+ t k
 rí} t	 | ƒ d k sôt ‚ n Xt
 ‚ y' |  j d d d t ƒ j d j ƒ  Wn+ t k
 rH} t	 | ƒ d k sOt ‚ n Xt
 ‚ |  j d d ƒ j d j |  j d d ƒ j d j k s�t ‚ |  j d d ƒ j d j |  j d d ƒ j d j k sËt ‚ |  j d d d t ƒ j d j ƒ  d g k sÿt ‚ |  j d d d t ƒ j d j ƒ  d d g k s6t ‚ |  j d d d t ƒ j d j ƒ  g  k sgt ‚ |  j d d ƒ j d j |  j d d ƒ j d j k s¥t ‚ |  j d d ƒ j d j |  j d d ƒ j d j k sãt ‚ |  j d d d t ƒ j d j ƒ  d k st ‚ |  j d d d t ƒ j d j ƒ  d k sEt ‚ |  j d d d t ƒ j d j ƒ  d k svt ‚ y' |  j d d d t ƒ j d j ƒ  Wn+ t k
 rÊ} t	 | ƒ d k sÑt ‚ n Xt
 ‚ |  j d d d t ƒ j d j ƒ  d  k st ‚ y' |  j d d d t ƒ j d j ƒ  Wn+ t k
 rV} t	 | ƒ d! k s]t ‚ n Xt
 ‚ y' |  j d d d t ƒ j d j ƒ  Wn/ t k
 rµ} t	 | ƒ d" d# k s¼t ‚ n Xt
 ‚ |  j d d$ d t ƒ j d j ƒ  d  k sít ‚ |  j d d% d t ƒ j d j ƒ  d& d' g k s$t ‚ |  j d d( d t ƒ j d j ƒ  d  k sUt ‚ |  j d d) d t ƒ j d j ƒ  d* d g k sŒt ‚ |  j d d+ d t ƒ j d j ƒ  d  k s½t ‚ g  |  j d d, d t ƒ j d j ƒ  D] } | j ^ qãd- d. g k s
t ‚ |  j d d d t ƒ j d } y' |  j d d/ d t ƒ j d j ƒ  Wn/ t k
 r�} t t	 | ƒ d0 ƒ sˆt ‚ n Xt
 ‚ y' |  j d d1 d t ƒ j d j ƒ  Wn/ t k
 rà} t t	 | ƒ d2 ƒ sçt ‚ n Xt
 ‚ y' |  j d d3 d t ƒ j d j ƒ  Wn/ t k
 r?} t t	 | ƒ d4 ƒ sFt ‚ n Xt
 ‚ y' |  j d d5 d t ƒ j d j ƒ  Wn/ t k
 rž} t t	 | ƒ d6 ƒ s¥t ‚ n Xt
 ‚ t  j d d7 ƒ }  |  j d d8 d t ƒ j d j ƒ  } | j t k sñt ‚ | j d k s	t ‚ t  j d d9 ƒ }  |  j ƒ  } | j j d: k s<	t ‚ | j j d; k sT	t ‚ | j j d< k sl	t ‚ t  j d d= ƒ }  |  j ƒ  } | j j d< k s¢	t ‚ | j j d; k sº	t ‚ | j j d> k sÒ	t ‚ t  j d d? ƒ }  |  j ƒ  } | j d k s
t ‚ | j j d k s
t ‚ | j j j d k s8
t ‚ | j j j d@ k sS
t ‚ | j j j j d: k sq
t ‚ | j j j j d; k s�
t ‚ t  j d dA ƒ }  |  j ƒ  } | j d k sÂ
t ‚ | j j d; k sÚ
t ‚ t  j d dB ƒ }  |  j ƒ  } | j j g  k st ‚ t  j d dC ƒ }  |  j ƒ  } | j ƒ  dD k sFt ‚ | j dE dF ƒ dF k sdt ‚ | j j ƒ  dG k st ‚ | j j dE dH ƒ dI k s t ‚ | j j j ƒ  dJ k s¾t ‚ | j j j dE dK ƒ dL k sât ‚ | j j j j ƒ  dM k st ‚ | j j ƒ  dN k st ‚ | j j dE dO ƒ dP k s?t ‚ | j j j ƒ  dQ k s]t ‚ | j j j ƒ  dR k s{t ‚ | j j j j ƒ  dS k sœt ‚ | j j j j dE dT ƒ dr k sÃt ‚ y dW | _ Wn/ t k
 r} t t	 | ƒ dX ƒ st ‚ n Xt
 ‚ y d | j j _ Wn/ t k
 rL} t t	 | ƒ dY ƒ sSt ‚ n Xt
 ‚ | j dZ d[ ƒ | j d[ k sxt ‚ | ` | j dZ d\ ƒ | j d\ k s£t ‚ y | j dZ d] ƒ Wn+ t k
 rä} t	 | ƒ d^ k sët ‚ n Xt
 ‚ | j j j dZ d_ ƒ | j j j d_ k st ‚ | j j ` | j j j dZ d` ƒ | j j j d` k sYt ‚ y | j j j dZ da ƒ Wn+ t k
 r } t	 | ƒ db k s§t ‚ n Xt
 ‚ t  j d dc ƒ }  |  j ƒ  } | j j j j d k sãt ‚ | j j j j dd k st ‚ t  j d de ƒ }  |  j ƒ  } | j j j j d dd g k sCt ‚ t  j d df ƒ }  |  j ƒ  } | j j j j dd d g k s…t ‚ t  j d dg ƒ }  xG |  j d dG ƒ j D]0 } | j d  k sÈt ‚ | j  d  k s­t ‚ q­Wx; |  j d dh ƒ j D]$ } | j st ‚ | j  s÷t ‚ q÷W|  j ƒ  } t! | j j ƒ d k sIt ‚ t  j d di ƒ }  |  j ƒ  } | j d> k s|t ‚ | j dj k s‘t ‚ t  j d dk ƒ } | } xó t" d ƒ D]å }	 | j ƒ  }
 |
 j d  k sÝt ‚ |
 j t# k sòt ‚ |
 j dl k st ‚ |
 j$ dl k st ‚ |
 j% dm d dn !k s8t ‚ |
 j& do d dn !k sTt ‚ |
 j' dp d dn !k spt ‚ | j( |
 ƒ } t | j) ƒ  dq ƒ s¶t ‚ q¶Wd  S(s   NR   s�  group {
  a=yes
    .type=bool
  a=yes "n o"
  b=13
    .type=int
  c=1.3
    .type=float
  d=abc def ghi
    .type=str
  e=a *b c
    .type=choice
  e=a *b *c
    .type=choice
  e=a b c
    .type=choice
    .optional=no
  f=a *b c
    .type=choice(multi = True)
  f=a *b *c
    .type=choice(multi = True)
  f=a b c
    .type=choice(multi =True)
  f=a b c
    .type=choice(multi =True)
    .optional=0
  g="/var/tmp/foo"
    .type=path
  h="var.tmp.foo"
    .type=key
  i=ceil(4/3)
    .type=int
  i=1/2
    .type=int
  j=1/(5-3)
    .type=float
  j="'a'"
    .type=float
  j=a
    .type=float
  n=none
    .type=None
  m=Plain "%^ &*"
    .type=None
  s0=none
    .type=strings
  s1=" a " b
    .type=strings
  v=none
    .type=words
  w=plain "% ^&*"
    .type=words
  int_true = True
    .type=int
  int_false = False
    .type=int
  float_true = True
    .type=float
  float_false = False
    .type=float
}
RJ   s   group.aRo   i    i   t   yess   n os   group.bi   s   group.cgÍÌÌÌÌÌô?s   group.ds   abc def ghis   group.eR‚   sM   Multiple choices for group.e; only one choice can be selected (input line 13)i   sS   Unspecified choice for group.e: exactly one choice must be selected (input line 15)s   group.fi   sT   Unspecified choice for group.f: at least one choice must be selected (input line 24)Rf   s   group.gs   /var/tmp/foos   group.hs   var.tmp.foos   group.isI   Error interpreting group.i="1/2" as an integer expression (input line 33)s   group.jg      à?sO   Error interpreting group.j="'a'" as a floating-point expression (input line 37)s7   Error interpreting group.j="a" as a numeric expression:s3    NameError: name 'a' is not defined (input line 39)s   group.ns   group.mt   Plains   %^ &*s   group.s0s   group.s1s    a s   group.vs   group.wt   plains   % ^&*s   group.int_truesP   Error interpreting group.int_true="True" as a numeric expression (input line 53)s   group.int_falsesR   Error interpreting group.int_false="False" as a numeric expression (input line 55)s   group.float_truesR   Error interpreting group.float_true="True" as a numeric expression (input line 57)s   group.float_falsesT   Error interpreting group.float_false="False" as a numeric expression (input line 59)s6   group {
  a=yes
    .type=bool
  b=13
    .type=int
}
t   groups>   c.d=5
  .type=int
c.e=6
  .type=int
c {
  f=7
    .type=int
}
i   i   i   sR   c.d=5
  .type=int
c.e=6
  .type=int
c {
  d=7
    .type=int
  f=8
    .type=int
}
i   s”   a=1
  .type=int
b {
  a=2
    .type=int
  b {
    a=3
      .type=int
  }
}
c.a {
  b=4
    .type=int
  c.d=5
    .type=int
  c.e=6
    .type=int
}
i   sz   a=1
 .type=int
a=2
 .type=int
b {
  a=3
    .type=int
  a=4
    .type=int
}
b {
  b=5
    .type=int
  b=6
    .type=int
}
s@   s {
  a=None
   .optional=True
   .type=int
   .multiple=True
}
sI   s {
  t {
    u {
    }
  }
}
t {
  b.c=None
  c.d.e=f
    .type = str
}
R   t   object_namet   o1Rv   t   o2s   s.o2s   s.tt   o3s   s.t.o3s   s.t.uRw   t   o4s   t.o4s   t.bs   t.cs   t.c.dR^   s   t.c.d.eRƒ   i   s�   Assignment to non-existing attribute "z"
  Please correct the attribute name, or to create
  a new attribute use: obj.__inject__(name, value)s‘   Assignment to non-existing attribute "t.c.z"
  Please correct the attribute name, or to create
  a new attribute use: obj.__inject__(name, value)t   zi   i   i   s   Attribute "z" exists already.i   i   i   s!   Attribute "t.c.z" exists already.s>   s.t.x {
  a=13
    .type=int
}
s.t.y {
  b=45
    .type=int
}
i-   s˜   s.t.x {
  a=13
    .type=int
    .multiple=True
}
s.t.x {
  a=None
    .type=int
    .multiple=True
}
s.t.x {
  a=45
    .type=int
    .multiple=True
}
s˜   s.t.x {
  a=None
    .type=int
    .multiple=True
}
s.t.x {
  a=45
    .type=int
    .multiple=True
}
s.t.x {
  a=13
    .type=int
    .multiple=True
}
s2   s.t {
}
s.u
  .multiple=True
  .optional=True
{
}
s   s.us…   a=008 # eval fails since this is an invalid octal literal
  .type=int
b=008.34 # just to be sure (eval works for this)
  .type=float
g®Gáz® @s£   a=None
  .type=qstr
b=Auto
  .type=qstr
c= 1  2
  .type=qstr
ds="1"'2'
  .type=str
dq="1"'2'
  .type=qstr
es="1\""'2\"\''
  .type=str
eq="1\""'2\"\''
  .type=qstr
s   1 2s	    "1" '2' iÿÿÿÿs	    1" 2\"' s    "1\"" '2\\"\'' sX   a = None
b = Auto
c = 1 2
ds = "1 2"
dq = "1" '2'
es = "1\" 2\\\"'"
eq = "1\"" '2\\"\''
(   s   t.c.d.eRƒ   (*   R   R1   Rh   R{   Ri   RT   Rq   R   R8   R   R   t   typeR   R   R   Rd   R‚   Rf   Rg   R^   Rƒ   Rv   R¥   Rw   t   ut   __phil_path_and_value__RÓ   RZ   t
   __inject__R   t   yt   optionalt   multipleR   R    R   t   dst   dqt   est   eqR±   RB   (   R2   R^   R   t
   definitionRÍ   R©   t   objectRM   t   workt   i_cyclet   ex(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_extractZ  sæ   	>	"(""""   %%%("%%""" "  "("(";    															!$!!!    					$		$						c          C   sr  t  j d d ƒ }  t ƒ  } |  j d |  ƒ j ƒ  } |  j | ƒ j d | ƒ t | j ƒ  d ƒ sh t	 ‚ t  j d d ƒ } t  j d d ƒ } | j | ƒ j ƒ  } | j
 d k s¶ t	 ‚ t ƒ  } | j | ƒ j d | ƒ | j ƒ  d	 k sð t	 ‚ t  j d d
 ƒ } | j | ƒ j ƒ  } | j
 d k s,t	 ‚ t ƒ  } | j | ƒ j d | ƒ | j ƒ  d k sft	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j
 d  k s¢t	 ‚ t ƒ  } | j | ƒ j d | ƒ | j ƒ  d k sÜt	 ‚ t  j d d ƒ } t  j d d ƒ } | j | ƒ j ƒ  } | j
 d d g k s0t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ snt	 ‚ t  j d d
 ƒ } | j | ƒ j ƒ  } | j
 d g k s­t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ sët	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j
 g  k s't	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ set	 ‚ t  j d d ƒ } t  j d d ƒ } | j | ƒ j ƒ  } | j
 d d g k s¹t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ s÷t	 ‚ t  j d d
 ƒ } | j | ƒ j ƒ  } | j
 d g k s6t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ stt	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j
 g  k s°t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ sît	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j
 g  k s*t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ sht	 ‚ t  j d d ƒ } t  j d d ƒ } | j | ƒ j ƒ  } | j j
 d  k s¹t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ s÷t	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j j
 d k s6t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ stt	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j j
 d k s³t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ sñt	 ‚ t  j d d ƒ } t  j d d ƒ } | j | ƒ j ƒ  } t | j ƒ d k sEt	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ sƒt	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } t | j ƒ d k sÅt	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ st	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j d j
 d k sFt	 ‚ | j d j
 d k sbt	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ s t	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j d j
 d k sãt	 ‚ | j d j
 d k sÿt	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ s=	t	 ‚ t  j d d ƒ } t  j d d ƒ } | j | ƒ j ƒ  } | j g  k s‹	t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ sÉ	t	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j g  k s
t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ sC
t	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j d j
 d k s†
t	 ‚ | j d j
 d k s¢
t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ sà
t	 ‚ t  j d d ƒ } | j | ƒ j ƒ  } | j d j
 d k s#t	 ‚ | j d j
 d k s?t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d ƒ s}t	 ‚ t  j d d  ƒ } t  j d d! ƒ } | j | ƒ } | j ƒ  } | j
 d d g k s×t	 ‚ | j d j
 d d" g k sùt	 ‚ | j d j g  k st	 ‚ | j d j d# k s1t	 ‚ | j d j
 g  k sMt	 ‚ | j d j d$ d% g k sot	 ‚ | j d j d  k s‹t	 ‚ | j g  k s t	 ‚ | j d j
 d  k s¼t	 ‚ t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d& ƒ sút	 ‚ t  j d d' ƒ } | j ƒ  } | j
 d k s-t	 ‚ | j j d k sEt	 ‚ | j d( | ƒ } | j
 d k slt	 ‚ | j j d k s„t	 ‚ d) | _
 d# | j _ | j
 d k s®t	 ‚ | j j d k sÆt	 ‚ t  j d d* ƒ } | j ƒ  } | j
 d  k sùt	 ‚ | j d+ k st	 ‚ | j d, k s#t	 ‚ | j g  k s8t	 ‚ | j d- d. g k sSt	 ‚ | j d/ d0 g k snt	 ‚ d  | _ | j 2t ƒ  } | j | ƒ j d | ƒ t | j ƒ  d1 ƒ s¼t	 ‚ xëd2 d3 d4 g D]Ú}	 t  j d |	 ƒ } t  j d d ƒ }
 | j d |
 ƒ } | j ƒ  } | j d j } | d  k s6| rTt | j
 ƒ d k s€t	 ‚ n, t | j
 ƒ d k sot	 ‚ | j
 d d  k t  j d d5 ƒ }
 | j d |
 ƒ } | j ƒ  } | d  k sÂ| ràt | j
 ƒ d k st	 ‚ n, t | j
 ƒ d k sût	 ‚ | j
 d d  k t  j d d6 ƒ }
 | j d |
 ƒ } | j ƒ  } | d  k sN| ri| j
 d7 g k s¦t	 ‚ qÌt | j
 ƒ d k s„t	 ‚ | j
 d d  k | j
 d d7 k qÌWx6d8 d9 d: g D]%}	 t  j d |	 ƒ } t  j d d ƒ }
 | j d |
 ƒ } | j ƒ  } | j d j } | d  k s$| rBt | j ƒ d k syt	 ‚ n7 t | j ƒ d k s]t	 ‚ | j d j
 d  k syt	 ‚ t  j d d; ƒ }
 | j d |
 ƒ } | j ƒ  } | d  k s»| rÙt | j ƒ d k st	 ‚ n7 t | j ƒ d k sôt	 ‚ | j d j
 d  k st	 ‚ t  j d d< ƒ }
 | j d |
 ƒ } | j ƒ  } | d  k sR| rŒt | j ƒ d k smt	 ‚ | j d j
 d7 k sßt	 ‚ qºt | j ƒ d k s§t	 ‚ | j d j
 d  k sÃt	 ‚ | j d j
 d7 k sºt	 ‚ qºWt  j d d= ƒ } xË d d; g D]½ }	 t  j d |	 ƒ }
 | j d |
 ƒ } | j ƒ  } t | j ƒ d k sSt	 ‚ | j d( | ƒ } | j d j d k s�t	 ‚ t | j ƒ  d> ƒ s�t	 ‚ t | j d? d ƒ d= ƒ st	 ‚ qWt  j d d@ ƒ }
 | j d |
 ƒ } | j ƒ  } t | j ƒ d k st	 ‚ | j d j d k s*t	 ‚ | j d( | ƒ } | j d j dA k sXt	 ‚ | j d j d k stt	 ‚ t | j ƒ  dB ƒ s�t	 ‚ t | j d? d ƒ dC ƒ s²t	 ‚ t  j d dD ƒ }
 | j d |
 ƒ } | j ƒ  } t | j ƒ d k sýt	 ‚ | j d j d7 g k st	 ‚ | j d j dE g k s;t	 ‚ | j d( | ƒ } | j d j dA k sit	 ‚ | j d j d k s…t	 ‚ | j d j d k s¡t	 ‚ t | j ƒ  dF ƒ s½t	 ‚ t  j d dG ƒ } t  j d d ƒ }
 | j d |
 ƒ } | j ƒ  } t | j ƒ d k st	 ‚ | j d( | ƒ } t | j ƒ  dH ƒ sHt	 ‚ t | j d? d ƒ dI ƒ sjt	 ‚ t  j d dJ ƒ } t  j d d ƒ }
 | j d |
 ƒ } | j ƒ  } t | j
 ƒ d k sÇt	 ‚ | j d( | ƒ } t | j ƒ  d ƒ sõt	 ‚ t | j d? d ƒ dJ ƒ st	 ‚ t  j d dK ƒ }
 | j d |
 ƒ } | j ƒ  } | j
 d7 g g k sbt	 ‚ | j d( | ƒ } t | j ƒ  dL ƒ s�t	 ‚ t | j d? d ƒ dM ƒ s²t	 ‚ t  j d dN ƒ }
 | j d |
 ƒ } | j ƒ  } t | j
 ƒ d k sýt	 ‚ | j
 d7 g dE g g k st	 ‚ | j d( | ƒ } t | j ƒ  dO ƒ sLt	 ‚ t | j d? d ƒ dP ƒ snt	 ‚ d  S(Q   NR   s“  group {
  n=ab "c d" 'ef '
    .type=None
  a=yes
    .type=bool
  b=13
    .type=int
  c=1.3
    .type=float
  d=abc def ghi
    .type=str
  e=a *b c
    .type=choice
  f=a *b *c
    .type=choice(multi=True)
  g="/var/tmp/foo"
    .type=path
  h="var.tmp.foo"
    .type=key
  m=plain "% ^&*"
    .type=None
  s0=none
    .type=strings
  s1=' a ' b
    .type=strings
  w=plain "% ^&*"
    .type=words
}
R¬   R-   sØ   group {
  n = ab "c d" "ef "
  a = True
  b = 13
  c = 1.3
  d = "abc def ghi"
  e = a *b c
  f = a *b *c
  g = "/var/tmp/foo"
  h = "var.tmp.foo"
  m = plain "% ^&*"
  s0 = None
  s1 = " a " b
  w = plain "% ^&*"
}
s#   a=None
 .type=int
 .multiple=False
s   a=1
a=2
i   s   a = 2
s	   a=1
!a=2
i   s   a = 1
R   s	   a = None
s"   a=None
 .type=int
 .multiple=True
s   a = 1
a = 2
s2   a=None
 .type=int
 .multiple=True
 .optional=True
s   a=None
sA   s
  .multiple=False
{
  a=None
   .type=int
   .multiple=False
}
s   s {
  a = None
}
s   s {
  a=1
}
s {
  a=2
}
s   s {
  a = 2
}
s   s {
  a=1
}
s {
  a=2
  a=3
}
i   s   s {
  a = 3
}
s@   s
  .multiple=True
{
  a=None
   .type=int
   .multiple=False
}
i    s   s {
  a=None
}
s   s {
  a = 1
}
s {
  a = 2
}
s   s {
  a = 1
}
s {
  a = 3
}
sQ   s
  .multiple=True
  .optional=True
{
  a=None
   .type=int
   .multiple=False
}
s(  a=None
 .type=int
 .multiple=True
b
  .multiple=True
{
  a=None
    .type=int
    .multiple=True
  b=None
    .type=int
    .multiple=True
    .optional=True
  c=None
    .type=int
}
c
  .multiple=True
  .optional=True
{
  a=None
}
d
  .multiple=True
  .optional=False
{
  a=None
    .type=int
}
sI   a=1
a=2
b {
  a=3
  a=4
  c=10
  c=20
}
b {
  b=5
  b=6
}
c {
  a=None
}
i   i   i   i   s„   a = 1
a = 2
b {
  a = 3
  a = 4
  b = None
  c = 20
}
b {
  a = None
  b = 5
  b = 6
  c = None
}
c {
  a = None
}
d {
  a = None
}
s*   a=1
  .type=int
s {
  b=2
    .type=int
}
RO   i
   s2  a = x y
  .optional = True
  .type = choice
b = *p q
  .optional = True
  .type = choice
c = *r s
  .optional = True
  .type = choice
d = g h
  .optional = True
  .type = choice(multi=True)
e = *j *k
  .optional = True
  .type = choice(multi=True)
f = *l *m
  .optional = True
  .type = choice(multi=True)
RŽ   RC   R‡   Rˆ   R‰   R�   s3   a = x y
b = *p q
c = r s
d = g h
e = *j *k
f = l m
s+   
a = None
  .type = str
  .multiple = True
s=   a = None
  .optional = True
  .type = str
  .multiple = True
s>   a = None
  .optional = False
  .type = str
  .multiple = True
s   a=Nones   a=xR   s4   s
  .multiple = True
{
  a = None
    .type = str
}
sH   
s
  .optional = True
  .multiple = True
{
  a = None
    .type = str
}
sI   
s
  .optional = False
  .multiple = True
{
  a = None
    .type = str
}
s   s {}s	   s { a=x }s¡   s
  .optional = True
  .multiple = True
{
  a = None
    .type = str
  b = 0
    .type = float
  c = *x *y
    .optional = True
    .type = choice(multi=True)
}
s%   s {
  a = None
  b = 0
  c = *x *y
}
R/   s   s.b=1
iÿÿÿÿs%   s {
  a = None
  b = 1
  c = *x *y
}
sB  s
  .optional = True
  .multiple = True
{
  a = None
    .type = str
  b = 0
    .type = float
  c = *x *y
    .optional = True
    .type = choice(multi=True)
}
s
  .optional = True
  .multiple = True
{
  a = None
    .type = str
  b = 1
    .type = float
  c = *x *y
    .optional = True
    .type = choice(multi=True)
}
s   s.c=*x
s.c=*y
RØ   sH   s {
  a = None
  b = 0
  c = *x y
}
s {
  a = None
  b = 0
  c = x *y
}
s«   s
  .multiple = True
{
  a = x
    .type = str
  b = 2
    .type = int
  c = x *y
    .optional = True
    .type = choice(multi=True)
  d = None
    .type = float
}
s {
}
s,   s {
  a = x
  b = 2
  c = x *y
  d = None
}
s¥   s
  .multiple = True
{
  a = x
    .type = str
  b = 2
    .type = int
  c = x *y
    .optional = True
    .type = choice(multi=True)
  d = None
    .type = float
}
s/   a = None
  .optional = True
  .multiple = True
s   a=x
s   a = x
s,   a = x
  .optional = True
  .multiple = True
s   a=x
a=y
s   a = x
a = y
sX   a = x
  .optional = True
  .multiple = True
a = y
  .optional = True
  .multiple = True
(   R   R1   R   R°   RT   R±   R3   R   R4   R   Rd   R   Rv   R   R‚   Rf   Rg   R²   R^   Rƒ   Ri   RÙ   t   is_templateRB   (   R2   R-   R©   RM   R½   R·   RD   t   origR²   R   R¬   R›   R^   t   optRƒ   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_format$  sî   																																																																																			""								 																		!t   foo1_convertersc           B   s#   e  Z d  Z d „  Z d d „ Z RS(   t   foo1c         C   s   d S(   NRê   (    (   R9   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRI   k  s    c         C   s   | d  k r t d ƒ ‚ n  d  S(   Ns   foo1 problem(   R   R8   (   R9   t   bar(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR=   m  s    N(   R>   R?   t	   phil_typeRI   R   R=   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRé   g  s   	t   foo2_convertersc           B   s   e  Z d  „  Z d d „ Z RS(   c         C   s   d S(   Nt   foo2(    (   R9   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRI   s  s    c         C   s   | d  k	 r t d ƒ ‚ n  d  S(   Ns   foo2 problem(   R   R8   (   R9   Rë   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR=   u  s    N(   R>   R?   RI   R   R=   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRí   q  s   	t   additional_convertersc    	      C   s  t  j d d ƒ }  |  j ƒ  } d | _ y |  j | ƒ Wn+ t k
 re } t | ƒ d k sl t ‚ n Xt ‚ d | _ d | _	 y |  j | ƒ Wn+ t k
 r¼ } t | ƒ d k sÃ t ‚ n Xt ‚ t  j d d ƒ }  |  j ƒ  } y |  j | ƒ Wn+ t k
 r} t | ƒ d k s&t ‚ n Xt ‚ t  j d d	 ƒ }  |  j ƒ  } d
 d d g | _ y |  j | ƒ Wn+ t k
 r”} t | ƒ d k s›t ‚ n Xt ‚ g  | _ y |  j | ƒ Wn+ t k
 râ} t | ƒ d k sét ‚ n Xt ‚ t  j d d ƒ }  |  j ƒ  } g  | _ t
 |  j | ƒ j ƒ  d ƒ s5t ‚ t  j d d ƒ }  |  j ƒ  } d  | _ t
 |  j | ƒ j ƒ  d ƒ s�t ‚ t  j d d ƒ }  |  j ƒ  } d  | _ y |  j | ƒ Wn+ t k
 ræ} t | ƒ d k sít ‚ n Xt ‚ t  j d ƒ } t  j d ƒ } t ƒ  } | j d | ƒ j d | ƒ t  j d | j ƒ  ƒ } | j d | ƒ } t
 | j ƒ  d ƒ svt ‚ t  j d ƒ } t  j d ƒ } | j ƒ  } | j d  k sµt ‚ | j	 d
 k sÊt ‚ | j d | ƒ j ƒ  } | j d
 k s÷t ‚ | j	 d k st ‚ d  S(   NR   s=   x=*a b
  .type=choice
y=*a b
  .type=choice
  .optional=True
Rf   s   Invalid choice: x=cR‚   s   Invalid choice: y=cs   x=*a a
  .type=choice
s:   Improper master choice definition: x = *a a (input line 1)sf   x=*a b
  .type=choice(multi=True)
  .optional=False
y=a b
  .type=choice(multi=True)
  .optional=True
Rd   Rg   s(   Invalid choice(multi=True): x=['c', 'd']s.   Empty list for mandatory choice(multi=True): xs"   x=*a b
  .type=choice(multi=True)
s   x = a b
s   x=*a b
  .type=choice
s(   x=*a b
  .type=choice
  .optional=False
s   Invalid choice: x=Nones/   multiwordchoice = 'a b' 'b c'
  .type = choice
s   
multiwordchoice = 'a b'
R¬   R-   s   multiwordchoice = '*a b' 'b c'
s3   x = a b
  .type = choice
y = *a B
  .type = choice
s   x = A
y = b
t   B(   R   R1   RT   R   R±   R8   R   R   R   RØ   R   RB   R   R   RÇ   R3   R4   R°   (	   RM   t	   py_paramsR^   t   master_philt   otherRv   t	   diff_philt   working_philRD   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_choice|  s     			 		 		 			 	 									 					c          C   sˆ  t  j d d d t ƒ }  y! |  j d d ƒ j d j ƒ  Wn+ t k
 rf } t | ƒ d k sm t ‚ n Xt	 ‚ y' |  j d d ƒ j d j
 d d ƒ Wn+ t k
 rÁ } t | ƒ d	 k sÈ t ‚ n Xt	 ‚ y t  j d d
 d t ƒ Wn+ t k
 r} t | ƒ d k st ‚ n Xt	 ‚ y t  j d d d t ƒ WnI t k
 r{} t | ƒ } | j d ƒ sct ‚ | j d ƒ s‚t ‚ n Xt	 ‚ y t  j d d d t ƒ Wn+ t k
 rÉ} t | ƒ d k sÐt ‚ n Xt	 ‚ y t  j d d t ƒWnI t k
 r2} t | ƒ j d ƒ st ‚ t | ƒ j d ƒ s9t ‚ n Xt	 ‚ y t  j d d t ƒWn+ t k
 r}} t | ƒ d k s„t ‚ n Xt	 ‚ d  S(   NR   sM   a=None
  .type=foo2
b=None
  .type=foo2(bar=None)
c=None
  .type=foo1(bar=0)
t   converter_registryRJ   Rd   i    sƒ   .type=foo2 does not have a from_words method (input line 1): AttributeError: 'foo2_converters' object has no attribute 'from_words'RO   s€   .type=foo2 does not have an as_words method (input line 1): AttributeError: 'foo2_converters' object has no attribute 'as_words's   a=None
  .type=foo1
sT   Error constructing definition type "foo1": RuntimeError: foo1 problem (input line 2)s   a=None
  .type=foo2(bar=1)
s@   Error constructing definition type "foo2(bar=1)": RuntimeError: s    foo2 problem (input line 2)s   a=None
  .type=foo2(foo=1)
s   Error constructing definition type "foo2(foo=1)": TypeError: __init__() got an unexpected keyword argument 'foo' (input line 2)s   a=None
  .type=foo2(foo=1
s/   Error evaluating definition type "foo2(foo=1": s    (input line 2)s   a=None
  .type=foo2(foo=1=2)
sg   Error constructing definition type "foo2(foo=1=2)": SyntaxError: invalid syntax (line 1) (input line 2)(   R   R1   t   foo_converter_registryRh   Ri   RT   R8   R   R   R   R±   R\   R]   (   RD   R^   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_type_constructorsé  sp    		 !	 '	 		 	 		  c          C   sR  xKd  t g D]=}  t |  ƒ } t j d d t ƒ  ƒ } x@t d ƒ D]2} | j ƒ  } | j |  k sl t	 ‚ | j
 |  k s� t	 ‚ | j |  k s– t	 ‚ | j |  k s« t	 ‚ | j d  k sÀ t	 ‚ | j d k sÕ t	 ‚ | j g  k sê t	 ‚ | j d g k st	 ‚ | j |  k st	 ‚ | j |  k s,t	 ‚ | j |  k sAt	 ‚ | j |  k sVt	 ‚ | j |  k skt	 ‚ | j ƒ  } qE Wt | j | ƒ j ƒ  d t ƒ  ƒ s§t	 ‚ t j d d ƒ } | j d | ƒ j ƒ  } | j t k sæt	 ‚ | j
 t k sût	 ‚ | j t k st	 ‚ | j t k s%t	 ‚ | j t k s:t	 ‚ | j t k sOt	 ‚ | j t k sdt	 ‚ | j t k syt	 ‚ | j t k sŽt	 ‚ | j t k s£t	 ‚ | j t k s¸t	 ‚ | j t k sÍt	 ‚ | j t k sât	 ‚ t | j | ƒ j ƒ  d ƒ st	 ‚ t j | ƒ } t j | ƒ } t | j | ƒ j ƒ  d ƒ s t	 ‚ q Wd  S(	   NR   s¨  abool=%(na)s
  .type=bool
aint=%(na)s
  .type=int
afloat=%(na)s
  .type=float
astr=%(na)s
  .type=str
achoice=a b
  .type=choice
achoicemand=*a b
  .type=choice
  .optional=False
achoicemult=a b
  .type=choice(multi=True)
achoicemultmand=*a b
  .type=choice(multi=True)
  .optional=False
apath=%(na)s
  .type=path
akey=%(na)s
  .type=key
anone=%(na)s
  .type=None
astrings=%(na)s
  .type=strings
awords=%(na)s
  .type=words
i   Rd   sÓ   abool = %(na)s
aint = %(na)s
afloat = %(na)s
astr = %(na)s
achoice = a b
achoicemand = *a b
achoicemult = a b
achoicemultmand = *a b
apath = %(na)s
akey = %(na)s
anone = %(na)s
astrings = %(na)s
awords = %(na)s
s©   abool=Auto
aint=Auto
afloat=Auto
astr=Auto
achoice=Auto
achoicemand=Auto
achoicemult=Auto
achoicemultmand=Auto
apath=Auto
akey=Auto
anone=Auto
astrings=Auto
awords=Auto
R¬   sÃ   abool = Auto
aint = Auto
afloat = Auto
astr = Auto
achoice = Auto
achoicemand = Auto
achoicemult = Auto
achoicemultmand = Auto
apath = Auto
akey = Auto
anone = Auto
astrings = Auto
awords = Auto
(   R   R   R   R   R1   t   varsR    RT   t   aboolR   t   aintt   afloatt   astrt   achoicet   achoicemandt   achoicemultt   achoicemultmandt   apatht   akeyt   anonet   astringst   awordsR°   R   R±   RB   R   t   dumpst   loads(   t   naot   naRM   R†   RD   R½   t
   params_pklt   params2(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_auto5  sX    			c          C   s¶  t  j d d ƒ }  |  j ƒ  } |  j d | ƒ } t | j d d ƒ d ƒ sR t ‚ t  j d d ƒ }  y |  j ƒ  Wn/ t k
 r£ } t t | ƒ d ƒ sª t ‚ n Xt	 ‚ t  j d d	 ƒ }  y |  j ƒ  Wn/ t k
 rû } t t | ƒ d
 ƒ st ‚ n Xt	 ‚ t  j d d ƒ }  y |  j ƒ  Wn/ t k
 rS} t t | ƒ d ƒ sZt ‚ n Xt	 ‚ t  j d d ƒ }  y |  j ƒ  Wn/ t k
 r«} t t | ƒ d ƒ s²t ‚ n Xt	 ‚ d  S(   NR   s  a=None
  .type=float
b=1.0
  .type=int
c=1.5
  .type=float(value_min=1.0)
d=4.5
  .type=float(value_max=5.0)
e=6.2
  .type=float(value_min=3.2, value_max=7.6)
f = 5
  .type = int(value_min=0)
g = 3
  .type = int(value_max=4)
h = 10
  .type = int(value_min=4, value_max=12)
RO   R/   i   s  a = None
  .type = float
b = 1
  .type = int
c = 1.5
  .type = float(value_min=1)
d = 4.5
  .type = float(value_max=5)
e = 6.2
  .type = float(value_min=3.2, value_max=7.6)
f = 5
  .type = int(value_min=0)
g = 3
  .type = int(value_max=4)
h = 10
  .type = int(value_min=4, value_max=12)
s$   a=-1.5
  .type=float(value_min=1.0)
sI   a element is less than the minimum allowed value: -1.5 < 1 (input line 1)s2   b=5.1
  .type=float(value_min=0.0, value_max=5.0)
sK   b element is greater than the maximum allowed value: 5.1 > 5 (input line 1)s   c=7
  .type=int(value_max=6)
sI   c element is greater than the maximum allowed value: 7 > 6 (input line 1)s,   d=-6
  .type=int(value_min=3, value_max=25)
sG   d element is less than the minimum allowed value: -6 < 3 (input line 1)(
   R   R1   RT   R±   R   RB   R   R8   R   R   (   Rò   t   work_paramst	   work_philR^   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_int_and_float³  sL    				 		 		 		 c          C   s�  t  j d d ƒ }  |  j ƒ  } d/ g | _ |  j d | ƒ } t | j d d ƒ d ƒ s^ t ‚ t  j d d	 ƒ }  y |  j ƒ  Wn+ t k
 r« } t	 | ƒ d
 k s² t ‚ n Xt
 ‚ t  j d d ƒ }  |  j ƒ  } |  j d | ƒ } t | j d d ƒ d ƒ st ‚ t  j d d ƒ } |  j d | ƒ } y | j ƒ  Wn/ t k
 rg} t t	 | ƒ d ƒ snt ‚ n Xt
 ‚ t  j d d ƒ } |  j d | ƒ } | j ƒ  } d | j d <y |  j d | ƒ Wn/ t k
 rð} t t	 | ƒ d ƒ s÷t ‚ n Xt
 ‚ t  j d d ƒ } |  j d | ƒ } y | j ƒ  Wn/ t k
 rZ} t t	 | ƒ d ƒ sat ‚ n Xt
 ‚ t  j d d ƒ } |  j d | ƒ } | j ƒ  } d | j d <y |  j d | ƒ Wn/ t k
 rã} t t	 | ƒ d ƒ sêt ‚ n Xt
 ‚ t  j d d ƒ } |  j d | ƒ } y | j ƒ  Wn/ t k
 rM} t t	 | ƒ d ƒ sTt ‚ n Xt
 ‚ |  j ƒ  } d g | _ y |  j d | ƒ Wn/ t k
 r±} t t	 | ƒ d ƒ s¸t ‚ n Xt
 ‚ t  j d d ƒ } |  j d | ƒ } y | j ƒ  Wn/ t k
 r} t t	 | ƒ d ƒ s"t ‚ n Xt
 ‚ |  j ƒ  } d g | _ y |  j d | ƒ Wn/ t k
 r} t t	 | ƒ d ƒ s†t ‚ n Xt
 ‚ t  j d d ƒ } |  j d | ƒ } y | j ƒ  Wn/ t k
 ré} t t	 | ƒ d  ƒ sðt ‚ n Xt
 ‚ |  j ƒ  } d d d! d d" g | _ y |  j d | ƒ Wn/ t k
 rY} t t	 | ƒ d# ƒ s`t ‚ n Xt
 ‚ t  j d d$ ƒ } |  j d | ƒ } y | j ƒ  Wn/ t k
 rÃ} t t	 | ƒ d% ƒ sÊt ‚ n Xt
 ‚ |  j ƒ  } d d d! g | _ y |  j d | ƒ Wn/ t k
 r-} t t	 | ƒ d& ƒ s4t ‚ n Xt
 ‚ xý d' d( g D]ï } t  j d d) | j ƒ  ƒ } |  j d | ƒ } y | j ƒ  Wn3 t k
 r¸} t t	 | ƒ d* | ƒ s¿t ‚ n Xt
 ‚ |  j ƒ  } d t | ƒ g | _ y |  j d | ƒ Wn3 t k
 r)} t t	 | ƒ d+ | ƒ s0t ‚ qAXt
 ‚ qAWt  j d d, ƒ }  t  j d d- ƒ } |  j | ƒ } t | j ƒ  j ƒ  d. ƒ s‰t ‚ d  S(0   NR   sž   a=None
  .type=floats
b=Auto
  .type=ints
c=1
  .type=floats
d=1 1/2
  .type=floats
e=2,3/4,4/5
  .type=floats
f="1;1/2"
  .type=floats
g=None
  .type=floats
i   i   RO   R/   i   s¹   a = None
  .type = floats
b = Auto
  .type = ints
c = 1
  .type = floats
d = 1 0.5
  .type = floats
e = 2 0.75 0.8
  .type = floats
f = 1 0.5
  .type = floats
g = 0.25
  .type = floats
s   a=1 v
  .type=floats
sc   Error interpreting a="v" as a numeric expression: NameError: name 'v' is not defined (input line 1)s   a=1 2
  .type=ints(2)
b=3
  .type=floats(size=1)
c=4 5
  .type=ints(size_min=2)
d=6
  .type=floats(size_max=2)
e=7 8 9
  .type=floats(size_max=4, size_min=2)
f=10 20
  .type=floats(value_max=20, value_min=10)
g=nOnE aUtO
  .type=floats(allow_none_elements=True, allow_auto_elements=True)
sA  a = 1 2
  .type = ints(size=2)
b = 3
  .type = floats(size=1)
c = 4 5
  .type = ints(size_min=2)
d = 6
  .type = floats(size_max=2)
e = 7 8 9
  .type = floats(size_min=2, size_max=4)
f = 10 20
  .type = floats(value_min=10, value_max=20)
g = None Auto
  .type = floats(allow_none_elements=True, allow_auto_elements=True)
s   f=9
R¬   sG   f element is less than the minimum allowed value: 9 < 10 (input line 1)s   f=10
i	   i    s8   f element is less than the minimum allowed value: 9 < 10s   f=21
sK   f element is greater than the maximum allowed value: 21 > 20 (input line 1)s   f=20
i   s<   f element is greater than the maximum allowed value: 21 > 20s   e=1
sD   Not enough values for e: 1 given, at least 2 required (input line 1)s5   Not enough values for e: 1 given, at least 2 requireds   a=1
sC   Not enough values for a: 1 given, exactly 2 required (input line 1)s4   Not enough values for a: 1 given, exactly 2 requireds   e=1 2 3 4 5
s@   Too many values for e: 5 given, 4 allowed at most (input line 1)i   i   s1   Too many values for e: 5 given, 4 allowed at mosts   a=1 2 3
sA   Too many values for a: 3 given, exactly 2 required (input line 1)s2   Too many values for a: 3 given, exactly 2 requiredR   R   s   a=1 %s
s%   a element cannot be %s (input line 1)s   a element cannot be %ss2   a = None
  .type = floats
b = None
  .type = ints
s!   a = ([12.34, 45.67])
b = [(3,4)]
s   a = 12.34 45.67
b = 3 4
g      Ð?(   R   R1   RT   R„   R±   R   RB   R   R8   R   R   R°   Rƒ   R^   Rd   t   lowert   evalt   extract_format(   Rò   R  R  R^   t	   user_philR   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_ints_and_floats  s4   				 					 		 		 		 		  		  		  		  	  
				c          C   s  t  j d d ƒ }  |  j d } | j d d ƒ } | j d  k sF t ‚ t | j j	 ƒ  d ƒ se t ‚ | j d d d d ƒ } t | j d	 ƒ s– t ‚ | j d  k s« t ‚ | j d d
 ƒ } | j d  k sÒ t ‚ t | j j	 ƒ  d ƒ sñ t ‚ | j j
 ƒ  } | j d  k st ‚ | j d d g k s0t ‚ | j j ƒ  } | j d  k sTt ‚ t | j j	 ƒ  d ƒ sst ‚ | j d d d d ƒ } | j d  k s t ‚ t | j j	 ƒ  d ƒ s¿t ‚ | j j
 ƒ  } t | j d ƒ sçt ‚ | j d  k süt ‚ | j j ƒ  } t | j | j ƒ s't ‚ | j d  k s<t ‚ | j d d ƒ } | j d  k sct ‚ | j d d d g k s�t ‚ | j d d ƒ } | j d  k s¨t ‚ t | j j	 ƒ  d ƒ sÇt ‚ xu | j d f | j d f g D]U \ } } | d d d d ƒ } t | j d ƒ s t ‚ t | | ƒ d  k sæt ‚ qæW| j d d ƒ } | j d d ƒ } | j j | _ t |  j	 ƒ  d ƒ sŽt ‚ t  j d d ƒ }  |  j d } | j d d ƒ } | j d  k sÔt ‚ | j j
 ƒ  } | j d  k søt ‚ | j d  k st ‚ d  S(    NR   s   a=None
  .type=ints
i    s    3 s   a = 3
R	   R   t   srcs1   Syntax error: missing closing quote (src, line 1)s    3,  2s	   a = 3, 2
i   i   s   a = 3 2
s   'x y't   Srcs
   a = 'x y'
sb   Error interpreting a="x" as a numeric expression: NameError: name 'x' is not defined (Src, line 1)s   1;2,3i   s   1;2,3
4s   a = 1 2 3 4
R©   t	   formattedR®   t   sisq   Error interpreting a="*" as a numeric expression: SyntaxError: unexpected EOF while parsing (line 1) (si, line 1)s	    5*2 3 7 s   a = 10 3 7
s   a=None
  .type=None
R   (   R   R1   Ri   t   try_tokenizet   error_messageR   R   R   t	   tokenizedRB   t   try_extractR©   t   try_extract_formatR  t   validatet   validate_and_formatt   getattrR   (   Rõ   Rd   t   proxyt   proxy2t   proxy2ft   vR�   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt    exercise_definition_validate_etcì  sh    			+			c             sÔ  d }  t  j d |  ƒ } | j d d ƒ } | j ƒ  } x0 | | g D]" } | j d d ƒ j ƒ  d k qC W| j d d ƒ j ƒ  d	 k s� t ‚ | j d d
 ƒ j ƒ  d k s± t ‚ y | j d d ƒ sÌ t ‚ Wn/ t k
 rþ } t t | ƒ d ƒ st ‚ n Xt	 ‚ | j d d ƒ j ƒ  d k s)t ‚ | j d d ƒ j ƒ  d k sMt ‚ x\ | | g D]N } | j d d ƒ j ƒ  d k s„t ‚ | j d d ƒ j ƒ  d k sZt ‚ qZWy | j d d ƒ Wn/ t k
 rñ} t t | ƒ d ƒ søt ‚ n Xt	 ‚ y | j d d ƒ Wn+ t k
 r9} t | ƒ d k s@t ‚ n Xt	 ‚ y | j d d ƒ Wn+ t k
 r�} t | ƒ d k sˆt ‚ n Xt	 ‚ | j d d ƒ } y | j d d ƒ Wn+ t k
 rÛ} t | ƒ d k sât ‚ n Xt	 ‚ t
 d d ƒ d  IJ| j d! d d" d# d d$ d% g ƒ } t | ƒ d& k s1t ‚ xI t d' d( d) d* d+ g ƒ D], \ } } t | | j ƒ  | ƒ sMt ‚ qMWt j d ƒ t j j d ƒ s£t ‚ xg d d, g D]Y }	 y | j d! |	 g ƒ Wn3 t k
 r} t t | ƒ d- |	 ƒ s	t ‚ q°Xt	 ‚ q°Wt
 d d ƒ d. IJy | j d! d g ƒ Wn/ t k
 rh} t t | ƒ d/ ƒ sot ‚ n Xt	 ‚ g  ‰  ‡  f d0 †  }
 d d, g } | j d! | d1 |
 ƒ } t | ƒ d2 k sÀt ‚ ˆ  | k sÒt ‚ g  ‰  ‡  f d3 †  }
 y | j d! | d1 |
 ƒ Wn/ t k
 r2} t t | ƒ d4 ƒ s9t ‚ n Xt	 ‚ ˆ  | d5  k sOt ‚ | j d! d6 g ƒ } t | j ƒ  d7 d8 ƒ sƒt ‚ t  j d! d9 g d: |  ƒ } | j t  j k s¶t ‚ t | j j ƒ  | j ƒ  ƒ sÛt ‚ t ƒ  } | j d; | ƒ t | j ƒ  d< d= ƒ st ‚ | j g  k s(t ‚ t  j d! d> g d: |  ƒ } | j d> g k s[t ‚ t  j d? ƒ } d@ „  }
 | j ƒ  } dA g } | j d! dA g d1 |
 ƒ } | j dB | ƒ j ƒ  } | j dC k sÐt ‚ d  S(D   Nsa   foo {
  min=0
  max=10
  index=3
  limit=6
}
bar {
  max=5
  sub {
    limit=8
  }
  flag=None
}
R   t
   home_scopeRë   t   args   foo.limit=4
bar.max=2s   foo.limit = 4
bar.max = 2
s   max=6s   bar.max = 6
s   ax=7s   bar.max = 7
s   max=5sI   Ambiguous parameter definition: max = 5
Best matches:
  foo.max
  bar.maxs   limit=0s   bar.sub.limit = 0
s   imit=0s   index=0s   foo.index = 0
s   ndex=0s   xyz=s�   Error interpreting command line argument as parameter definition:
  "xyz="
  RuntimeError: Missing value for xyz (command line argument, line 1)s   xyz=8s2   Unknown command line parameter definition: xyz = 8s     s5   Command line parameter definition has no effect: "  "t   argument_descriptionR   s   bar {}s,   Parameter definition has no effect: "bar {}"s   tmp0d5f6e10.philR›   s   foo.limit=-3RR   s   --flags	   --flag=nos   max=8s   limit=9i   s   bar.flag = True
s   bar.flag = no
s   foo.limit = -3
s   bar.max = 8
s   bar.sub.limit = 9
s   lmit=3s+   Uninterpretable command line argument: "%s"s   foo$limit=0sT   Syntax error: improper definition name "foo$limit" (file "tmp0d5f6e10.phil", line 1)c            s   ˆ  j  |  ƒ t S(   N(   t   appendRq   (   R)  (   t   intercepted(    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   custom_processorˆ  s    R-  i    c            s'   t  j j |  ƒ s t Sˆ  j |  ƒ t S(   N(   R”   RJ   t   isfileR{   R+  Rq   (   R)  (   R,  (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR-  �  s    s/   Uninterpretable command line argument: "lmit=3"i   s   limit=12i	   s       limit = 12
s   bar.max=4943t   master_stringR-   i   s     max = 4943
t   892c8632s   
sites = None
  .type = int
c         S   s:   y t  |  ƒ } Wn t k
 r$ d  SXt j d | ƒ Sd  S(   Ns   sites=%d(   RG   R¦   R   R   R1   (   R)  t   val(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR-  ±  s
    t   2R«   i   (   R   R1   t!   command_line_argument_interpretert   processRB   R   R   R   R   R   R    R   t	   enumerateR”   t   removeRJ   t   existsR8   t   process_and_fetchR   t   process_command_lineRM   R   R3   R4   t   remaining_argst   process_argsR°   RT   t   sites(   R/  Rò   t   itpr_bart   itpr_neutralt   itprR^   t
   user_philsR†   t   expectedR)  R-  RR   R  t   pclRv   RD   (    (   R,  s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_command_line*  sæ    		$$ $$$(   		 	$ 
  	%						c          C   s‘  t  j j d ƒ }  |  j ƒ  } xv d# d$ d% d& d' d( d) d* d+ d, d- d. g D]J \ } } |  j d | j d | ƒ ƒ } t | j ƒ  | d ƒ sI t ‚ qI Wxv d/ d0 g D]h \ } } y  |  j d | j d | ƒ ƒ Wn3 t	 k
 r} t t
 | ƒ d | ƒ st ‚ q¤ Xt ‚ q¤ Wxz d d d  d! g D]f } y$ |  j d | j d d" | ƒ ƒ Wn3 t	 k
 r‚} t t
 | ƒ d | ƒ s‰t ‚ q#Xt ‚ q#Wd  S(1   NsC     u = a b c
    .type = choice(multi=True)
    .optional = False
  s   u=as
   u = *a b cs   u=bs
   u = a *b cs   u=cs
   u = a b *cs   u=a+bs   u = *a *b cs   u=b +cs   u = a *b *cs   u=a+ cs   u = *a b *cs
   u=a + b +cs   u = *a *b *cs   u=+a + b +cs   u=+a ++ b +cs	   u = a b cs   u=a + b + *cs   u=a + b + *Cs   u=a + b + 'c'R¬   R)  s   
s   u=a+dRg   s   u=e + bR^   si   Not a possible choice for u: %s (command line argument, line 1)
  Possible choices are:
    a
    b
    cs   ++as   a++s   a++bs   a+b+s   u=(   s   u=as
   u = *a b c(   s   u=bs
   u = a *b c(   s   u=cs
   u = a b *c(   s   u=a+bs   u = *a *b c(   s   u=b +cs   u = a *b *c(   s   u=a+ cs   u = *a b *c(   s
   u=a + b +cs   u = *a *b *c(   s   u=+a + b +cs   u = *a *b *c(   s   u=+a ++ b +cs	   u = a b c(   s   u=a + b + *cs
   u = a b *c(   s   u=a + b + *Cs
   u = a b *c(   s   u=a + b + 'c's	   u = a b c(   s   u=a+dRg   (   s   u=e + bR^   (   t   libtbxR   R1   R3  R°   R4  R   RB   R   R   R   R   (   Rò   t   caiR)  t   expected_resultR  t   errR^   R1  (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt"   exercise_choice_multi_plus_support¿  s@    		$  
 $c          C   s˜  y t  j d ƒ Wn+ t k
 r> }  t |  ƒ d k sE t ‚ n Xt ‚ y t  j d ƒ Wn+ t k
 rƒ }  t |  ƒ d k sŠ t ‚ n Xt ‚ y t  j d ƒ WnI t k
 ræ }  t |  ƒ j d ƒ sÈ t ‚ t |  ƒ j	 d ƒ sí t ‚ n Xt ‚ y t  j d ƒ Wn+ t k
 r+}  t |  ƒ d	 k s2t ‚ n Xt ‚ t  j d
 ƒ } t
 | j d d ƒ d ƒ sct ‚ | j ƒ  } | j ƒ  } | d | j k s”t ‚ | d i  k sªt ‚ | j ƒ  } | d | j k sÏt ‚ | d i d d 6k sìt ‚ | j d d ƒ } | d | j k st ‚ | d i d d 6d d 6k s;t ‚ | j d d ƒ } | d | j k sft ‚ | d i d d 6k sƒt ‚ | j ƒ  } | d | j k s¨t ‚ | d i d d 6d d 6k sÌt ‚ | j d d ƒ } | d | j k s÷t ‚ | d i d d 6d d 6d d 6k s"t ‚ | j d d ƒ } | d | j k sMt ‚ | d i d d 6d d 6k sqt ‚ y | j d d ƒ Wn+ t k
 r²}  t |  ƒ d k s¹t ‚ n Xt ‚ y | j ƒ  Wn+ t k
 rô}  t |  ƒ d k sût ‚ n Xt ‚ t  j d ƒ } t
 | j d d ƒ d ƒ s,t ‚ | j ƒ  } | j ƒ  } | j | j k s\t ‚ | j i  k sqt ‚ | j d d d d ƒ } | j | j k s¡t ‚ | j i d d 6d d 6d d 6k sËt ‚ t  j d ƒ } t
 | j d d ƒ d ƒ süt ‚ | j ƒ  } | j ƒ  } | j | j k s,t ‚ | j i  k sAt ‚ | j d d d d ƒ } | j | j k sqt ‚ | j i d d 6d d 6k s”t ‚ d  S(   Ns.   s
  .call=libtbx.phil.tst.scope_call_none
{
}
s^   scope "s" .call: object "scope_call_none" not found in module "libtbx.phil.tst" (input line 2)s6   s
  .call=libtbx.phil.tst.scope_call_not_callable
{
}
si   scope "s" .call: "libtbx.phil.tst.scope_call_not_callable" is not a callable Python object (input line 2)s/   s
  .call=libtbx.phil.tst.scope_call_func(
{
}
s2   scope "s" .call=libtbx.phil.tst.scope_call_func(: s    (input line 2)s5   s
  .call=libtbx.phil.tst.scope_call_func(a=b=c)
{
}
sk   scope "s" .call=libtbx.phil.tst.scope_call_func(a=b=c): SyntaxError: invalid syntax (line 1) (input line 2)s£   s
  .call=libtbx.phil.tst.scope_call_func
{
}
t
  .call=libtbx.phil.tst.scope_call_func(a =1)
{
}
u
  .call=libtbx.phil.tst.scope_call_func (a= 1 , b=2)
{
}
v
{
}
R/   i   s¥   s
  .call = libtbx.phil.tst.scope_call_func
{
}
t
  .call = libtbx.phil.tst.scope_call_func(a=1)
{
}
u
  .call = libtbx.phil.tst.scope_call_func(a=1, b=2)
{
}
v {
}
i    i   Rd   R   i   R‚   t   actiont   raisesn   scope "u" .call=libtbx.phil.tst.scope_call_func(a=1, b=2) execution: ValueError: action==raise (input line 10)s   scope "v" is not callable.sv   s
  .call=libtbx.phil.tst.scope_call_class
{
}
u
  .call = libtbx . phil .tst. scope_call_class ( a = 1 , b = 2 )
{
}
sl   s
  .call = libtbx.phil.tst.scope_call_class
{
}
u
  .call = libtbx.phil.tst.scope_call_class(a=1, b=2)
{
}
i   sv   s
  .call=libtbx.phil.tst.scope_call_class_object
{
}
u
  .call=libtbx.phil.tst.scope_call_class_object(a=1, b=2)
{
}
sz   s
  .call = libtbx.phil.tst.scope_call_class_object
{
}
u
  .call = libtbx.phil.tst.scope_call_class_object(a=1, b=2)
{
}
(   R   R1   RZ   R   R   R   R[   R8   R\   R]   R   RB   RT   Rv   Rw   RÕ   R&  t   scope_extractt   keyword_args(   R^   RM   RD   Rf   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_scope_callì  s¬      	  	$$+$ 	 			*			c    
      C   s¦  t  j d ƒ }  d t f d „  ƒ  Y} | ƒ  } | j t _ |  j ƒ  } t ƒ  } | j d | d d ƒ d | j	 ƒ  k s} t
 ‚ t  j d ƒ } |  j d	 | ƒ } t ƒ  } | j d | d d
 ƒ d | j	 ƒ  k sÕ t
 ‚ t  j d ƒ } |  j d	 | ƒ } | j d k st
 ‚ | j d k s t
 ‚ t ƒ  } | j d | d d
 ƒ d | j	 ƒ  k sWt
 ‚ t  j d ƒ }	 |  j d	 |	 ƒ } | j d k s�t
 ‚ | j d k s¢t
 ‚ d  S(   Ns¡   
foo {
  bar = None
    .type = str
}
fubar = None
  .type = str
  .deprecated = True
strategy = *xyz *adp tls
  .type = choice(multi=True)
  .deprecated = True
t   _showwarningc           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   d |  _  d  |  _ d  S(   Ni    (   R’   R   t   message(   R9   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR=   £  s    	c         _   s4   | t  j k r0 |  j d 7_ t | ƒ |  _ n  d  S(   Ni   (   R   t   PhilDeprecationWarningR’   R   RO  (   R9   RO  t   categoryRR   t   kwds(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   __call__§  s    (   R>   R?   R=   RS  (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRN  ¢  s   	R-   R/   i   t   fubars
   fubar=NoneR¬   i   s   fubar=abcedfi   s.   fubar is deprecated - not recommended for use.s   strategy=xyz+tlss1   strategy is deprecated - not recommended for use.(   R   R1   Rà   RS  t   warningst   showwarningR°   R   R3   R4   R   R’   RO  (
   RM   RN  t   warnt   w0R-   t   user1t   w1t   user2t   w2t   user3(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_deprecation•  s2    						c         K   s.   | j  d ƒ d k r$ t d ƒ ‚ n  |  | f S(   NRI  RJ  s   action==raise(   Rh   R¦   (   RK  RL  (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   scope_call_funcÄ  s    t   scope_call_classc           B   s   e  Z d  „  Z RS(   c         K   s   | |  _  | |  _ d  S(   N(   RK  RL  (   R9   RK  RL  (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR=   Ê  s    	(   R>   R?   R=   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR`  É  s   t   scope_call_class_objectc           B   s   e  Z d  „  Z RS(   c         K   s   | |  _  | |  _ d  S(   N(   RK  RL  (   R9   RK  RL  (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyR=   Ï  s    	(   R>   R?   R=   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyRa  Î  s   c          C   s`   t  j d ƒ }  t  j d |  d d ƒ } t ƒ  } | j d | ƒ t | j ƒ  d ƒ s\ t ‚ d  S(   Ns6   scope1 {
  a = 1
  b = 2
}
scope2 {
  c = 3
  d = 4
}
t   current_philt
   scope_namet   scope2R-   s   scope2 {
  c = 3
  d = 4
}
(   R   R1   t
   find_scopeR   R3   R   R4   R   (   t
   phil_scopeRd  Rv   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_find_scopeÓ  s    			c          C   s™   t  j d ƒ }  d } t  j d | ƒ } |  j d | ƒ } | j ƒ  } t | j t j j | ƒ ƒ sk t	 ‚ | j
 d  k s€ t	 ‚ | j t k s• t	 ‚ d  S(   NsH   a = None
  .type = path
b = None
  .type = path
c = None
  .type = path
s   ~/tmps   a = %s
b = None
c = Auto
R¬   (   R   R1   R°   RT   R   Rd   R”   RJ   t
   expanduserR   R‚   R   Rf   R   (   RM   t
   tilde_patht   userRf  RD   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_pathè  s    	%c          C   sW  t  j d ƒ }  t  j d ƒ } |  j | ƒ t ƒ  } |  j d | ƒ t | j ƒ  d ƒ s` t ‚ t  j d ƒ } |  j | ƒ t ƒ  } |  j d | ƒ t | j ƒ  d ƒ s± t ‚ t  j d ƒ } |  j | ƒ t ƒ  } |  j d | ƒ t | j ƒ  d ƒ st ‚ t  j d	 ƒ } |  j | ƒ t ƒ  } |  j d | ƒ t | j ƒ  d
 ƒ sSt ‚ d  S(   Ns;   scope1 {
  a = 1
    .type = int
  b = 2
    .type = int
}
s#   scope1 {
  c = 3
    .type = int
}
R-   s#   scope1 {
  a = 1
  b = 2
  c = 3
}
s:   
scope2 {
  subscope2 {
    d = 4
      .type = int
  }
}
sJ   scope1 {
  a = 1
  b = 2
  c = 3
}
scope2 {
  subscope2 {
    d = 4
  }
}
s-   scope2.subscope2 {
  e = 5
    .type = int
}
sT   scope1 {
  a = 1
  b = 2
  c = 3
}
scope2 {
  subscope2 {
    d = 4
    e = 5
  }
}
sA   scope1 {
  a = 4.123
    .type = float
  f = 6
    .type = int
}
s`   scope1 {
  a = 4.123
  b = 2
  c = 3
  f = 6
}
scope2 {
  subscope2 {
    d = 4
    e = 5
  }
}
(   R   R1   t   adopt_scopeR   R3   R   R4   R   (   Rò   t   phil2Rv   t   phil3t   phil4t   phil5(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_adopt_scopeý  s<    									c    
      C   s  t  j d d t ƒ}  t  j d ƒ } t  j d ƒ } |  j d | ƒ } |  j d | ƒ } | j ƒ  } | j ƒ  } | j j | j j k s� t ‚ t ƒ  } t ƒ  } | j	 d | ƒ | j	 d | ƒ | j
 ƒ  | j
 ƒ  k sÝ t ‚ t ƒ  }	 |  j	 d d d |	 ƒ |	 j
 ƒ  d	 k st ‚ d  S(
   NsL  
pdb_interpretation
  .alias = refinement.pdb_interpretation
{
  auto_link = False
    .type = bool
}
geometry_restraints
  .alias = refinement.geometry_restraints
{
 edits {
  excessive_bond_distance_limit = 10
    .type = float
  bond
    .multiple = True
    .optional = True
  {
    distance = None
      .type = float
  }
 }
}
Rœ   s­   
pdb_interpretation {
  auto_link = True
}
geometry_restraints.edits {
  excessive_bond_distance_limit = 5
  bond {
    distance = 1.5
  }
  bond {
    distance = 2.5
  }
}
sÔ   
refinement {
  pdb_interpretation {
    auto_link = True
  }
  geometry_restraints.edits {
    excessive_bond_distance_limit = 5
    bond {
      distance = 1.5
    }
    bond {
      distance = 2.5
    }
  }
}
R¬   R-   R/   i   sò   pdb_interpretation
  .alias = refinement.pdb_interpretation
{
  auto_link = False
}
geometry_restraints
  .alias = refinement.geometry_restraints
{
  edits {
    excessive_bond_distance_limit = 10
    bond {
      distance = None
    }
  }
}
(   R   R1   Rq   R°   RT   t   pdb_interpretationt	   auto_linkR   R   R3   R4   (
   Rò   t   geo_phil_newt   geo_phil_oldt   work_oldt   work_newt   p1t   p2t   s1t   s2Rv   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise_alias^  s(    						c           C   sÔ   t  ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t	 ƒ  t
 ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  d GHd  S(   Nt   OK(   R|  Rq  Rk  Rg  R+   RE   R_   Re   Rk   Rn   Rs   Rz   R˜   Rª   Rš   RÅ   RÉ   Rä   Rè   Rù   Rö   RM  R  R  R  R'  RC  RH  R^  (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   exercise³  s<    t   __main__(L   t
   __future__R    RD  R   t   libtbx.philt   libtbx.utilsR   t   libtbx.test_utilsR   R   R   R   R   RU  t	   cStringIOR   Rl   R5   R”   R+   Rà   R,   RE   R   t   improper_phil_convertersRF   RQ   RS   R_   Rc   Re   Rk   Rn   R{   Rp   Rr   Rs   Rz   R�   R˜   Rš   Rª   t   include_scope_target_0nt   include_scope_target_0fR1   t   include_scope_target_1t   include_scope_target_2st   include_scope_target_2RÅ   RÉ   Rä   Rè   Ré   Rí   t   extended_converter_registryRø   Rö   Rù   R  R  R  R'  RC  RH  RM  R^  t   scope_call_not_callableR_  R`  Ra  Rg  Rk  Rq  R|  R~  R>   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/phil/tst.pyt   <module>   s–   	0"	ó		Q	5	)			$	Â
	Û		ÿ S		
	ÿ ÿ ÿ ÿ Ý	ÿ ò	ÿ Ë	ÿ ÿ ÿ F
		m	L	~	T	å	>	•	-	©	-				a	U	 