ó
V¥jLc           @   s¢  d  Z  d d l m Z d d l Td d l Td d l Td d l Td d l m Z m	 Z	 d d l
 m Z d d l m Z d d l m Z e e ƒ Z d d; 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 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 d< d3 „  ƒ  YZ) e% j* d4 d5 ƒ e% j* d6 d7 ƒ e% j* d8 d9 ƒ d: S(=   sP   
The I{sxbasic} module provides classes that represent
I{basic} schema objects.
iÿÿÿÿ(   t	   getLogger(   t   *(   t   splitPrefixt	   Namespace(   t   TransportError(   t   DocumentReader(   t   urljoint   RestrictionMatcherc           B   s   e  Z d  Z d „  Z RS(   s:   
    For use with L{NodeFinder} to match restriction.
    c         C   s   t  | t ƒ S(   N(   t
   isinstancet   Restriction(   t   selft   n(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   match(   s    (   t   __name__t
   __module__t   __doc__R   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR   $   s   t   TypedContentc           B   s#   e  Z d  Z e d „ Z d „  Z RS(   s*   
    Represents any I{typed} content.
    c         C   s   |  j  ƒ  } | d  k r |  Sd | } |  j j | ƒ } | d  k	 rH | S|  } t | ƒ } |  g | _ t j d |  j | | ƒ | j	 |  j
 ƒ } | d  k r¼ t j |  j
 ƒ t | ƒ ‚ n  | |  j | <| j ƒ  rí | rä |  } qü | } n | j | ƒ } | S(   Ns   resolved:nb=%ss   %s, resolving: %s
 using:%s(   t   qreft   Nonet   cachet   gett	   TypeQueryt   historyt   logt   debugt   idt   executet   schemat   TypeNotFoundt   builtint   resolve(   R
   t	   nobuiltinR   t   keyt   cachedt   resultt   queryt   resolved(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR   0   s,    
		c         C   ss   |  j  } | d k ro t |  ƒ d k ro g  } t ƒ  } t | d ƒ } | j |  | ƒ t | ƒ ro | d j Sn  | S(   sY  
        Get the I{type} qualified reference to the referenced xsd type.
        This method takes into account simple types defined through
        restriction with are detected by determining that self is simple
        (len=0) and by finding a restriction child.
        @return: The I{type} qualified reference.
        @rtype: qref
        i    i   N(   t   typeR   t   lenR   t
   NodeFindert   findt   ref(   R
   R   t   lst   mt   finder(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR   J   s    			(   R   R   R   t   FalseR   R   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR   ,   s   t   Complexc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s”   
    Represents an (xsd) schema <xs:complexType/> node.
    @cvar childtags: A list of valid child node names
    @type childtags: (I{str},...)
    c      	   C   s   d
 S(   Nt	   attributet   attributeGroupt   sequencet   allt   choicet   complexContentt   simpleContentt   anyt   group(	   s	   attributes   attributeGroups   sequences   alls   choices   complexContents   simpleContents   anys   group(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt	   childtagse   s            c         C   s   d S(   Nt   name(   s   name(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   descriptionq   s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   t   rawchildrent	   extensiont   TrueR-   (   R
   t   c(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR<   t   s    c         C   s7   x0 |  j  D]% } t | t ƒ r
 | j ƒ  r
 t Sq
 Wt S(   N(   R;   R   t   SimpleContentt   mixedR=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR@   z   s    (   R   R   R   R8   R:   R<   R@   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR.   ^   s
   			t   Groupc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   sŽ   
    Represents an (xsd) schema <xs:group/> node.
    @cvar childtags: A list of valid child node names
    @type childtags: (I{str},...)
    c         C   s   d S(   NR1   R2   R3   (   s   sequences   alls   choice(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   ˆ   s    c         C   sŠ   g  } d  } |  j d  k	 r€ t |  j ƒ } | j |  j ƒ } | d  k rj t j |  j ƒ t |  j ƒ ‚ n  | j | ƒ d } n  | | f S(   Ni    (	   R   R)   t
   GroupQueryR   R   R   R   R   t   append(   R
   t   depst   midxR#   t   g(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   dependencies‹   s    	c         C   s    t  j |  | ƒ | j |  _ d  S(   N(   t   SchemaObjectt   mergeR;   (   R
   t   other(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRI   ˜   s    c         C   s   d S(   NR9   R)   (   s   names   ref(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   œ   s    (   R   R   R   R8   RG   RI   R:   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRA   �   s
   			t   AttributeGroupc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s—   
    Represents an (xsd) schema <xs:attributeGroup/> node.
    @cvar childtags: A list of valid child node names
    @type childtags: (I{str},...)
    c         C   s   d S(   NR/   R0   (   s	   attributes   attributeGroup(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   §   s    c         C   sŠ   g  } d  } |  j d  k	 r€ t |  j ƒ } | j |  j ƒ } | d  k rj t j |  j ƒ t |  j ƒ ‚ n  | j | ƒ d } n  | | f S(   Ni    (	   R   R)   t   AttrGroupQueryR   R   R   R   R   RC   (   R
   RD   RE   R#   t   ag(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRG   ª   s    	c         C   s    t  j |  | ƒ | j |  _ d  S(   N(   RH   RI   R;   (   R
   RJ   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRI   ·   s    c         C   s   d S(   NR9   R)   (   s   names   ref(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   »   s    (   R   R   R   R8   RG   RI   R:   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRK       s
   			t   Simplec           B   sD   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s:   
    Represents an (xsd) schema <xs:simpleType/> node
    c         C   s   d S(   Nt   restrictionR6   t   list(   s   restrictions   anys   list(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   Ä   s    c         C   s4   x- |  j  ƒ  D] \ } } t | t ƒ r t Sq Wt S(   N(   t   childrenR   t   EnumerationR=   R-   (   R
   t   childt   ancestry(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   enumÇ   s    c         C   s
   t  |  ƒ S(   N(   R&   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR@   Í   s    c         C   s   d S(   NR9   (   s   name(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   Ð   s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   R;   R<   R=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR<   Ó   s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   R;   RO   R=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRO   Ù   s    (	   R   R   R   R8   RU   R@   R:   R<   RO   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRN   ¿   s   					t   Listc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s4   
    Represents an (xsd) schema <xs:list/> node
    c         C   s   d S(   N(    (    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   å   s    c         C   s   d S(   NR9   (   s   name(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   è   s    c         C   s   t  S(   N(   R=   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   xslistë   s    (   R   R   R   R8   R:   RW   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRV   à   s   		R	   c           B   sD   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s;   
    Represents an (xsd) schema <xs:restriction/> node
    c         C   s)   t  j |  | | ƒ | j d ƒ |  _ d  S(   Nt   base(   RH   t   __init__R   R)   (   R
   R   t   root(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRY   ô   s    c         C   s   d S(   Nt   enumerationR/   R0   (   s   enumerations	   attributes   attributeGroup(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   ø   s    c         C   s™   g  } d  } |  j d  k	 r� t |  j ƒ } | j |  j ƒ } | d  k rj t j |  j ƒ t |  j ƒ ‚ n  | j ƒ  s� | j	 | ƒ d } q� n  | | f S(   Ni    (
   R   R)   R   R   R   R   R   R   R   RC   (   R
   RD   RE   R#   t   super(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRG   û   s    c         C   s   t  S(   N(   R=   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRO   	  s    c         C   s?   t  j |  | ƒ t t |  j ƒ } |  j |  j | j | ƒ d  S(   N(   RH   RI   t   FilterR-   R;   t   prepend(   R
   RJ   t   filter(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRI     s    c         C   s   d S(   NR)   (   s   ref(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:     s    (	   R   R   R   RY   R8   RG   RO   RI   R:   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR	   ï   s   					t
   Collectionc           B   s   e  Z d  Z d „  Z RS(   sg   
    Represents an (xsd) schema collection node:
        - sequence
        - choice
        - all
    c         C   s   d S(   Nt   elementR1   R2   R3   R6   R7   (   s   elements   sequences   alls   choices   anys   group(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8     s    (   R   R   R   R8   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR`     s   t   Sequencec           B   s   e  Z d  Z d „  Z RS(   s9   
    Represents an (xsd) schema <xs:sequence/> node.
    c         C   s   t  S(   N(   R=   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR1   %  s    (   R   R   R   R1   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRb   !  s   t   Allc           B   s   e  Z d  Z d „  Z RS(   s4   
    Represents an (xsd) schema <xs:all/> node.
    c         C   s   t  S(   N(   R=   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR2   -  s    (   R   R   R   R2   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRc   )  s   t   Choicec           B   s   e  Z d  Z d „  Z RS(   s7   
    Represents an (xsd) schema <xs:choice/> node.
    c         C   s   t  S(   N(   R=   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR3   4  s    (   R   R   R   R3   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRd   0  s   t   ComplexContentc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s?   
    Represents an (xsd) schema <xs:complexContent/> node.
    c         C   s   d S(   NR/   R0   R<   RO   (   s	   attributes   attributeGroups	   extensions   restriction(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   =  s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   R;   R<   R=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR<   @  s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   R;   RO   R=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRO   F  s    (   R   R   R   R8   R<   RO   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRe   8  s   		R?   c           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s>   
    Represents an (xsd) schema <xs:simpleContent/> node.
    c         C   s   d S(   NR<   RO   (   s	   extensions   restriction(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   R  s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   R;   R<   R=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR<   U  s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   R;   RO   R=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRO   [  s    c         C   s
   t  |  ƒ S(   N(   R&   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR@   a  s    (   R   R   R   R8   R<   RO   R@   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR?   M  s
   			RR   c           B   s    e  Z d  Z d „  Z d „  Z RS(   s;   
    Represents an (xsd) schema <xs:enumeration/> node
    c         C   s)   t  j |  | | ƒ | j d ƒ |  _ d  S(   Nt   value(   t   ContentRY   R   R9   (   R
   R   RZ   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRY   j  s    c         C   s   t  S(   N(   R=   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRU   n  s    (   R   R   R   RY   RU   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRR   e  s   	t   Elementc           B   s_   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   s8   
    Represents an (xsd) schema <xs:element/> node.
    c         C   s~   t  j |  | | ƒ | j d ƒ } | d  k	 r@ | d k |  _ n  |  j j d ƒ } | d  k	 rp | d k |  _ n  |  j ƒ  d  S(   Nt   formt	   qualifiedt   nillablet   1t   true(   Rl   s   true(   R   RY   R   R   t   form_qualifiedRZ   Rk   t   implany(   R
   R   RZ   t   a(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRY   w  s    c         C   sC   |  j  d k r? |  j d k r? |  j j ƒ  r? |  j ƒ  |  _  n  |  S(   sÀ   
        Set the type as any when implicit.
        An implicit <xs:any/> is when an element has not
        body and no type defined.
        @return: self
        @rtype: L{Element}
        N(   R%   R   R)   RZ   t   isemptyt   anytype(   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRo   �  s
    c         C   s   d S(   NR/   t
   simpleTypet   complexTypeR6   (   s	   attributes
   simpleTypes   complexTypes   any(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   �  s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   R;   R<   R=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR<   ’  s    c         C   s(   x! |  j  D] } | j ƒ  r
 t Sq
 Wt S(   N(   R;   RO   R=   R-   (   R
   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRO   ˜  s    c         C   sŠ   g  } d  } |  j d  k	 r€ t |  j ƒ } | j |  j ƒ } | d  k rj t j |  j ƒ t |  j ƒ ‚ n  | j | ƒ d } n  | | f S(   Ni    (	   R   R)   t   ElementQueryR   R   R   R   R   RC   (   R
   RD   RE   R#   t   e(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRG   ž  s    	c         C   s    t  j |  | ƒ | j |  _ d  S(   N(   RH   RI   R;   (   R
   RJ   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRI   «  s    c         C   s   d S(   NR9   R)   R%   (   s   names   refs   type(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   ¯  s    c         C   s\   t  j \ } } |  j j | ƒ } | d k rI | } |  j j | | ƒ n  d j | d f ƒ S(   s!    create an xsd:anyType reference t   :t   anyTypeN(   R   t   xsdnsRZ   t
   findPrefixR   t	   addPrefixt   join(   R
   t   pt   ut   mp(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRr   ²  s    (   R   R   R   RY   Ro   R8   R<   RO   RG   RI   R:   Rr   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRh   r  s   	
							t	   Extensionc           B   sD   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s:   
    Represents an (xsd) schema <xs:extension/> node.
    c         C   s)   t  j |  | | ƒ | j d ƒ |  _ d  S(   NRX   (   RH   RY   R   R)   (   R
   R   RZ   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRY   Á  s    c         C   s   d S(   NR/   R0   R1   R2   R3   R7   (   s	   attributes   attributeGroups   sequences   alls   choices   group(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   Å  s         c         C   s™   g  } d  } |  j d  k	 r� t |  j ƒ } | j |  j ƒ } | d  k rj t j |  j ƒ t |  j ƒ ‚ n  | j ƒ  s� | j	 | ƒ d } q� n  | | f S(   Ni    (
   R   R)   R   R   R   R   R   R   R   RC   (   R
   RD   RE   R#   R\   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRG   Í  s    c         C   s?   t  j |  | ƒ t t |  j ƒ } |  j |  j | j | ƒ d  S(   N(   RH   RI   R]   R-   R;   R^   (   R
   RJ   R_   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRI   Û  s    c         C   s   |  j  d  k	 S(   N(   R)   R   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR<   à  s    c         C   s   d S(   NR)   (   s   ref(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   ã  s    (	   R   R   R   RY   R8   RG   RI   R<   R:   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR€   ¼  s   					t   Importc           B   sS   e  Z d  Z i  Z e d d „ ƒ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   sZ  
    Represents an (xsd) schema <xs:import/> node
    @cvar locations: A dictionary of namespace locations.
    @type locations: dict
    @ivar ns: The imported namespace.
    @type ns: str
    @ivar location: The (optional) location.
    @type location: namespace-uri
    @ivar opened: Opened and I{imported} flag.
    @type opened: boolean
    c         C   s&   | d k r | } n  | |  j | <d S(   sB  
        Bind a namespace to a schema location (URI).  
        This is used for imports that don't specify a schemaLocation.
        @param ns: A namespace-uri.
        @type ns: str
        @param location: The (optional) schema location for the
            namespace.  (default=ns).
        @type location: str
        N(   R   t	   locations(   t   clst   nst   location(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   bindö  s    	c         C   sx   t  j |  | | ƒ d  | j d ƒ f |  _ | j d ƒ |  _ |  j d  k rk |  j j |  j d ƒ |  _ n  t |  _ d  S(   Nt	   namespacet   schemaLocationi   (	   RH   RY   R   R   R„   R…   R‚   R-   t   opened(   R
   R   RZ   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRY     s    c         C   s    |  j  r d St |  _  t j d |  j |  j d |  j ƒ |  j ƒ  } | d k rŒ |  j d k rz t j d |  j d ƒ qŒ |  j	 | ƒ } n  t j d | ƒ | S(   sÒ   
        Open and import the refrenced schema.
        @param options: An options dictionary.
        @type options: L{options.Options}
        @return: The referenced schema.
        @rtype: L{Schema}
        Ns$   %s, importing ns="%s", location="%s"i   s   imported schema (%s) not-founds   imported:
%s(
   R‰   R=   R   R   R   R„   R…   t   locateR   t   download(   R
   t   optionsR"   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   open  s    		#c         C   s8   |  j  d |  j j d k r! d S|  j j |  j  ƒ Sd S(   s    find the schema locally i   N(   R„   R   t   tnsR   RŠ   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRŠ   "  s    c         C   sÕ   |  j  } yu d | k r0 t |  j j | ƒ } n  t | ƒ } | j | ƒ } | j ƒ  } | j d | ƒ |  j j | | | ƒ SWnP t	 k
 rÐ d |  j
 d | f } t j d |  j | d t ƒt | ƒ ‚ n Xd S(   s    download the schema s   ://t   urls$   imported schema (%s) at (%s), failedi   s   %s, %st   exc_infoN(   R…   R   R   t   baseurlR   R�   RZ   t   sett   instanceR   R„   R   t   errorR   R=   t	   Exception(   R
   RŒ   R�   t   readert   dRZ   t   msg(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR‹   )  s    	c         C   s   d S(   NR„   R…   (   s   nss   location(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   9  s    N(   R   R   R   R‚   t   classmethodR   R†   RY   R�   RŠ   R‹   R:   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR�   ç  s   				t   Includec           B   sA   e  Z d  Z i  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sÏ   
    Represents an (xsd) schema <xs:include/> node
    @ivar location: The (optional) location.
    @type location: namespace-uri
    @ivar opened: Opened and I{imported} flag.
    @type opened: boolean
    c         C   s`   t  j |  | | ƒ | j d ƒ |  _ |  j d  k rS |  j j |  j d ƒ |  _ n  t |  _ d  S(   NRˆ   i   (	   RH   RY   R   R…   R   R‚   R„   R-   R‰   (   R
   R   RZ   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRY   H  s
    c         C   sR   |  j  r d St |  _  t j d |  j |  j ƒ |  j | ƒ } t j d | ƒ | S(   sÓ   
        Open and include the refrenced schema.
        @param options: An options dictionary.
        @type options: L{options.Options}
        @return: The referenced schema.
        @rtype: L{Schema}
        Ns   %s, including location="%s"s   included:
%s(   R‰   R=   R   R   R   R…   R‹   (   R
   RŒ   R"   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR�   O  s    		c         C   sÕ   |  j  } y‚ d | k r0 t |  j j | ƒ } n  t | ƒ } | j | ƒ } | j ƒ  } | j d | ƒ |  j | ƒ |  j j	 | | | ƒ SWnC t
 k
 rÐ d | } t j d |  j | d t ƒt | ƒ ‚ n Xd S(   s    download the schema s   ://R�   s   include schema at (%s), faileds   %s, %sR�   N(   R…   R   R   R‘   R   R�   RZ   R’   t   _Include__applytnsR“   R   R   R”   R   R=   R•   (   R
   RŒ   R�   R–   R—   RZ   R˜   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR‹   _  s    	
c         C   sn   d } | j  | ƒ } | d k rD |  j j d } | j | | ƒ n& |  j j d | k rj t d | ‚ n  d S(   s)    make sure included schema has same tns. t   targetNamespacei   s   %s mismatchN(   R   R   R   RŽ   R’   R•   (   R
   RZ   t   TNSRŽ   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt
   __applytnsp  s    c         C   s   d S(   NR…   (    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   |  s    (	   R   R   R   R‚   RY   R�   R‹   R›   R:   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRš   =  s   				t	   Attributec           B   sM   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   s/   
    Represents an (xsd) <attribute/> node
    c         C   s/   t  j |  | | ƒ | j d d d ƒ|  _ d  S(   Nt   uset   defaultt    (   R   RY   R   R    (   R
   R   RZ   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRY   …  s    c         C   s   d S(   NRO   (   s   restriction(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR8   ‰  s    c         C   s   t  S(   N(   R=   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   isattrŒ  s    c         C   s   |  j  j d d d ƒS(   s�   
        Gets the <xs:attribute default=""/> attribute value.
        @return: The default value for the attribute
        @rtype: str
        R¡   R¢   (   RZ   R   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   get_default�  s    c         C   s   |  j  d k S(   Nt   required(   R    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   optional—  s    c         C   sŠ   g  } d  } |  j d  k	 r€ t |  j ƒ } | j |  j ƒ } | d  k rj t j |  j ƒ t |  j ƒ ‚ n  | j | ƒ d } n  | | f S(   Ni    (	   R   R)   t	   AttrQueryR   R   R   R   R   RC   (   R
   RD   RE   R#   Rp   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRG   š  s    	c         C   s   d S(   NR9   R)   R%   (   s   names   refs   type(    (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR:   §  s    (
   R   R   R   RY   R8   R£   R¤   R¦   RG   R:   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyRŸ   €  s   						t   Anyc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s)   
    Represents an (xsd) <any/> node
    c         C   s;   |  j  j ƒ  } | j d d ƒ t |  j | ƒ } | g  f S(   Nt   notes   synthesized (any) child(   RZ   t   cloneR’   R¨   R   (   R
   R9   RZ   RS   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt	   get_child°  s    c         C   s;   |  j  j ƒ  } | j d d ƒ t |  j | ƒ } | g  f S(   NR©   s   synthesized (any) attribute(   RZ   Rª   R’   R¨   R   (   R
   R9   RZ   R/   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   get_attribute¶  s    c         C   s   t  S(   N(   R=   (   R
   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR6   ¼  s    (   R   R   R   R«   R¬   R6   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR¨   «  s   		t   Factoryc           B   sÑ   e  Z d  Z i e d 6e d 6e d 6e d 6e d 6e d 6e	 d 6e
 d 6e d	 6e d
 6e d 6e d 6e d 6e d 6e d 6e d 6e d 6e d 6Z e d „  ƒ Z e d „  ƒ Z e d d „ ƒ Z e d „  ƒ Z RS(   s`   
    @cvar tags: A factory to create object objects based on tag.
    @type tags: {tag:fn,}
    t   importt   includeRt   R7   R0   Rs   RP   Ra   R/   R1   R2   R3   R4   R5   RO   R[   R<   R6   c         C   s   | |  j  | <d S(   s¹   
        Map (override) tag => I{class} mapping.
        @param tag: An xsd tag name.
        @type tag: str
        @param fn: A function or class.
        @type fn: fn|class.
        N(   t   tags(   Rƒ   t   tagt   fn(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   maptagÜ  s    	c         C   s6   |  j  j | j ƒ } | d k	 r. | | | ƒ Sd Sd S(   s  
        Create an object based on the root tag name.
        @param root: An XML root element.
        @type root: L{Element}
        @param schema: A schema object.
        @type schema: L{schema.Schema}
        @return: The created object.
        @rtype: L{SchemaObject} 
        N(   R°   R   R9   R   (   Rƒ   RZ   R   R²   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   createç  s    R   c         C   s�   g  } x� | j  d t j ƒ D]y } d | k s= | j | k r |  j | | ƒ } | d k ra q n  | j | ƒ |  j | | | j ƒ  ƒ } | | _	 q q W| S(   s  
        Build an xsobject representation.
        @param root: An schema XML root.
        @type root: L{sax.element.Element}
        @param filter: A tag filter.
        @type filter: [str,...]
        @return: A schema object graph.
        @rtype: L{sxbase.SchemaObject}
        R„   R   N(
   t   getChildrenR   Ry   R9   R´   R   RC   t   buildR8   R;   (   Rƒ   RZ   R   R_   RQ   t   nodeRS   R>   (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR¶   ø  s    c   
      C   s)  g  } i  } i  } i  } i  } i  } xË | D]Ã } t  | t t f ƒ rY | j | ƒ q+ n  t  | t ƒ r{ | | | j <q+ n  t  | t ƒ r� | | | j <q+ n  t  | t ƒ r¿ | | | j <q+ n  t  | t ƒ rá | | | j <q+ n  | | | j <q+ Wx | D] }	 | j	 |	 ƒ qù W| | | | | | | f S(   N(
   R   R�   Rš   RC   RŸ   t   qnameRh   RA   RK   t   remove(
   Rƒ   RQ   t   importst   elementst
   attributest   typest   groupst   agrpsR>   t   i(    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   collate  s4    (   R   (   R   R   R   R�   Rš   R.   RA   RK   RN   RV   Rh   RŸ   Rb   Rc   Rd   Re   R?   R	   RR   R€   R¨   R°   R™   R³   R´   R¶   RÁ   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyR­   À  s2   
s)   http://schemas.xmlsoap.org/soap/encoding/s)   suds://schemas.xmlsoap.org/soap/encoding/s$   http://www.w3.org/XML/1998/namespaces   http://www.w3.org/2001/xml.xsds    http://www.w3.org/2001/XMLSchemas$   http://www.w3.org/2001/XMLSchema.xsdN(    (    (+   R   t   loggingR    t   sudst   suds.xsdt   suds.xsd.sxbaset   suds.xsd.queryt   suds.saxR   R   t   suds.transportR   t   suds.readerR   t   urlparseR   R   R   R   Rg   R   RH   R.   RA   RK   RN   RV   R	   R`   Rb   Rc   Rd   Re   R?   RR   Rh   R€   R�   Rš   RŸ   R¨   R­   R†   (    (    (    sJ   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/suds/xsd/sxbasic.pyt   <module>   sR   



2#!&J+VC+q