Ñò
—ã=Pc           @   s¯   d  Z  d d k l Z d d k Td d k Td d k l Z e e ƒ Z d f  d „  ƒ  YZ	 d f  d „  ƒ  YZ
 d	 e	 f d
 „  ƒ  YZ d e	 f d „  ƒ  YZ d f  d „  ƒ  YZ d S(   sN   
The I{sxbase} module provides I{base} classes that represent
schema objects.
iÿÿÿÿ(   t	   getLogger(   t   *(   t   Elementt   SchemaObjectc           B   s  e  Z d  Z e e ƒ  d „ ƒ Z e e ƒ  d „ ƒ Z d „  Z e ƒ  d „ Z e ƒ  d „ Z	 d „  Z
 d „  Z d' d „ Z d	 „  Z d
 „  Z d „  Z d „  Z e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d( d „ Z e d „ Z d „  Z  d „  Z! d „  Z" d „  Z# d' e ƒ  d' d „ Z$ d d' d „ Z% d  „  Z& d! „  Z' d" „  Z( d# „  Z) d$ „  Z* d% „  Z+ d& „  Z, RS()   s˜  
    A schema object is an extension to object object with
    with schema awareness.
    @ivar root: The XML root element.
    @type root: L{Element}
    @ivar schema: The schema containing this object.
    @type schema: L{schema.Schema}
    @ivar form_qualified: A flag that inidcates that @elementFormDefault
        has a value of I{qualified}.
    @type form_qualified: boolean
    @ivar nillable: A flag that inidcates that @nillable
        has a value of I{true}.
    @type nillable: boolean
    @ivar default: The default value.
    @type default: object
    @ivar rawchildren: A list raw of all children.
    @type rawchildren: [L{SchemaObject},...]
    c         C   sF   d } x9 | D]1 } | | j o | i  | | ƒ | d 7} q q Wd S(   sV  
        Prepend schema object's from B{s}ource list to 
        the B{d}estination list while applying the filter.
        @param d: The destination list.
        @type d: list
        @param s: The source list.
        @type s: list
        @param filter: A filter that allows items to be prepended.
        @type filter: L{Filter}
        i    i   N(   t   insert(   t   clst   dt   st   filtert   it   x(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   prepend2   s     c         C   s3   x, | D]$ } | | j o | i  | ƒ q q Wd S(   sT  
        Append schema object's from B{s}ource list to 
        the B{d}estination list while applying the filter.
        @param d: The destination list.
        @type d: list
        @param s: The source list.
        @type s: list
        @param filter: A filter that allows items to be appended.
        @type filter: L{Filter}
        N(   t   append(   R   R   R   R   t   item(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR   D   s     c         C   sÑ   | |  _  | |  _ t |  ƒ |  _ | i d ƒ |  _ |  i | i d f |  _ | i d ƒ |  _ | i d ƒ |  _	 | i d ƒ |  _
 | i d ƒ |  _ | i |  _ t |  _ | i d ƒ |  _ g  |  _ h  |  _ d S(	   s¥   
        @param schema: The containing schema.
        @type schema: L{schema.Schema}
        @param root: The xml root node.
        @type root: L{Element}
        t   namei   t	   minOccurst	   maxOccurst   typet   reft   defaultN(   t   schemat   roott   objidt   idt   getR   t   tnst   qnamet   mint   maxR   R   t   form_qualifiedt   Falset   nillableR   t   rawchildrent   cache(   t   selfR   R   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   __init__T   s    				c         C   sR   g  } xE |  D]= \ } } | i  ƒ  o$ | | j o | i | | f ƒ q q W| S(   sú   
        Get only the attribute content.
        @param filter: A filter to constrain the result.
        @type filter: L{Filter}
        @return: A list of tuples (attr, ancestry)
        @rtype: [(L{SchemaObject}, [L{SchemaObject},..]),..]
        (   t   isattrR   (   R"   R   t   resultt   childt   ancestry(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt
   attributesj   s     c         C   sS   g  } xF |  D]> \ } } | i  ƒ  o$ | | j o | i | | f ƒ q q W| S(   s
  
        Get only the I{direct} or non-attribute content.
        @param filter: A filter to constrain the result.
        @type filter: L{Filter}
        @return: A list tuples: (child, ancestry)
        @rtype: [(L{SchemaObject}, [L{SchemaObject},..]),..]
        (   R$   R   (   R"   R   R%   R&   R'   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   childrenx   s     c         C   sB   x5 |  i  ƒ  D]' \ } } | i | j o | | f Sq Wd g  f S(   sø   
        Get (find) a I{non-attribute} attribute by name.
        @param name: A attribute name.
        @type name: str
        @return: A tuple: the requested (attribute, ancestry).
        @rtype: (L{SchemaObject}, [L{SchemaObject},..])
        N(   R(   R   t   None(   R"   R   R&   R'   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   get_attribute†   s
     c         C   sO   xB |  i  ƒ  D]4 \ } } | i ƒ  p | i | j o | | f Sq Wd g  f S(   sì   
        Get (find) a I{non-attribute} child by name.
        @param name: A child name.
        @type name: str
        @return: A tuple: the requested (child, ancestry).
        @rtype: (L{SchemaObject}, [L{SchemaObject},..])
        N(   R)   t   anyR   R*   (   R"   R   R&   R'   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt	   get_child“   s
     c         C   s5   |  i  i } | d d j o | | d f } n | S(   sÆ   
        Get this properties namespace
        @param prefix: The default prefix.
        @type prefix: str
        @return: The schema's target namespace
        @rtype: (I{prefix},I{URI})
        i    i   N(   R   R   R*   (   R"   t   prefixt   ns(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt	   namespace    s    c         C   s   |  i  i ƒ  S(   N(   R   t   defaultNamespace(   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   default_namespace­   s    c         C   sL   |  i  } | d j o
 d } n | i ƒ  o t | ƒ d j S| d j Sd S(   sŽ   
        Get whether this node is unbounded I{(a collection)}
        @return: True if unbounded, else False.
        @rtype: boolean
        t   1i   t	   unboundedN(   R   R*   t   isdigitt   int(   R"   R   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR4   °   s    	
c         C   s*   |  i  } | d j o
 d } n | d j S(   sz   
        Get whether this type is optional.
        @return: True if optional, else False
        @rtype: boolean
        R3   t   0N(   R   R*   (   R"   R   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   optional¾   s    	
c         C   s   |  i  ƒ  S(   sz   
        Get whether this type is required.
        @return: True if required, else False
        @rtype: boolean
        (   R8   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   requiredÉ   s    c         C   s   |  i  i | |  ƒ S(   sô   
        Resolve and return the nodes true self.
        @param nobuiltin: Flag indicates that resolution must
            not continue to include xsd builtins.
        @return: The resolved (true) type.
        @rtype: L{SchemaObject}
        (   R!   R   (   R"   t	   nobuiltin(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   resolveÒ   s    c         C   s   t  S(   sx   
        Get whether this is an <xs:sequence/>
        @return: True if any, else False
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   sequenceÜ   s    c         C   s   t  S(   ss   
        Get whether this is an <xs:all/>
        @return: True if any, else False
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   allä   s    c         C   s   t  S(   su   
        Get whether this is n <xs:choice/>
        @return: True if any, else False
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   choiceì   s    c         C   s   t  S(   ss   
        Get whether this is an <xs:any/>
        @return: True if any, else False
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR,   ô   s    c         C   s   t  S(   sƒ   
        Get whether this is a schema-instance (xs) type.
        @return: True if any, else False
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   builtinü   s    c         C   s   t  S(   s   
        Get whether this is a simple-type containing an enumeration.
        @return: True if any, else False
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   enum  s    c         C   s   t  S(   s˜   
        Get whether the object is a schema I{attribute} definition.
        @return: True if an attribute, else False.
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR$     s    c         C   s   t  S(   s”   
        Get whether the object is an extension of another type.
        @return: True if an extension, else False.
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt	   extension  s    c         C   s   t  S(   s˜   
        Get whether the object is an restriction of another type.
        @return: True if an restriction, else False.
        @rtype: boolean
        (   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   restriction  s    c         C   s~   t  | ƒ p |  i f } n |  i | j o |  i | j o |  Sx5 |  i D]* } | i | | ƒ } | d j	 o | SqL Wd S(   sO  
        Find a referenced type in self or children.
        @param qref: A qualified reference.
        @type qref: qref
        @param classes: A list of classes used to qualify the match.
        @type classes: [I{class},...] 
        @return: The referenced type.
        @rtype: L{SchemaObject}
        @see: L{qualify()}
        N(   t   lent	   __class__R   R    t   findR*   (   R"   t   qreft   classest   ct   p(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRE   $  s     
 	c         C   s   | S(   sž   
        Translate a value (type) to/from a python type.
        @param value: A value to translate.
        @return: The converted I{language} type.
        (    (   R"   t   valuet   topython(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt	   translate9  s    c         C   s   d S(   s|   
        Get a list of valid child tag names.
        @return: A list of child tag names.
        @rtype: [str,...]
        (    (    (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt	   childtagsA  s    c         C   s
   d g  f S(   s²   
        Get a list of dependancies for dereferencing.
        @return: A merge dependancy index and a list of dependancies.
        @rtype: (int, [L{SchemaObject},...])
        N(   R*   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   dependenciesI  s    c         C   sˆ   |  i  i ƒ  } xr d D]j } t |  | ƒ } | d j o q n t | |  i  | ƒ } t i d |  i | | | ƒ t |  | | ƒ q Wd S(   sg   
        Convert attribute values, that are references to other
        objects, into I{qref}.
        R   R   s   %s, convert %s="%s" to %sN(   s   types   ref(	   R   R1   t   getattrR*   t   qualifyt   logt   debugR   t   setattr(   R"   t   defnst   aR   RF   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRP   Q  s     c         C   se   x^ d
 D]V } t  |  | ƒ d	 j	 o q n t  | | ƒ } | d	 j o q n t |  | | ƒ q Wd	 S(   s1   
        Merge another object as needed.
        R   R   R   R   R   R   R   R   N(   s   names   qnames   mins   maxs   defaults   types   nillables   form_qualified(   RO   R*   RS   (   R"   t   othert   nt   v(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   merge_  s           c         C   s—   | d j o
 g  } n | d j o
 g  } n |  | j o | S| i |  ƒ |  | j o | i |  ƒ n x% |  i D] } | i | | | ƒ qu W| S(   sˆ  
        Get a I{flattened} list of this nodes contents.
        @param collection: A list to fill.
        @type collection: list
        @param filter: A filter used to constrain the result.
        @type filter: L{Filter}
        @param history: The history list used to prevent cyclic dependency.
        @type history: list
        @return: The filled list.
        @rtype: list
        N(   R*   R   R    t   content(   R"   t
   collectionR   t   historyRH   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRZ   s  s    


 i    c         C   s™  | d j o
 g  } n |  | j o d t |  ƒ S| i |  ƒ d | d d f } g  } | i d | |  i f ƒ xe |  i ƒ  D]W } t |  | ƒ p q n t |  | ƒ } | d j o q n | i d | | f ƒ q Wt |  ƒ o– | i d ƒ xZ |  i D]O } | i d ƒ | i | i	 | d	 | ƒ ƒ | i
 ƒ  o | i d
 ƒ q q W| i d | ƒ | i d |  i i ƒ n | i d ƒ d i | ƒ S(   s©   
        Get a string representation of this object.
        @param indent: The indent.
        @type indent: int
        @return: A string.
        @rtype: str
        s   %s ...s   %*si   t    s   %s<%ss    %s="%s"t   >s   
i   t   @s   
%ss   </%s>s    />N(   R*   t   ReprR   R   t   descriptiont   hasattrRO   RC   R    t   strR$   RD   t   __name__t   join(   R"   t   indentR\   t   tabR%   RW   RX   RH   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRc   Œ  s8    
 
 c         C   s   d S(   s—   
        Get the names used for str() and repr() description.
        @return:  A dictionary of relavent attributes.
        @rtype: [str,...]
        (    (    (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRa   °  s    c         C   s   t  |  ƒ i d ƒ S(   Ns   utf-8(   t   unicodet   encode(   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   __str__¸  s    c         C   s   t  |  i ƒ  ƒ S(   N(   Rh   Rc   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   __unicode__»  s    c         C   s«   g  } | i  d |  i ƒ xe |  i ƒ  D]W } t |  | ƒ p q' n t |  | ƒ } | d  j o q' n | i  d | | f ƒ q' W| i  d ƒ d i | ƒ } | i d ƒ S(   Ns   <%ss    %s="%s"s    />R]   s   utf-8(   R   R   Ra   Rb   RO   R*   Re   Ri   (   R"   R   RW   RX   t   myrep(    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   __repr__¾  s     c         C   s%   d } x |  D] } | d 7} q W| S(   Ni    i   (    (   R"   RW   R
   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   __len__Ì  s
      c         C   s
   t  |  ƒ S(   N(   t   Iter(   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   __iter__Ñ  s    c         C   s-   d } x  |  D] } | | j o | Sq Wd  S(   Ni    (    (   R"   t   indexR	   RH   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   __getitem__Ô  s
     N(    (-   Rd   t
   __module__t   __doc__t   classmethodt   FilterR   R   R#   R(   R)   R+   R-   R*   R0   R2   R4   R8   R9   R   R;   R<   R=   R>   R,   R?   R@   R$   RA   RB   RE   t   TrueRL   RM   RN   RP   RY   RZ   Rc   Ra   Rj   Rk   Rm   Rn   Rp   Rr   (    (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR      sP   								
													$						Ro   c           B   sW   e  Z d  Z d d	 d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(
   s  
    The content iterator - used to iterate the L{Content} children.  The iterator
    provides a I{view} of the children that is free of container elements
    such as <sequence/> and <choice/>.
    @ivar stack: A stack used to control nesting.
    @type stack: list
    t   Framec           B   s    e  Z d  Z d „  Z d „  Z RS(   s    A content iterator frame. c         C   s"   | |  _  | i |  _ d |  _ d S(   s[   
            @param sx: A schema object.
            @type sx: L{SchemaObject}
            i    N(   t   sxR    t   itemsRq   (   R"   Ry   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR#   ç  s    	c         C   sA   |  i  t |  i ƒ j  o$ |  i |  i  } |  i  d 7_  | Sd S(   s˜   
            Get the I{next} item in the frame's collection.
            @return: The next item or None
            @rtype: L{SchemaObject}
            i   N(   Rq   RC   Rz   (   R"   R%   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   nextð  s    (   Rd   Rs   Rt   R#   R{   (    (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRx   ä  s   		c         C   s   g  |  _  |  i | ƒ d S(   sO   
        @param sx: A schema object.
        @type sx: L{SchemaObject}
        N(   t   stackt   push(   R"   Ry   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR#   û  s    	c         C   s   |  i  i t i | ƒ ƒ d S(   s   
        Create a frame and push the specified object.
        @param sx: A schema object to push.
        @type sx: L{SchemaObject}
        N(   R|   R   Ro   Rx   (   R"   Ry   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR}     s    c         C   s+   t  |  i ƒ o |  i i ƒ  St ƒ  ‚ d S(   s–   
        Pop the I{top} frame.
        @return: The popped frame.
        @rtype: L{Frame}
        @raise StopIteration: when stack is empty.
        N(   RC   R|   t   popt   StopIteration(   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR~     s    c         C   s)   t  |  i ƒ o |  i d St ƒ  ‚ d S(   s“   
        Get the I{top} frame.
        @return: The top frame.
        @rtype: L{Frame}
        @raise StopIteration: when stack is empty.
        iÿÿÿÿN(   RC   R|   R   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   top  s    c         C   s£   |  i  ƒ  } x t oˆ | i ƒ  } | d j o |  i ƒ  |  i ƒ  St | t ƒ o2 g  } |  i D] } | | i qb ~ } | | f S|  i	 | ƒ |  i ƒ  SWd S(   s»   
        Get the next item.
        @return: A tuple: the next (child, ancestry).
        @rtype: (L{SchemaObject}, [L{SchemaObject},..])
        @raise StopIteration: A the end.
        N(
   R€   Rw   R{   R*   R~   t
   isinstancet   ContentR|   Ry   R}   (   R"   t   frameR%   t   _[1]t   fR'   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR{   #  s     
'c         C   s   |  S(   N(    (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRp   6  s    (    (
   Rd   Rs   Rt   Rx   R#   R}   R~   R€   R{   Rp   (    (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRo   Û  s   					t   XBuiltinc           B   s8   e  Z d  Z d „  Z d d „ Z d „  Z e d „ Z RS(   s1   
    Represents an (xsd) schema <xs:*/> node
    c         C   s5   t  | ƒ } t i |  | | ƒ | |  _ t |  _ d S(   s^   
        @param schema: The containing schema.
        @type schema: L{schema.Schema}
        N(   R   R   R#   R   Rw   R   (   R"   R   R   R   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR#   ?  s    	c         C   s   t  i S(   N(   t	   Namespacet   xsdns(   R"   R.   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR0   I  s    c         C   s   t  S(   N(   Rw   (   R"   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR?   L  s    c         C   s   |  S(   N(    (   R"   R:   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR;   O  s    N(	   Rd   Rs   Rt   R#   R*   R0   R?   R   R;   (    (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR†   :  s
   	
	R‚   c           B   s   e  Z d  Z RS(   sb   
    This class represents those schema objects that represent
    real XML document content.
    (   Rd   Rs   Rt   (    (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR‚   S  s   t
   NodeFinderc           B   s#   e  Z d  Z d d „ Z d „  Z RS(   s)  
    Find nodes based on flexable criteria.  The I{matcher} is
    may be any object that implements a match(n) method.
    @ivar matcher: An object used as criteria for match.
    @type matcher: I{any}.match(n)
    @ivar limit: Limit the number of matches.  0=unlimited.
    @type limit: int
    i    c         C   s   | |  _  | |  _ d S(   sÈ   
        @param matcher: An object used as criteria for match.
        @type matcher: I{any}.match(n)
        @param limit: Limit the number of matches.  0=unlimited.
        @type limit: int
        N(   t   matchert   limit(   R"   RŠ   R‹   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR#   d  s    	c         C   sp   |  i  i | ƒ o5 | i | ƒ |  i d 8_ |  i d j o d Sn x! | i D] } |  i | | ƒ qR W|  S(   sÃ   
        Traverse the tree looking for matches.
        @param node: A node to match on.
        @type node: L{SchemaObject}
        @param list: A list to fill.
        @type list: list
        i   i    N(   RŠ   t   matchR   R‹   R    RE   (   R"   t   nodet   listRH   (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyRE   n  s    	
 (   Rd   Rs   Rt   R#   RE   (    (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyR‰   [  s   
N(   Rt   t   loggingR    t   sudst   suds.xsdt   suds.sax.elementR   Rd   RQ   R   Ro   R†   R‚   R‰   (    (    (    sN   /usr/local/lib/python2.6/dist-packages/suds-0.3.7-py2.6.egg/suds/xsd/sxbase.pyt   <module>   s   

ÿ ¾_