
Sc           @   s  d  d l  Z  d  d l m Z d  d l Td  d l m Z d  d l Td  d l Z d  d l Z d  d l m	 Z	 y d  d l
 m Z Wn! e k
 r d  d l m Z n Xy d  d l m Z Wn n Xd  d l m Z d  d	 l m Z d
 Z d  d l m Z g  d  Z d f  d     YZ d e j j j f d     YZ d e j j j f d     YZ e e e e  e d  Z! d d  Z" d d d e e d  Z# d S(   iN(   t   Config(   t   *(   t   NS(   t   fromXMLname(   t   StringIO(   t   SSL(   t   expatreader(   t   DefusedXmlExceptions5   $Id: Parser.py 1497 2010-03-08 06:06:52Z pooryorick $(   t   __version__c         C   s
   t  j   S(   N(   R   t   create_parser(   t   parser_list(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   make_parser   s    t	   RefHolderc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s=   | |  _  | |  _ t |  |  _ | j j | d  |  _ d  S(   Ni    (   t   namet   parentt   lent   post
   namecountst   gett   subpos(   t   selfR   t   frame(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   __init__$   s    		c         C   s   d |  j  |  j t |   f S(   Ns   <%s %s at %d>(   t	   __class__R   t   id(   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   __repr__*   s    c         C   s   d |  j  |  j t |   f S(   Ns   <%s %s at %d>(   R   R   R   (   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   __str__-   s    (   t   __name__t
   __module__R   R   R   (    (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR   #   s   		t
   SOAPParserc           B   s  e  Z d  f  d     YZ e d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d Z d   Z d f  d     YZ d   Z i d e d f d 6d e d f d 6d e d f d 6d e d f d 6d d d f d 6d d d f d 6d d d f d 6d d  d! f d" 6d d e f d# 6d d e f d$ 6d d e f d% 6d d e f d& 6d d d' f d( 6d d d) f d* 6d d d+ f d, 6d d d- f d. 6Z i d/ d0 d1 f d2 6d3 d4 d5 f d6 6Z d7 Z e d8  Z e d9  Z e d:  Z RS(;   t   Framec           B   sD   e  Z d i  i  d   Z d   Z d d d  Z d   Z d   Z RS(   c         C   sL   | |  _  | |  _ | |  _ | |  _ g  |  _ g  |  _ i  |  _ g  |  _ d  S(   N(   R   t   kindt   attrst   rulest   contentst   namesR   t   subattrs(   R   R   R   R    R!   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR   2   s    							c         C   si   |  j  j |  |  j j |  |  j j |  |  j j |  rX |  j | c d 7<n d |  j | <d  S(   Ni   (   R#   t   appendR"   R$   R   t   has_key(   R   R   t   dataR    (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR%   =   s    i    c         C   s*   | |  j  | <| r& |  j j |  n  d  S(   N(   R"   R    t   update(   R   R   t   valueR   R   R    (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt
   _placeItemG   s    c         C   s   t  |  j  S(   N(   R   R"   (   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   __len__M   s    c         C   s   d |  j  |  j t |   f S(   Ns   <%s %s at %d>(   R   R   R   (   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR   P   s    N(   R   R   t   NoneR   R%   R*   R+   R   (    (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR   1   s
   	
	c         C   s   t  j j j j |   d  |  _ d  |  _ i  |  _ d  |  _	 d |  _
 |  j d  g |  _ i t j t j 6|  _ i t j t j 6|  _ i  |  _ i  |  _ | |  _ d  S(   Nt   Et   SOAP(   t   xmlt   saxt   handlert   ContentHandlerR   R,   t   bodyt   headerR    t   _datat   _nextR   t   _stackR   t   XMLt   XML_Tt   _premt   _prem_rt   _idst   _refst   _rules(   R   R!   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR   S   s    							c            s    f d   } | d d  k rJ | d d d k rJ d  | d d f } n t |  }   j d k r | d d k r t d | |   n  | d t j k r t d t j d	 | d f  qd
   _ n   j d
 k r| d t j k r	| d d k r	d    _ qt d | |   nk   j d k re| t j d f k rOd    _ qt d | |   n%   j d k rt d | |   n  t   j	  d k r  j
 } n, y   j	 d j | d } Wn d  } n Xt |  t t f k r| } n | j t j d f  } | d  k r| j t j d f =| j d  } | d k ry#   j | |  | | d f } Wqd  } qXqd  } n    j   j | d | | j |   g    _ d  S(   Nc            sa   |  d } |  d }   j  j |  rF   j  |  d d |  d } n | r] | d | } n  | S(   Ni    i   t   :(   R;   R&   (   R   t   prefixt   tag(   R   (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   toStrf   s    

 i    i   t    R-   t   Envelopes&   expected `SOAP-ENV:Envelope', got `%s's   %s:VersionMismatchs&   Don't understand version `%s' Envelopet   HorBt   Headert   Bodys7   expected `SOAP-ENV:Header' or `SOAP-ENV:Body', got `%s't   Bs"   expected `SOAP-ENV:Body', got `%s't    s   expected nothing, got `%s'i   it	   arrayTypeR?   (   RF   RG   (   R,   t   tupleR6   t   ErrorR   t   ENVt	   faultTypet   ENV_TR   R7   R>   R!   t   typet   NoneTypet   DictTypeR   t   ENCt   _attrst   findR:   t	   pushFrameR   R5   (   R   R   t   qnameR    RB   R!   R   t   i(    (   R   s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   startElementNSd   s\    
$#
	#	&c         C   s   |  j  j |  d  S(   N(   R7   R%   (   R   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyRV      s    c         C   s   |  j  j   S(   N(   R7   t   pop(   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   popFrame   s    c         C   s
  | d d  k r< | d d d k r< d  | d d } } n t |  \ } } t |  } |  j d k ru t d  n  |  j d' k r t d  n  |  j   } | j } d  } | j d(  r | d) } |  j j |  r t d
 |  n  | d* =n  d } t	 |  j
  d k r| j t j d f  rt | t j d f  } | d k rc| d  k r{t d  q{n | d k r{t d  n  | t j d f =qn  x| j d+  } | r| d d k rt d  n  |  j d  k rt j |  j d  j   d k rt d  n  | d } |  j j |  r-|  j | }	 nO t | |  j
 d  }	 |  j j |  rl|  j | j |	  n |	 g |  j | <| d, =Pn  d  }
 | rQxF t j D]; } | j | d f  r| | d f }
 | | d f =qqW|
 d  k rQ|
 j d  } | d k r?y# |  j |
 |  |
 | d f }
 WqKd  |
 f }
 qKXqNd  |
 f }
 qQn  d } | rxO t j t j f D]; } | j | d f  rp| | d f } | | d f =qpqpW| j t j d f  r| t j d f } | t j d f =n  t |  t t f k r#| j   d k r#d } q#n  y t |  } Wn5 t  k
 rj} | d j! d  sa|  n  d } n X| rt	 |  s|  j d  k rt j |  j d  j   d k rt d  n  d  }	 Pqn  t	 |  j
  d k rZ| | f t j" d f k rt# d |  |  _$ }	 d |  _ Pq| | f t j" d f k rt% d |  |  _& }	 d |  _ PqnX t	 |  j
  d k r|  j d  k r| | f t j" d  f k rt'   }	 d  |  _ Pqn  | j( d  k r| j( } t |  t t f k rd  | f } n! t |  t) k rt |  } n  t* |  r<| t j |  j d   }	 n t |  t+ k rlt, d! | | f d |  }	 nS | d d"  d# k r|  j- | j. | |  }	 n$ |  j- t j |  j d  | |  }	 Pn  |
 d  k r| j/ d  k s|
 t j d$ f k rr| j/ }
 |
 d  k rd% t	 |  }
 n
 |
 d }
 t	 | j0  d k rJ| j1 d } n d  } |  j2 | | f |
 | |  }	 Pn  t	 |  j
  d k r|
 d  k rt	 |  d k r|  j d  k st j |  j d  j   d k rt, d! | | f d |  }	 Pn  t	 |  d k r^	| t j3 k r^	|
 d  k r|  j
 d j/ }
 |
 d  k rz|
 d j d&  } | d k r|
 d |
 d |  f }
 qq| d  k r| | f }
 qn  |
 d  k ry( |  j- t j |  j d  |
 |  }	 Wqt4 k
 rd  }	 qXn d  }	 |	 d  k rZ	|  j d  k r	d }	 n t j |  j d  }	 t	 |  d k rZ	y t5 |	  }	 WqW	qW	XqZ	n  Pn  t, d! | | f d |  }	 Pqt6 |	 t7  r	xf t8 t	 |   D]O } | j. | } |	 j9 | j1 | | | j: |  t6 | t  r	|	 | _; q	q	Wn  | r
|  j
 d j | |	 |  n  | d  k r
|	 |  j | <|  j j |  r
x: |  j | D]+ } | j; j< | j= |	 | j> | j? |  qQ
W|  j | =q
n  | |  j t@ |	  <t6 |	 tA  r
|	 jB |  n  d  |  _ d  S(-   Ni    i   RC   R-   s   didn't get SOAP-ENV:EnvelopeRE   RH   s   didn't get SOAP-ENV:BodyR   s   duplicate id `%s'i   t   roots    non-root element must have an ids    SOAP-ENC:root must be `0' or `1't   hreft   #s'   Non-local hrefs are not yet suppported.RI   s   hrefs can't have dataiRP   R?   t   nullt   nilt   trues   invalid literal for int()s   nils can't have datai   RF   R    RG   t   FaultR   i	   RJ   t   Arrays   ur-type[%d]t   [(   s   HorBRH   (   Ns   id(   Ns   id(   Ns   id(   Ns   href(   Ns   href(C   R,   RK   R   R6   RL   R[   R    R&   R<   R   R7   R   RS   t   intR   R5   t   stringt   joint   stripR   R=   R%   t   XSI_LRU   R:   t   XSIt   XSI2t   XSI3RP   t
   StringTypet   UnicodeTypet   lowert
   ValueErrort
   startswithRM   t
   headerTypeR4   t   bodyTypeR3   RN   R!   t   ListTypet   callableRR   t
   structTypet   convertTypeR"   R   R   R#   t
   startArrayt   URNt   UnknownTypeErrort   strt
   isinstancet   compoundTypet   ranget   _addItemR$   R   R*   R   R   R   R   t   anyTypet	   _setAttrs(   R   R   RW   t   nst   curR    t   idvalR\   R]   R'   R   RX   R_   t   et   rulet	   elemsnamet   v(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   endElementNS   sZ   $	

!
#	
0		$		
		
!0!
	  
!)c         C   sm   t  |  j  d k r2 t d |  j j   d  n7 t  |  j  d k ri t d d j |  j j     n  d  S(   Ni   s   unresolved reference i    s   unresolved references s   , (   R   R=   RL   t   keysRg   (   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   endDocument  s    c         C   s   | |  j  | <| |  j | <d  S(   N(   R:   R;   (   R   R@   t   uri(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   startPrefixMapping  s    c         C   s-   y |  j  |  j | =|  j | =Wn n Xd  S(   N(   R;   R:   (   R   R@   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   endPrefixMapping  s
    c         C   s&   |  j  d  k r" |  j  j |  n  d  S(   N(   R5   R,   R%   (   R   t   c(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt
   characters  s    sY   ^(?:(?P<ns>[^:]*):)?(?P<type>[^[]+)(?:\[(?P<rank>,*)\])?(?:\[(?P<asize>\d+(?:,\d+)*)?\])$c      	   C   s  t  |  j  t k r- t j |  j  |  _ n  | j t j d f  } | d  k r | t j d f =yU | d d k r | d d k r t	 | d d ! } | d k  r t
  q n t
  Wq t d  q Xn d } y|  j j |  } | d  k r t
  n  | j d  } | d	 k rEt d  | | | | j d
  | j d  |  S| j d  d  k rt d  | |  j | j d  | f | | | j d
  | j d  |  St d  | d  | f | | | j d
  | j d  |  SWn t d |  n Xd  S(   Nt   offseti    Rd   it   ]i   s   invalid Array offsetRP   s   ur-typet   rankt   asizeR   s   invalid Array type `%s'(   RP   t   arrayreRm   t   ret   compileR   R   RS   R,   Re   t	   Exceptiont   AttributeErrort   searcht   groupRJ   t   typedArrayTypeR:   (   R   R   R   R    R   R   t   mt   t(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyRx     s<     
		#t   DATETIMECONSTSc           B   s;  e  Z d  Z d Z d Z d Z d Z d Z d Z d Z	 d Z
 d	 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 6Z d e Z e Z e Z d e Z d e Z d e Z d e Z d e Z e Z d e Z e Z d e Z e Z d e Z e Z d e Z d  e Z e Z d$ Z  RS(%   s   (?P<sign>-?)s   (?P<century>\d{2,})s   (?P<year>\d{2})s   (?P<month>\d{2})s   (?P<day>\d{2})s   (?P<hour>\d{2})s   (?P<minute>\d{2})s   (?P<second>\d{2}(?:\.\d*)?)sA   (?P<zulu>Z)|(?P<tzsign>[-+])(?P<tzhour>\d{2}):(?P<tzminute>\d{2})s   ^\s*s   \s*$t   signt   centuryt   yeart   montht   dayt   hourt   minutet   secondt   timezonet   bR   se   %(b)s%(sign)s%(century)s%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s(%(timezone)s)?%(e)ss7   %(b)s%(hour)s:%(minute)s:%(second)s(%(timezone)s)?%(e)ssF   %(b)s%(sign)s%(century)s%(year)s-%(month)s-%(day)s(%(timezone)s)?%(e)ss,   %(b)s%(sign)s%(century)s(%(timezone)s)?%(e)ss>   %(b)s%(sign)s%(century)s%(year)s-%(month)s(%(timezone)s)?%(e)ss4   %(b)s%(sign)s%(century)s%(year)s(%(timezone)s)?%(e)ss,   %(b)s--%(month)s-%(day)s(%(timezone)s)?%(e)ss#   %(b)s---%(day)s(%(timezone)s)?%(e)ss&   %(b)s--%(month)s--(%(timezone)s)?%(e)ss   %(b)s%(sign)s(%(century)s|-)(%(year)s|-)-(%(month)s|-)-(%(day)s|-)T(%(hour)s|-):(%(minute)s|-):(%(second)s|-)(%(timezone)s)?%(e)ss   %(b)s%(sign)sP((?P<year>\d+)Y)?((?P<month>\d+)M)?((?P<day>\d+)D)?((?P<sep>T)((?P<hour>\d+)H)?((?P<minute>\d+)M)?((?P<second>\d*(?:\.\d*)?)S)?)?%(e)si   i   i   (   i   i   i   i   i   i   i   i   i   i   i   i   i   (!   R   R   t   SIGNret	   CENTURYret   YEARret   MONTHret   DAYret   HOURret   MINUTEret   SECONDret
   TIMEZONEret   BOSret   EOSret   _DATETIMECONSTS__allrest   dateTimet   timeInstantt
   timePeriodt   timet   dateR   t
   gYearMontht   gYearR   t	   gMonthDayt   recurringDatet   gDayt   recurringDayt   gMonthR   t   recurringInstantt   durationt   timeDurationt   months(    (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR     sR   



c         C   s  d   } d d  } y t  |  j |  } Wn t k
 r? d  SXt |  t k rw t j |  } t |  j | |  n  | j	 |  } y#| d  k r t
  n  | j   } d } t |  }	 g  }
 | d k r| d d  k r| d d  k r| d	 d  k r| d
 d  k rt
  n  | d } x t t |   D] } | | | } | d  k r| | d
 k rst |  } n0 y t |  } Wn t k
 rt |  } n X| |	 k  r| }	 qn  |
 j |  q4W|	 t |
  k rt
  n  | d d k r	|
 |	 |
 |	 <n  t |
  S| d k rx t t |   D] } | | | } | d  k s^| d k r|| |	 k rst
  n  d  } nd | |	 k  r| }	 n  | | d
 k rt |  } n0 y t |  } Wn t k
 rt |  } n X|
 j |  q2W|
 j d  } |	 d k r#|
 d c | d 7<n
 |	 d 8}	 |	 t |
  k  ra| d d k ra|
 |	 |
 |	 <n  t |
 |	  t | |  j j | |  |
 |	 d   Sd d d d d d d g }
 x t t |   D] } | | } | j |  } | d  k r| d
 k r
t |  } n0 y t |  } Wn t k
 r9t |  } n X| |	 k  rO| }	 n  | |
 | <qqW|	 t |
  k r{t
  n  |
 j d  } |	 d k r|
 d c | d 7<n
 |	 d 8}	 | j d  d k r|
 |	 |
 |	 <n  t |
 |	  | |  } | r| |  j j | |
 |	  }
 n  | d k r3|
 d d Sg  } xH t d t |   D]1 } | j | |  rO| j |
 | d  qOqOWt |  d k r| d St |  SWn) t
 k
 r} t d | | | f  n Xd  S(   Nc         S   sq   d } yS |  d d  k rX d t |  d  t |  d  } |  d d k rX | } qX n  Wn t k
 rl n X| S(   Ni    t   zului<   t   tzhourt   tzminutet   tzsignt   -(   R,   Re   t	   TypeError(   t   dt   zoffs(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   getZoneOffsetT  s    "i   c         S   s  | d k r< | d k s8 d | d k o3 d k  n r< | S| d k rU d | d <n  | d k rn d | d <n  | d d k  r | d c t  | d  d 7<| d c d ;<n  | d c | 7<| d k s d | d k o d k  n r | S| d c | d d 7<| d c d ;<| d k sCd | d k o>d k  n rG| S| d c | d d 7<| d c d ;<| d k r| r| d d k r| d c d	 7<n  | Sx | d k o | d d k o | d d d k o | d d
 d k p | d d d k } d | d k  o*|  | d | k n r3Pn  | d c |  | d d | 7<| d c d 8<| d d k rwPn  d | d <| d k rPn  | d c d 8<q| S(   Ni    i   i   i<   i   i   i   i   i   id   i  i   (   Re   (   R   R   R   t   minfieldt   posdayt   leap(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   applyZoneOffseta  sJ    8  , , (,   
 R   R   R   R   R   R   R   R   R   t   sepR   R   R   i    id   s   invalid %s value `%s' - %s(   s   centurys   years   months   days   hours   minutes   second(   s   durations   timeDuration(   t   getattrR   R   R,   RP   Rm   R   R   t   setattrR   R   t	   groupdictR   R~   t   floatRe   Rp   t   longR%   RK   RZ   t	   cleanDateR   R   R&   RL   (   R   R)   R   R   R   t   expR   R   t   ft   fnt   rRX   t   st   fieldR   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   convertDateTimeS  s    	6	   	
   	
			
"
		
i    t   nonPositiveIntegers   non-positive-integerit   negativeIntegers   negative-integeri   l         l    R   l     l    Re   i i  t   shortii   t   bytet   nonNegativeIntegers   non-negative-integert   positiveIntegers   positive-integerl    t   unsignedLongl    t   unsignedInti  t   unsignedShorti   t   unsignedByteg      6g   g   GR   g        ggt   doubles   [1-9]c            s   | d d  k r | d d  k	 r | d j   } | d  d k r | j d  } | j d  } | j d  } | | d | ! | | d | !}	  d k r | St      f d	   |  }
 |
 Sq t j | d f } n   j | |     S(
   Ni    i   i	   RJ   t   =Rd   R   s   ur-typec      	      s+    j  d |  d t j  f d   d   S(   NR   R   R    t   config(   t   convertToBasicTypesR   t   XSD(   t   di(   R    R   t   elemtypeR   (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   <lambda>P  s    (   R,   Rh   RU   t   mapR   R   R   (   R   R   R   R    R   RP   t   index_eqt	   index_obrt	   index_cbrt   elemnumt   newarr(    (   R    R   R   R   s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyRw   D  s     	c         C   s   d  S(   N(    (   R   R   R   R    R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   convertToSOAPpyTypes]  s    c   	   
   C   s	  | p	 d } | d t  j k r| d d k rt y+ t |  } t |  rY t |  } n  Wn t |  } n X| S|  j j | d  rE|  j | d } y t |  } Wn t |  } n X| d d  k r | | d k  r t d |  n  | d d  k r!| | d k r!t	 d |  n  | d s7t |  rAt |  S| S| d d k rt |  rkt
 |  Sy t |  SWq| SXn  | d dH k r| j   j   } | dI k rt S| dJ k rt St d  n  | d dK k r/|  j | d } | j   j   } | d k rt } nW | d d !d k sC| d d !d k rLt } n( | d d !d k rht } n t |  } | j r+t | k r| d d !d k r(t d | d | f  q(q+t | k r| d d !d k r(t d | d | f  q(q+t | k rD| d d !d k r(| d d !d k r(t	 d | d | f  q(q+| d k  rz| | d k  rzt d | d | f  q+| d k r| | d k  s| | d k rt	 d | d | f  q+| d k r+t |  j  t k rt j |  j  |  _ n  |  j j |  r(t d | d | f  q(q+n  | S| d dL k rS|  j | | d  S| d d k rmt |  S| d dM k rt |  S| d dN k rt |  } | j    Sn  | d t  j! k rT| d dO k r| rt" j# |  Sd Sn  | d d- k r| rt$ |  Sd  Sn  | d d. k r7t% j& t |   S| d dP k rTt |  Sn  | d t  j' k r| d d+ k r| rt" j# |  Sd Sqn  | d t  j( k ra| d d1 k ryJ | dQ } | r| d3 k rt$ |  S| d+ k r t" j# |  Sn d SWn n Xt) d4  n  | d d5 k r:t% j& t |   S| d d6 k ra|  j | | d  Sn  | d t  j* t  j' f k r| d d7 k rt% j& t |   S| d d8 k r|  j | | d  S| d dR k r|  j | | d  Sn  | d t  j( t  j* t  j' f k r4| d d; k r4|  j | | d  Sn  | d t  j+ k r!| d d. k rjt% j& t |   S| d dS k r|  j | | d  S| d d> k r|  j | | d  S| d d? k r|  j | | d  S| d d@ k r|  j | | d  S| d dA k r!|  j | | d  Sn  | d t  j* t  j+ f k r| d d0 k rWt |  S| d dB k r{|  j | | d  S| d dC k r|  j | | d  S| d dD k r|  j | | d  Sn  | d t  j* k r| d dE k rt |  Sn  t, dF t | d  dG | d  d  S(T   NRI   i    i   t   integers   %s too smalli   s   %s too largeRf   t   boolt   booleant   0t   falset   1Ra   s   invalid boolean valueR   R   t   nant   infi   s   +infs   -infs   invalid %s: %ss   %s too small: %ss   %s too large: %sR   R   R   R   t   decimalt   languaget   QNamet   NOTATIONt   NMTOKENt   Namet   NCNamet   IDt   IDREFt   ENTITYt   IDREFSt   ENTITIESt   NMTOKENSt   base64t   base64Binaryt	   hexBinaryt   anyURIt   normalizedStringt   tokent   binaryt   encodingt   hexs"   unknown or missing binary encodingR   R   t   uriReferenceR   R   R   R   R   R   R   R   R   R   R   R   R   t   CDATAs   unknown type `%s'R?   (   s   boolR   (   R   R   (   R   s   true(   R   s   float(   s   dateTimes   dates   timeInstants   time(	   R  R  R  R  R  R  R	  R
  R  (   R  R  R  (   s   base64R  (   R  R  (   Ns   encoding(   s   centurys   year(   s
   gYearMonths	   gMonthDay(-   R   t   EXSD_LRe   R   R   t	   intlimitsR&   R,   t   UnderflowErrort   OverflowErrort   unicodeR{   Rh   Ro   t   Falset   TrueR   t   floatlimitst   NaNt   PosInft   NegInfR   t   strict_rangeRp   RP   t   zerofloatreRm   R   R   R   R   t   collapseWhiteSpacet   splitt   XSD_LR  t   decodestringt   decodeHexStringt   urllibt   unquoteRS   R   RL   t   XSD2t   XSD3Rz   (	   R   R   R   R    R   t   dnnt   lR   R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR   a  s(       

	&			&, 
	




"
(   R   R   R   R,   R   RY   RV   R[   R   R   R   R   R   R   Rx   R   R   R  R!  R&  R    Rw   R   R   (    (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR   0   sT   "	K			 					,?	

t   EmptyEntityResolverc           B   s   e  Z d    Z RS(   c         C   s
   t  d  S(   Ns&   <?xml version='1.0' encoding='UTF-8'?>(   R   (   R   t   publicIdt   systemId(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   resolveEntity  s    (   R   R   R5  (    (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyR2    s   c         C   sT  t  j j j   } | j t |    | d  k r: t } n  t   } t	 d |  } | j
 |  t  j j j   }	 | j |	  | r t } t } t } n  | | _ | | _ | | _ | j t    | j t  j j j d  y | j |  Wn_ t k
 r}
 d  | _ t j   GH|
  n3 t  j j k
 rO}
 d  | _ t j   GH|
  n X| S(   NR!   i   (   R/   R0   t	   xmlreadert   InputSourcet   setByteStreamR   R,   R  R   R   t   setContentHandlerR1   t   ErrorHandlert   setErrorHandlerR   t
   forbid_dtdt   forbid_entitiest   forbid_externalt   setEntityResolverR2  t
   setFeaturet   feature_namespacest   parseR   t   _parsert	   tracebackt
   format_exct   SAXParseException(   t   xml_strR!   t
   ignore_extR=  R>  R<  t   inpsrct   parserR   t   errorHandlerR   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt
   _parseSOAP  s:    									
i    c         C   s)   t  |   } | r" | j | j f S| j S(   N(   RL  R3   R    (   RG  R    R   (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt	   parseSOAPG  s    c         C   s  t  |  d | d | } | j d } t |  t d  t d  f k r | d k r d } x3 | j j j   D] }	 |	 d d k rn |	 } qn qn Wt |  } n  | s | s | r
| f }
 | r |
 | j f 7}
 n  | r |
 | j f 7}
 n  | r|
 | j f 7}
 n  |
 S| Sd  S(	   NR!   RH  i    RI   u    t   Responset   _(   RI   u    (   RL  R3   RP   t   __dict__R   Rv   R4   R    (   RG  R4   R3   R    R!   RH  R   t   pR   t   kt   ret(    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   parseSOAPRPCO  s$    0	   ($   RD  R    t   TypesR   t	   UtilitiesRf   t   xml.saxR/   t   wstools.XMLnameR   t	   cStringIOR   t   ImportErrort   M2CryptoR   t
   defusedxmlR   t   defusedxml.commonR   t   identt   versionR   R   R   R0   R1   R2   R   t   EntityResolverR2  R,   R  R   RL  RM  RT  (    (    (    s1   /usr/lib/python2.7/dist-packages/SOAPpy/Parser.pyt   <module>   s<   

     )