ó
è?F[c           @   s  d  d l  Z d e f d „  ƒ  YZ y* d  d l m Z d e f d „  ƒ  YZ Wn' e k
 ru d e f d „  ƒ  YZ n Xd e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ	 d e	 f d „  ƒ  YZ
 d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d  e e f d! „  ƒ  YZ d" e f d# „  ƒ  YZ d$ e f d% „  ƒ  YZ d& e f d' „  ƒ  YZ d( e f d) „  ƒ  YZ d* e f d+ „  ƒ  YZ d, e f d- „  ƒ  YZ d. e f d/ „  ƒ  YZ d0 e f d1 „  ƒ  YZ d2 e f d3 „  ƒ  YZ d4 e f d5 „  ƒ  YZ d6 e f d7 „  ƒ  YZ  d S(8   iÿÿÿÿNt   Questionc           B   s2   e  Z d  Z e d d „ Z d d „ Z d „  Z RS(   s   <Question>%(items)s</Question>c         C   s   |  j  j t ƒ  ƒ |  ` d  S(   N(   t   __dict__t   updatet   varst   self(   R   t
   identifiert   contentt   answer_spect   is_requiredt   display_name(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyt   __init__   s    R    c         C   s   i |  j  ƒ  | 6S(   N(   t
   get_as_xml(   R   t   label(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyt   get_as_params!   s    c         C   s‘   t  d |  j ƒ t  d t |  j ƒ j ƒ  ƒ |  j |  j g } |  j d  k	 rj | j	 d t  d |  j ƒ ƒ n  d j
 d „  | Dƒ ƒ } |  j t ƒ  S(   Nt   QuestionIdentifiert
   IsRequiredi   t   DisplayNamet    c         s   s   |  ] } | j  ƒ  Vq d  S(   N(   R   (   t   .0t   item(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>-   s    (   t   SimpleFieldR   t   strR   t   lowerR   R   R	   t   Nonet   insertt   joint   templateR   (   R   t   items(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   $   s    N(   t   __name__t
   __module__R   t   FalseR   R
   R   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR       s   (   t   etreet   ValidatingXMLc           B   s   e  Z d  „  Z RS(   c         C   sb   d d  l  } | j |  j ƒ } t j | ƒ } t j | ƒ } t j |  j ƒ  ƒ } | j | ƒ d  S(   Niÿÿÿÿ(	   t   urllib2t   urlopent
   schema_urlR   t   parset	   XMLSchemat
   fromstringR   t   assertValid(   R   R!   t   schema_src_filet
   schema_doct   schemat   doc(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyt   validate5   s    (   R   R   R,   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR    3   s   c           B   s   e  Z d  „  Z RS(   c         C   s   d  S(   N(    (   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR,   ?   s    (   R   R   R,   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR    =   s   t   ExternalQuestionc           B   s?   e  Z d  Z d Z d e ƒ  Z d „  Z d d „ Z d „  Z RS(   s:   
    An object for constructing an External Question.
    s`   http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsds”   <ExternalQuestion xmlns="%(schema_url)s"><ExternalURL>%%(external_url)s</ExternalURL><FrameHeight>%%(frame_height)s</FrameHeight></ExternalQuestion>c         C   s%   t  j j j | ƒ |  _ | |  _ d  S(   N(   t   xmlt   saxt   saxutilst   escapet   external_urlt   frame_height(   R   R2   R3   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   J   s    R-   c         C   s   i |  j  ƒ  | 6S(   N(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   N   s    c         C   s   |  j  t |  ƒ S(   N(   R   R   (   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   Q   s    (	   R   R   t   __doc__R#   R   R   R
   R   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR-   C   s   	t   XMLTemplatec           B   s   e  Z d  „  Z RS(   c         C   s   |  j  t |  ƒ S(   N(   R   R   (   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   V   s    (   R   R   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR5   U   s   R   c           B   s   e  Z d  Z d Z d „  Z RS(   s¢   
    A Simple name/value pair that can be easily rendered as XML.

    >>> SimpleField('Text', 'A text string').get_as_xml()
    '<Text>A text string</Text>'
    s    <%(field)s>%(value)s</%(field)s>c         C   s   | |  _  | |  _ d  S(   N(   t   fieldt   value(   R   R6   R7   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   c   s    	(   R   R   R4   R   R
   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   Z   s   t   Binaryc           B   s   e  Z d  Z d „  Z RS(   s’   <Binary><MimeType><Type>%(type)s</Type><SubType>%(subtype)s</SubType></MimeType><DataURL>%(url)s</DataURL><AltText>%(alt_text)s</AltText></Binary>c         C   s   |  j  j t ƒ  ƒ |  ` d  S(   N(   R   R   R   R   (   R   t   typet   subtypet   urlt   alt_text(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   k   s    (   R   R   R   R
   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR8   h   s   t   Listc           B   s   e  Z d  Z d „  Z RS(   s?   A bulleted list suitable for OrderedContent or Overview contentc         C   s!   d j  d „  |  Dƒ ƒ } d | S(   NR   c         s   s   |  ] } d  | Vq d S(   s   <ListItem>%s</ListItem>N(    (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>s   s    s   <List>%s</List>(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   r   s    (   R   R   R4   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR=   p   s   t   Applicationc           B   s/   e  Z d  Z d Z d „  Z d „  Z d „  Z RS(   s?   <Application><%(class_)s>%(content)s</%(class_)s></Application>s-   <Name>%(name)s</Name><Value>%(value)s</Value>c         K   s   | |  _  | |  _ | |  _ d  S(   N(   t   widtht   heightt
   parameters(   R   R?   R@   RA   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   {   s    		c         C   sj   | j  d |  j ƒ | j  d |  j ƒ x= |  j j ƒ  D], \ } } |  j t ƒ  } | j  d | ƒ q6 Wd  S(   Nt   Widtht   Heightt   ApplicationParameter(   t   append_fieldR?   R@   RA   R   t   parameter_templateR   (   R   R   t   nameR7   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyt   get_inner_content€   s
    c         C   s<   t  ƒ  } |  j | ƒ | j ƒ  } |  j j } |  j t ƒ  S(   N(   t   OrderedContentRH   R   t	   __class__R   R   R   (   R   R   t   class_(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   ‡   s
    	(   R   R   R   RF   R
   RH   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR>   w   s
   		t   HTMLQuestionc           B   s9   e  Z d  Z d e ƒ  Z d „  Z d d „ Z d „  Z RS(   s\   http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2011-11-11/HTMLQuestion.xsds¤   <HTMLQuestion xmlns="%(schema_url)s"><HTMLContent><![CDATA[<!DOCTYPE html>%%(html_form)s]]></HTMLContent><FrameHeight>%%(frame_height)s</FrameHeight></HTMLQuestion>c         C   s   | |  _  | |  _ d  S(   N(   t	   html_formR3   (   R   RM   R3   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   “   s    	RL   c         C   s   i |  j  ƒ  | 6S(   N(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   —   s    c         C   s   |  j  t |  ƒ S(   N(   R   R   (   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   š   s    (   R   R   R#   R   R   R
   R   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRL      s
   	t
   JavaAppletc           B   s   e  Z d  „  Z d „  Z RS(   c         O   s/   | |  _  | |  _ t t |  ƒ j | | Ž  d  S(   N(   t   patht   filenamet   superRN   R
   (   R   RO   RP   t   argst   kwargs(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   Ÿ   s    		c         C   sI   t  ƒ  } | j d |  j ƒ | j d |  j ƒ t t |  ƒ j | ƒ d  S(   Nt
   AppletPatht   AppletFilename(   RI   RE   RO   RP   RQ   RN   RH   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRH   ¤   s    	(   R   R   R
   RH   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRN   ž   s   	t   Flashc           B   s   e  Z d  „  Z d „  Z RS(   c         O   s&   | |  _  t t |  ƒ j | | Ž  d  S(   N(   R;   RQ   RV   R
   (   R   R;   RR   RS   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   ¬   s    	c         C   s6   t  ƒ  } | j d |  j ƒ t t |  ƒ j | ƒ d  S(   Nt   FlashMovieURL(   RI   RE   R;   RQ   RV   RH   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRH   °   s    	(   R   R   R
   RH   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRV   «   s   	t   FormattedContentc           B   s   e  Z d  Z d Z d „  Z RS(   sk   http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/FormattedContentXHTMLSubset.xsds<   <FormattedContent><![CDATA[%(content)s]]></FormattedContent>c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   º   s    (   R   R   R#   R   R
   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRX   ¶   s   RI   c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   |  j  t | | ƒ ƒ d  S(   N(   t   appendR   (   R   R6   R7   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRE   À   s    c         C   s   d j  d „  |  Dƒ ƒ S(   NR   c         s   s   |  ] } | j  ƒ  Vq d  S(   N(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>Ä   s    (   R   (   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   Ã   s    (   R   R   RE   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRI   ¾   s   	t   Overviewc           B   s#   e  Z d  Z d d „ Z d „  Z RS(   s    <Overview>%(content)s</Overview>RZ   c         C   s   i |  j  ƒ  | 6S(   N(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   Ê   s    c         C   s#   t  t |  ƒ j ƒ  } |  j t ƒ  S(   N(   RQ   RZ   R   R   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   Í   s    (   R   R   R   R   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRZ   Ç   s   t   QuestionFormc           B   s3   e  Z d  Z d Z d e ƒ  Z d „  Z d „  Z RS(   sõ  
    From the AMT API docs:

    The top-most element of the QuestionForm data structure is a
    QuestionForm element. This element contains optional Overview
    elements and one or more Question elements. There can be any
    number of these two element types listed in any order. The
    following example structure has an Overview element and a
    Question element followed by a second Overview element and
    Question element--all within the same QuestionForm.

    ::

        <QuestionForm xmlns="[the QuestionForm schema URL]">
            <Overview>
                [...]
            </Overview>
            <Question>
                [...]
            </Question>
            <Overview>
                [...]
            </Overview>
            <Question>
                [...]
            </Question>
            [...]
        </QuestionForm>

    QuestionForm is implemented as a list, so to construct a
    QuestionForm, simply append Questions and Overviews (with at least
    one Question).
    s\   http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionForm.xsds>   <QuestionForm xmlns="%(schema_url)s">%%(items)s</QuestionForm>c         C   s*   t  d „  |  Dƒ ƒ o) t d „  |  Dƒ ƒ S(   Nc         s   s   |  ] } t  | t ƒ Vq d  S(   N(   t
   isinstanceR    (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>ù   s    c         s   s$   |  ] } t  | t t f ƒ Vq d  S(   N(   R\   R    RZ   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>û   s    (   t   anyt   all(   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyt   is_valid÷   s    c         C   s?   |  j  ƒ  s t d ƒ ‚ d j d „  |  Dƒ ƒ } |  j t ƒ  S(   Ns&   QuestionForm contains invalid elementsR   c         s   s   |  ] } | j  ƒ  Vq d  S(   N(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>   s    (   R_   t   AssertionErrorR   t   xml_templateR   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   þ   s    (   R   R   R4   R#   R   Ra   R_   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR[   Ò   s
   !	t   QuestionContentc           B   s   e  Z d  Z d „  Z RS(   s.   <QuestionContent>%(content)s</QuestionContent>c         C   s#   t  t |  ƒ j ƒ  } |  j t ƒ  S(   N(   RQ   Rb   R   R   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR     s    (   R   R   R   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRb     s   t   AnswerSpecificationc           B   s    e  Z d  Z d „  Z d „  Z RS(   s3   <AnswerSpecification>%(spec)s</AnswerSpecification>c         C   s   | |  _  d  S(   N(   t   spec(   R   Rd   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
     s    c         C   s   |  j  j ƒ  } |  j t ƒ  S(   N(   Rd   R   R   R   (   R   Rd   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR     s    (   R   R   R   R
   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRc     s   	t   Constraintsc           B   s   e  Z d  Z d „  Z RS(   s&   <Constraints>%(content)s</Constraints>c         C   s#   t  t |  ƒ j ƒ  } |  j t ƒ  S(   N(   RQ   Re   R   R   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR     s    (   R   R   R   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRe     s   t
   Constraintc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s2   t  |  j |  j ƒ } d j d „  | Dƒ ƒ } | S(   Nt    c         s   s1   |  ]' \ } } | d k	 r d  | | f Vq d S(   s   %s="%d"N(   R   (   R   RG   R7   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>#  s   	(   t   zipt   attribute_namest   attribute_valuesR   (   R   t   pairst   attrs(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyt   get_attributes   s
    c         C   s   |  j  ƒ  } |  j t ƒ  S(   N(   Rm   R   R   (   R   Rl   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   )  s    (   R   R   Rm   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRf     s   		t   NumericConstraintc           B   s#   e  Z d Z d Z d d d „ Z RS(   t   minValuet   maxValues   <IsNumeric %(attrs)s />c         C   s   | | f |  _  d  S(   N(   Rj   (   R   t	   min_valuet	   max_value(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   2  s    (   Ro   Rp   N(   R   R   Ri   R   R   R
   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRn   .  s   t   LengthConstraintc           B   s#   e  Z d Z d Z d d d „ Z RS(   t	   minLengtht	   maxLengths   <Length %(attrs)s />c         C   s   | | f |  _  d  S(   N(   Rj   (   R   t
   min_lengtht
   max_length(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   :  s    (   Rt   Ru   N(   R   R   Ri   R   R   R
   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRs   6  s   t   RegExConstraintc           B   s,   e  Z d Z d Z d d d „ Z d „  Z RS(   t   regext	   errorTextt   flagss   <AnswerFormatRegex %(attrs)s />c         C   s   | | | f |  _  d  S(   N(   Rj   (   R   t   patternt
   error_textR{   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   B  s    c         C   s2   t  |  j |  j ƒ } d j d „  | Dƒ ƒ } | S(   NRg   c         s   s1   |  ]' \ } } | d k	 r d  | | f Vq d S(   s   %s="%s"N(   R   (   R   RG   R7   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>H  s   	(   Rh   Ri   Rj   R   (   R   Rk   Rl   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRm   E  s
    (   Ry   Rz   R{   N(   R   R   Ri   R   R   R
   Rm   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyRx   >  s   t   NumberOfLinesSuggestionc           B   s#   e  Z d  Z d d „ Z d „  Z RS(   s@   <NumberOfLinesSuggestion>%(num_lines)s</NumberOfLinesSuggestion>i   c         C   s   | |  _  d  S(   N(   t	   num_lines(   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   R  s    c         C   s   |  j  } |  j t ƒ  S(   N(   R   R   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   U  s    	(   R   R   R   R
   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR~   O  s   t   FreeTextAnswerc           B   s)   e  Z d  Z d d d d „ Z d „  Z RS(   s*   <FreeTextAnswer>%(items)s</FreeTextAnswer>c         C   s@   | |  _  | d  k r$ t ƒ  |  _ n t | ƒ |  _ | |  _ d  S(   N(   t   defaultR   Re   t   constraintsR   (   R   R   R‚   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   ]  s
    	c         C   sz   |  j  g } |  j r1 | j t d |  j ƒ ƒ n  |  j rS | j t |  j ƒ ƒ n  d j d „  | Dƒ ƒ } |  j t ƒ  S(   Nt   DefaultTextR   c         s   s   |  ] } | j  ƒ  Vq d  S(   N(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pys	   <genexpr>k  s    (	   R‚   R   RY   R   R   R~   R   R   R   (   R   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   e  s    		N(   R   R   R   R   R
   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR€   Z  s   t   FileUploadAnswerc           B   s    e  Z d  Z d „  Z d „  Z RS(   s‘   <FileUploadAnswer><MaxFileSizeInBytes>%(max_bytes)d</MaxFileSizeInBytes><MinFileSizeInBytes>%(min_bytes)d</MinFileSizeInBytes></FileUploadAnswer>c         C   sG   d | k o& | k o& d d k n s1 t  ‚ | |  _ | |  _ d  S(   Ni    i   i
   i	   i Êš;(   R`   t	   min_bytest	   max_bytes(   R   R…   R†   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   r  s    1	c         C   s   |  j  t |  ƒ S(   N(   R   R   (   R   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   w  s    (   R   R   R   R
   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR„   o  s   	t   SelectionAnswerc           B   st   e  Z d  Z d Z d Z d Z d Z d Z d Z d d d	 d
 d d g Z	 d Z
 d d d d d e d „ Z d „  Z RS(   sw   
    A class to generate SelectionAnswer XML data structures.
    Does not yet implement Binary selection options.
    sB   <SelectionAnswer>%s%s<Selections>%s</Selections></SelectionAnswer>sF   <Selection><SelectionIdentifier>%s</SelectionIdentifier>%s</Selection>s   <%s>%s</%s>s%   <StyleSuggestion>%s</StyleSuggestion>s)   <MinSelectionCount>%s</MinSelectionCount>s)   <MaxSelectionCount>%s</MaxSelectionCount>t   radiobuttont   dropdownt   checkboxt   listt   comboboxt   multichoosert   OtherSelectioni   t   textc         C   sÉ   | d  k	 rL | t j k r' | |  _ qU t d | d j t j ƒ f ƒ ‚ n	 d  |  _ | d  k rp t d ƒ ‚ n	 | |  _ | |  _ | |  _ t	 | ƒ |  j k s³ t
 d |  j ƒ ‚ | |  _ | |  _ d  S(   Ns.   style '%s' not recognized; should be one of %ss   , s_   SelectionAnswer.__init__(): selections must be a non-empty list of (content, identifier) tupless*   # of selections is less than minimum of %d(   R   R‡   t   ACCEPTED_STYLESt   style_suggestiont
   ValueErrorR   t
   selectionst   min_selectionst   max_selectionst   lenR`   R9   t   other(   R   t   mint   maxt   styleR“   R9   R—   (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR
   ‰  s    %				(	c   	      C   s„  |  j  d k r d } n1 |  j  d k r0 d } n t d t |  j  ƒ ƒ ‚ d } xL |  j D]A } t j | | d | f } t j | d | f } | | 7} qY W|  j rt |  j d	 ƒ rù t	 |  j t
 ƒ s× t d
 ƒ ‚ | |  j j ƒ  j d d ƒ 7} q| d 7} n  |  j d  k	 r(t j |  j } n d } |  j d k rdt j |  j } | t j |  j 7} n d } t j | | | f } | S(   NR   t   Textt   binaryR8   s3   illegal type: %s; must be either 'text' or 'binary'R   i    i   R   s+   OtherSelection can only be a FreeTextAnswerR€   RŽ   s   <OtherSelection />Rˆ   (   R9   R’   R   R“   R‡   t   SELECTION_VALUE_XML_TEMPLATEt   SELECTION_XML_TEMPLATER—   t   hasattrR\   R€   R`   R   t   replaceR‘   R   t   STYLE_XML_TEMPLATEt    MIN_SELECTION_COUNT_XML_TEMPLATER”   t    MAX_SELECTION_COUNT_XML_TEMPLATER•   t   SELECTIONANSWER_XML_TEMPLATE(	   R   t   TYPE_TAGt   selections_xmlt   tplt	   value_xmlt   selection_xmlt	   style_xmlt	   count_xmlt   ret(    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR   ¢  s0    			"N(   R   R   R4   R¤   Rž   R   R¡   R¢   R£   R   t   OTHER_SELECTION_ELEMENT_NAMER   R   R
   R   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyR‡   {  s   (!   t   xml.sax.saxutilsR.   t   objectR    t   lxmlR   R    t   ImportErrorR-   R5   R   R8   R‹   R=   R>   RL   RN   RV   RX   RI   RZ   R[   Rb   Rc   Re   Rf   Rn   Rs   Rx   R~   R€   R„   R‡   (    (    (    s2   lib/python2.7/site-packages/boto/mturk/question.pyt   <module>   s<   		2