
    jI                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Zd dlmZmZmZmZmZ d dlmZ d dlmc mZ d dlmZ d dlZd dlmZ d dlmZ d dlmZ d dl m!Z! ejD                  d	k\  rd d
l#m$Z$ nd d
lm$Z$  ejJ                  e&      Z'g dZ(ejR                  Z* ejV                  d      Z,dede-fdZ.dgdej^                  e-   de-fdZ0dgdej^                  e-   fdZ1d Z2 G d de      Z3 ejh                  d      Z5 ejh                  d      Z6dejn                  e-ef   defdZ8dejn                  e-ef   defdZ9dejn                  e:ef   defdZ;dejn                  e-ef   defdZ<dejn                  e-ef   defdZ=d Z>d Z?d  Z@d! ZAd" ZBee8ee<ee=eCe>eDe>ee@ej                  d# ej                  eAiZGe8e9e;e>e?d$ZHdgd%ej                  d&ej^                  d'   fd(ZId)e-d*e-fd+ZJd)e-d,e-fd-ZK eL       ZM G d. d/e$e-ej                  f         ZNd0ej                  deOfd1ZPdgdej^                  e-   fd2ZQd3ej                  e-d'f   d4e-dej^                  d'   fd5ZSd&ej^                  d'   d6ej                  dej                  fd7ZT G d8 d9eN      ZUd:ej^                  ej                     fd;ZWd<ej^                  ej                     fd=ZXd> ZYd?ej^                  ej                     d@ej^                  e-   d0ej                  ej                  ej                  f   fdAZZdBej                  ej^                  ej                        d@ej^                  e-   fdCZ\dDej^                  ej                     d@ej^                  e-   fdEZ]dFej                  ej                     dej                  ej                     fdGZ^	 dgd%ej                  d@ej^                  e-   d&ej^                  d'   dej^                  ej                  ej                  gej                  f      fdHZ_dDej^                  ej                  ej                  gej                  f      d6ej                  fdIZ`	 	 	 dhdDej                  d6ej                  d@ej^                  e-   d&ej^                  d'   dej^                  e-   dej                  fdJZa	 	 	 dhdDej                  d6ej                  d@ej^                  e-   d&ej^                  d'   dej^                  e-   dej                  fdKZb G dL d'      ZcdddeMddMddNdOej^                  e-   dPej^                  ej                     dQej^                  ej                  e-      dRej                  dej^                  e-   dSeOdTej^                  ej                  e-ej                  f      dej                  fdUZddddddVdOej^                  e-   dPej^                  ej                     dQej^                  ej                  e-      dTej^                  ej                  e-ej                  f      dej                  f
dWZedidXeUdYeOde-fdZZf	 	 	 djd[ej                  dYeOd\ej^                  ej                  e-ej                  f      d]ej^                  ej                     dejn                  ej                  ej                  ej                     f   f
d^Zhd_ej                  dYeOd`ej^                  ej                  e-ej                  f      dej                  fdaZide-fdbZjdkdcZkdDej                  d6e-dej                  fddZldeej                  fdfZmy)l    N)datetimedatetime	timedeltatimezone)JSONEncoder)Self)DeserializationError)CaseInsensitiveEnumMeta)PipelineResponse)_Null)   	   )MutableMapping)SdkJSONEncoderModel
rest_fieldrest_discriminator_Ttdreturnc                 h   | j                         }t        |d      \  }}t        |d      \  }}t        |d      \  }}t        t        t        |||f            \  }}}t        |d      }d}|rd|z  }|s|s|rd}|xs |}|r|dj                  |      z  }|xs |}|r|dj                  |      z  }	 |j                         rd	j                  t	        |            }nd
|z  }|j                  d      }|dj                  |      z  }nd}d|z   |z   S # t        $ r d	j                  |      }Y ;w xY w)a:  Converts a datetime.timedelta object into an ISO 8601 formatted string, e.g. 'P4DT12H30M05S'

    Function adapted from the Tin Can Python project: https://github.com/RusticiSoftware/TinCanPython

    :param timedelta td: The timedelta to convert
    :rtype: str
    :return: ISO8601 version of this timedelta
    <          z%sDTz{:02}Hz{:02}Mz{:02}z%09.6f0z{}SP)
total_secondsdivmodlistmapintroundformat
is_integerrstripAttributeError)	r   secondsminuteshoursdaysdate_strtime_strbigger_existsseconds_strings	            j/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/azure/ai/documentintelligence/_model_base.py_timedelta_as_isostrr3   ,   sX     Ggr*GWGR(NE7#KD%C$w)? @AD%GQG H4<7 !)E..H &000H		5!!#!(G!= "*G!3!/!6!6s!; 	ELL00>H$$  	5$^^G4N	5s   4AD D10D1r&   c                     t        j                  |       j                         }|dk(  r1|j                  d      j	                  dd      j	                  dd      S |S )N	base64url=+-/_)base64	b64encodedecodestripreplace)or&   encodeds      r2   _serialize_bytesrB   e   sQ    q!((*G}}S!))#s3;;CEEN    c                    t        | d      rt        | d      r|dk(  r!t        j                  j                  | d      S |dk(  r,t	        t        j                  | j                                     S | j                  s%| j                  t              j                         }n#| j                  t              j                         }|j                  dd	      S | j                         S )
Nyearhourrfc7231T)usegmtunix-timestamp)tzinfoz+00:00Z)hasattremailutilsformat_datetimer$   calendartimegmutctimetuplerJ   r?   TZ_UTC	isoformat
astimezone)r@   r&   iso_formatteds      r2   _serialize_datetimerW   l   s    q&ga0Y;;..q.>>%%xq~~'7899 xxIIVI4>>@MLL0::<M$$Xs33;;=rC   c                 B    	 | j                   dgk(  S # t        $ r Y yw xY w)NreadF)_visibilityr)   )ps    r2   _is_readonlyr\   ~   s*    }}(( s    	c                   X     e Zd ZdZddddedej                  e   f fdZ fdZ	 xZ
S )	r   zHA JSON encoder that's capable of serializing datetime objects and bytes.FN)exclude_readonlyr&   r^   r&   c                @    t        |   |i | || _        || _        y N)super__init__r^   r&   )selfr^   r&   argskwargs	__class__s        r2   rb   zSdkJSONEncoder.__init__   s$    $)&) 0rC   c                 
   t        |      r| j                  rf|j                  j                         D cg c]  }t	        |      s|j
                   }}|j                         D ci c]  \  }}||vs|| c}}S t        |j                               S 	 t        t        | +  |      S c c}w c c}}w # t        $ r t        |t              rY y t        |t        j                        rt!        |      cY S t        |t"        t$        f      rt'        || j(                        cY S 	 t+        || j(                        cY S # t,        $ r Y nw xY w	 t/        |      cY S # t,        $ r Y nw xY wt        t        | +  |      cY S w xY wr`   )	_is_modelr^   _attr_to_rest_fieldvaluesr\   
_rest_nameitemsdictra   r   default	TypeError
isinstancer   decimalDecimalfloatbytes	bytearrayrB   r&   rW   r)   r3   )rc   r@   r[   readonly_propskvrf   s         r2   rn   zSdkJSONEncoder.default   sK   Q<$$898M8M8T8T8V!j1ZfghZi!,,!j!j)*NAa~6M1NN	?"	:6q99	 "kN  	:!U#!W__-Qx!eY/0'4;;77*1dkk::! +A..!  6q99%	:s}   B,B,)B16B1B7 7F%F9,F(E =F 	E	FEF
EF	E)&F(E))FF)__name__
__module____qualname____doc__booltypingOptionalstrrb   rn   __classcell__rf   s   @r2   r   r      s3    R7<]a  fooVYFZ 
: :rC   r   zF\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?zw(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s\d{2}\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMTattrc                    t        | t              r| S | j                         } t        j	                  |       }|st        d| z         | j                  d      }t        |      dkD  rFd}|d   D ]  }|j                         r||z  } n t        |      dkD  r| j                  ||dd       } t        j                  |       }|j                         }|j                  dkD  s|j                  dk  rt        d      |S )	zDeserialize ISO-8601 formatted string into Datetime object.

    :param str attr: response string to be deserialized.
    :rtype: ~datetime.datetime
    :returns: The datetime object from that input
    Invalid datetime string: .   r   r   r   i'  zHit max or min date)rp   r   upper_VALID_DATEmatch
ValueErrorsplitlenisdigitr?   isodateparse_datetimerR   tm_yearOverflowError)r   r   check_decimaldecimal_strdigitdate_objtest_utcs          r2   _deserialize_datetimer      s     $!::<Dd#E4t;<<JJsOM
=A"1% 	E}}u$		
 {a<<[1-=>D%%d+H$$&H$("2"2Q"6122OrC   c                     t        | t              r| S t        j                  |       }|st	        d| z         t
        j                  j                  |       S )zDeserialize RFC7231 formatted string into Datetime object.

    :param str attr: response string to be deserialized.
    :rtype: ~datetime.datetime
    :returns: The datetime object from that input
    r   )rp   r   _VALID_RFC7231r   r   rM   rN   parsedate_to_datetime)r   r   s     r2   _deserialize_datetime_rfc7231r      sL     $!  &E4t;<<;;,,T22rC   c                 Z    t        | t              r| S t        j                  | t              S )zDeserialize unix timestamp into Datetime object.

    :param str attr: response string to be deserialized.
    :rtype: ~datetime.datetime
    :returns: The datetime object from that input
    )rp   r   fromtimestamprS   r   s    r2   $_deserialize_datetime_unix_timestampr      s&     $!!!$//rC   c                 V    t        | t              r| S t        j                  | dd      S )zDeserialize ISO-8601 formatted string into Date object.
    :param str attr: response string to be deserialized.
    :rtype: date
    :returns: The date object from that input
    N)defaultmonth
defaultday)rp   r   r   
parse_dater   s    r2   _deserialize_dater      s(     $d$GGrC   c                 P    t        | t              r| S t        j                  |       S )zDeserialize ISO-8601 formatted string into time object.

    :param str attr: response string to be deserialized.
    :rtype: datetime.time
    :returns: The time object from that input
    )rp   r   r   
parse_timer   s    r2   _deserialize_timer      s$     $d##rC   c                 n    t        | t        t        f      r| S t        t        j                  |             S r`   )rp   rt   ru   r;   	b64decoder   s    r2   _deserialize_bytesr     s,    $	*+!!$'((rC   c                     t        | t        t        f      r| S ddt        |       dz   dz  z
  z  }| |z   } | j	                  dd      j	                  dd      }t        t        j                  |            S )Nr6   r      r8   r7   r:   r9   )rp   rt   ru   r   r?   r;   r   )r   paddingrA   s      r2   _deserialize_bytes_base64r     sn    $	*+Q#d)a-1,,-G'>Dll3$,,S#6G!!'*++rC   c                 P    t        | t              r| S t        j                  |       S r`   )rp   r   r   parse_durationr   s    r2   _deserialize_durationr     s"    $	"!!$''rC   c                 v    t        | t        j                        r| S t        j                  t        |             S r`   )rp   rq   rr   r   r   s    r2   _deserialize_decimalr     s(    $(??3t9%%rC   c                 <    t        | t              r| S t        |       S r`   )rp   r$   r   s    r2   _deserialize_int_as_strr   #  s    $t9rC   c                     | S r`    xs    r2   <lambda>r   0  s    ! rC   )rfc3339rG   rI   r;   r5   
annotationrf
_RestFieldc                     | t         u r|r|j                  dk(  rt        S |r+|j                  rt        j	                  |j                        S t
        j	                  |       S )Nr   )r$   _formatr   _DESERIALIZE_MAPPING_WITHFORMATget_DESERIALIZE_MAPPING)r   r   s     r2   get_deserializerr   =  sL    SRBJJ%$7&&	bjj.222::>>##J//rC   module_name
alias_namec                     t         j                  |    j                  j                         D ci c]"  \  }}t	        |t
        j                        r||$ }}}||vr|S ||   S c c}}w r`   )sysmodules__dict__rl   rp   r~   _GenericAlias)r   r   rw   rx   typess        r2   _get_type_alias_typer   E  sq     KK,55;;=Aqa--. 	
1E 
 s   'A$
model_namec           
         t         j                  |    j                  j                         D ci c]  \  }}t	        |t
              s|| }}}| j                  dd      d   }|j                  t         j                  |   j                  j                         D ci c]  \  }}t	        |t
              s|| c}}       t	        |t              r|j                  d      d   }||vr|S ||   S c c}}w c c}}w )Nr   r   r   )
r   r   r   rl   rp   typersplitupdater   r   )r   r   rw   rx   models
module_ends         r2   
_get_modelr   P  s    "{{;7@@FFH`tq!JWXZ^L_ad`F`##C+A.J
MMCKK
$;$D$D$J$J$LdDAqPZ[\^bPc1a4de*c"%%c*2.
* ads   C3C3C9
7C9
c                      e Zd Zdej                  eej                  f   ddfdZdej                  defdZ	dedej                  fdZ
dedej                  ddfd	Zdeddfd
Zdej                  ej                     fdZdefdZdej                  defdZdej$                  e   fdZdej(                  ej                     fdZdej,                  eej                  f   fdZd"dedej                  dej                  fdZej2                  dedej                  fd       Zej2                  dededefd       Zej2                  dedej                  dej                  fd       Zefdedej                  dej                  fdZdej:                  eej                  f   fdZd#dZdej                  dej                  ddfdZ ej2                  d"deddddfd       Z!ej2                  dedej                  dej                  fd       Z!efdedej                  dej                  fdZ!dej                  defd Z"defd!Z#y)$_MyMutableMappingdatar   Nc                     || _         y r`   _data)rc   r   s     r2   rb   z_MyMutableMapping.__init___  s	    
rC   keyc                     || j                   v S r`   r   rc   r   s     r2   __contains__z_MyMutableMapping.__contains__b  s    djj  rC   c                 8    | j                   j                  |      S r`   )r   __getitem__r   s     r2   r   z_MyMutableMapping.__getitem__e  s    zz%%c**rC   valuec                 <    | j                   j                  ||       y r`   )r   __setitem__)rc   r   r   s      r2   r   z_MyMutableMapping.__setitem__h  s    

sE*rC   c                 :    | j                   j                  |       y r`   )r   __delitem__r   s     r2   r   z_MyMutableMapping.__delitem__k  s    

s#rC   c                 6    | j                   j                         S r`   )r   __iter__rc   s    r2   r   z_MyMutableMapping.__iter__n  s    zz""$$rC   c                 6    | j                   j                         S r`   )r   __len__r   s    r2   r   z_MyMutableMapping.__len__q      zz!!##rC   otherc                 &    | j                  |       S r`   )__eq__)rc   r   s     r2   __ne__z_MyMutableMapping.__ne__t  s    ;;u%%%rC   c                 6    | j                   j                         S r`   )r   keysr   s    r2   r   z_MyMutableMapping.keysw  s    zz  rC   c                 6    | j                   j                         S r`   )r   rj   r   s    r2   rj   z_MyMutableMapping.valuesz  s    zz  ""rC   c                 6    | j                   j                         S r`   )r   rl   r   s    r2   rl   z_MyMutableMapping.items}  s    zz!!rC   rn   c                 0    	 | |   S # t         $ r |cY S w xY wr`   )KeyErrorrc   r   rn   s      r2   r   z_MyMutableMapping.get  s%    	9 	N	s    c                      y r`   r   r   s     r2   popz_MyMutableMapping.pop  s    +.rC   c                      y r`   r   r   s      r2   r   z_MyMutableMapping.pop  s    03rC   c                      y r`   r   r   s      r2   r   z_MyMutableMapping.pop  s    @CrC   c                     |t         u r| j                  j                  |      S | j                  j                  ||      S r`   )_UNSETr   r   r   s      r2   r   z_MyMutableMapping.pop  s2    f::>>#&&zz~~c7++rC   c                 6    | j                   j                         S r`   )r   popitemr   s    r2   r  z_MyMutableMapping.popitem  r   rC   c                 8    | j                   j                          y r`   )r   clearr   s    r2   r  z_MyMutableMapping.clear  s    

rC   rd   re   c                 <     | j                   j                  |i | y r`   )r   r   )rc   rd   re   s      r2   r   z_MyMutableMapping.update  s    

4*6*rC   c                      y r`   r   r   s      r2   
setdefaultz_MyMutableMapping.setdefault  s    BErC   c                      y r`   r   r   s      r2   r  z_MyMutableMapping.setdefault  s    GJrC   c                     |t         u r| j                  j                  |      S | j                  j                  ||      S r`   )r   r   r  r   s      r2   r  z_MyMutableMapping.setdefault  s6    f::((--zz$$S'22rC   c                 v    	 | j                  |      }| j                  |j                  k(  S # t        $ r Y yw xY wNF)rf   	Exceptionr   )rc   r   other_models      r2   r   z_MyMutableMapping.__eq__  s@    	../K zz[....  		s   , 	88c                 ,    t        | j                        S r`   )r   r   r   s    r2   __repr__z_MyMutableMapping.__repr__  s    4::rC   r`   )r   N)$ry   rz   r{   r~   Dictr   Anyrb   r}   r   r   r   r   Iteratorr   r$   r   r   KeysViewr   
ValuesViewrj   	ItemsViewrl   r   overloadr   r   r   Tupler  r  r   r  r   r  r   rC   r2   r   r   ^  s   V[[fjj9 d !

 !t !+s +vzz ++s +6:: +$ +$s $t $%&//&**5 %$ $&FJJ &4 &!fooc* !#))&**5 #"v''VZZ8 "s VZZ 6::  __.s.vzz. .__3s3R3B3 3__CsCVZZCFJJC C28 ,s ,VZZ ,VZZ ,
$c6::o6 $+FJJ +&** + + __EcEDEDE E__JcJFJJJ6::J J9? 3c 3FJJ 3FJJ 3
/FJJ /4 /# rC   r   objc                     t        | dd      S )Nrh   F)getattr)r  s    r2   rh   rh     s    3U++rC   c           	         t        | t              r| D cg c]  }t        |       c}S t        | t              r.| j	                         D ci c]  \  }}|t        |       c}}S t        | t
              r| D ch c]  }t        |       c}S t        | t              rt        fd| D              S t        | t        t        f      rt        |       S t        | t        j                        rt        |       S t        | t        j                        r| j                  S t        | t               rdk(  rt#        |       S | S 	 t%        |       S c c}w c c}}w c c}w # t&        $ r Y nw xY w	 t)        |       S # t&        $ r Y | S w xY w)Nc              3   6   K   | ]  }t        |        y wr`   )
_serialize).0r   r&   s     r2   	<genexpr>z_serialize.<locals>.<genexpr>  s     6qZ6*6s   r   )rp   r"   r  rm   rl   settuplert   ru   rB   rq   rr   rs   enumEnumr   r$   r   rW   r)   r3   )r@   r&   r   rw   rx   s    `   r2   r  r    sT   !T/01!
1f%11!T56WWY?TQ:a((??!S/01!
1f%11!U6A666!eY'(6**!W__%Qx!TYYww!SU?q6M"1f--' 2?1   #A&& Hs5   EE>EE$ $	E0/E04
E? ?	FFattr_to_rest_field	rest_namec                 h    	 t        fd| j                         D              S # t        $ r Y y w xY w)Nc              3   B   K   | ]  }|j                   k(  s|  y wr`   rk   )r  r   r$  s     r2   r  z"_get_rest_field.<locals>.<genexpr>  s     [2QZ@ZB[   )nextrj   StopIteration)r#  r$  s    `r2   _get_rest_fieldr+    s5    [!3!:!:!<[[[ s   !% 	11r   c                 
   | st        |d       S | j                  r|S | j                  rt        | j                  |      S t        |t        j                        rt        | j                  |      }t        || j                        S r`   )	r  _is_multipart_file_inputrh   _deserialize_typerp   ETElementr   )r   r   s     r2   _create_valuer2    sg    %&&	""	||BHHe,,%$RXXu-eRZZ((rC   c                       e Zd ZU dZ e       Zej                  e   e	d<   dej                  dej                  ddf fdZddZdej                  dej                  def fd	Zdd
ej                  e   ddfdZedej                  d   fd       Zed        Zdddedej*                  eej                  f   fdZeddej                  dedej                  fd       Z xZS )r   T_calculatedrd   re   r   Nc                 h   | j                   j                  }t        |      dkD  rt        | dt        |      dz    d      | j                  j                         D ci c]+  }|j                  t        ur|j                  |j                  - }}|rt        |d   t        j                        rpg }t        | di       }| j                  j                         D ]  }t        |di       }	|	j                  d|j                        }
|	j                  d|j                  dd             }|rd|z   d	z   |
z   }
|	j                  d
d      r[|d   j                  |
      G|j                  |
       t        |j                   |d   j                  |
            ||j                  <   |	j                  dd      r|	j                  d      r/|	j                  d      }
|	j                  d      }|rd|z   d	z   |
z   }
|d   j#                  |
      }t        |      dkD  r4|j                  |
       t        |j                   |      ||j                  <   s|	j                  dd      rA|d   j$                  0t        |j                   |d   j$                        ||j                  <   |d   j'                  |
      }||j                  |
       t        |j                   |      ||j                  <    |d   D ])  }|j(                  |vst+        |      ||j(                  <   + n|j-                  |d   j/                         D ci c]&  \  }}|t1        t3        | j                  |      |      ( c}}       n|D cg c]  }|| j                  vs| }}|rt        | d|d    d      |j-                  |j/                         D ci c]8  \  }}|1| j                  |   j                  t1        | j                  |   |      : c}}       t4        | m  |       y c c}w c c}}w c c}w c c}}w )Nr   z-.__init__() takes 2 positional arguments but z were givenr   _xmlnamens{}	attributeF	unwrapped	itemsNameitemNstextz0.__init__() got an unexpected keyword argument '')rf   ry   r   ro   ri   rj   _defaultr   rk   rp   r0  r1  r  r   appendr.  r/  findallr?  findtag_convert_elementr   rl   r2  r+  ra   rb   )rc   rd   re   
class_namer   dict_to_passexisted_attr_keys
model_metar   	prop_metaxml_namexml_nsrl   itemerw   rx   non_attr_kwargsrf   s                     r2   rb   zModel.__init__  s   ^^,,
t9q=zl*WX[\`XadeXeWffqrss #66==?
""&0 !!:#6#66
 

 $q'2::.$&!$T626
2299; %SB 'FB 7I(}}VR]]CH&]]4d1KLF#&<##5#@ !}}[%8T!W[[=R=^)00:6B288TRSW[[YaMb6cR]]3  !}}[%8$==5'0}}['AH%.]]8%<F%+.<#+=+H $Q 9u:>-44X>:FrxxQV:WL7  !}}VU37<<3:FrxxQUVWQXQ]Q]:^L7   7<<1D')00:6B288T6RR]]3K%SP a BAuu$55.>q.AQUU+B ##cghicjcpcpcrs[_[\^_Qod6N6NPQ&RTUVVs +1VQAT=U=U4UqVOV:,.^_nop_q^rrs tuu !'1} ,,Q/::M$JbJbcdJegh<ii 	&K
n t W
s   0P+P#
;P)P)	=P.
c                 ,    t        | j                        S r`   )r   r   r   s    r2   copyz
Model.copy>  s    T]]##rC   c           
      V   | j                    d| j                   | j                  vrd| j                  d d d d d   }|D ci c]=  }|j                  j                         D ]  \  }}|d   dk7  st        |d      s||  ? }}}}|D ci c]3  }t        |d      r%|j                  j                         D ]  \  }}||
 5 }}}}|j                         D ]\  \  }	}
| j                   |
_        |
j                  s&|
j                  |j                  |	d             |
_	        |
j                  rV|	|
_        ^ t        |j                               | _        | j                  j                  | j                    d| j                          t         | E  |       S c c}}}w c c}}}w )Nr   ir   r   r:   r/  __annotations__)rz   r{   r4  __mro__r   rl   rL   rT  _moduler/  )_get_deserialize_callable_from_annotationr   _rest_name_inputrm   ri   addra   __new__)clsrd   re   mros	mro_classrw   rx   r#  annotationsr   r   rf   s              r2   rZ  zModel.__new__A  s   nnQs//01H ;;s#DbD)D&*@ @"y7I7I7O7O7Q@/3q!UVWXUY]`U`elmnpwex1@@ @
 "& 9&78%55;;=	 Aq 1K  /446 /b ^^
xx!KKKOO\`bfLghBH***.B'/ EII[IaIaIcDdC#OO3>>"2!C4D4D3E FGws##%@s   -F3F F8F$discriminatorc                 z    | j                   D ],  }t        |d      s| |j                  |xs | j                  <   . y )N__mapping__)	__bases__rL   ra  ry   )r[  r_  bases      r2   __init_subclass__zModel.__init_subclass__Z  s:    MM 	FDt]+BE  !>#,,?	FrC   r   c                     | j                   j                         D ]2  }t        |t              s|j                  s!|j
                  |vs0|c S  y r`   )r   rj   rp   r   _is_discriminatorrk   )r[  exist_discriminatorsrx   s      r2   _get_discriminatorzModel._get_discriminator_  sF    $$& 	A!Z(Q-@-@Q\\YmEm	 rC   c                    t        | d      s | |      S | j                  |      }| | |      S |j                  |j                         t	        |t
        j                        rt        | di       }t        |di       }|j                  d|j                        }|j                  d|j                  dd             }|rd|z   dz   |z   }|j                  |      |j                  |      }n7|j                  |      j                  }n|j                  |j                        }| j                  j                  ||       }	|	j                  ||      S )Nra  r6  r7  r8  r9  r:  )rL   rh  rB  rk   rp   r0  r1  r  r   rD  r?  ra  r.  )
r[  r   rg  r_  rJ  rK  rL  rM  discriminator_value
mapped_clss
             r2   r.  zModel._deserializef  s/   sM*t9../CD t9##M$<$<=dBJJ' fb1Jvr:I }}V]-E-EFH]]4d)CDF<#-8xx!-&*hhx&8#&*ii&9&>&>#"&((=+C+C"D__(()<cB
&&t-ABBrC   Fr^   r^   c                   i }g }|r=| j                   j                         D cg c]  }t        |      s|j                   }}| j	                         D ]c  \  }|r|v rd}	 t        fd| j                   j                         D              j                  }|r|nt        j                  ||      |<   e |S c c}w # t        $ r Y 2w xY w)zReturn a dict that can be turned into json using json.dump.

        :keyword bool exclude_readonly: Whether to remove the readonly properties.
        :returns: A dict JSON compatible object
        :rtype: dict
        Fc              3   B   K   | ]  }|j                   k(  s|  y wr`   r'  )r  r   rw   s     r2   r  z Model.as_dict.<locals>.<genexpr>  s"      /bmmWXFXB/r(  rl  )
ri   rj   r\   rk   rl   r)  r-  r*  r   _as_dict_value)rc   r^   resultrv   r[   rx   is_multipart_file_inputrw   s          @r2   as_dictzModel.as_dict  s     484L4L4S4S4UiqYefgYhalliNiJJL 
	uDAqA$7&+#*. /!%!9!9!@!@!B/ +** (
 5%:N:Nqcs:N:tF1I
	u  j ! s   B=B=%6C	CCrx   c           	      r   | t        | t              ry t        | t        t        t        f      r t        |       fd| D              S t        | t              r9| j                         D ci c]  \  }}|t        j                  |       c}}S t        | d      r| j                        S | S c c}}w )Nc              3   L   K   | ]  }t         j                  |         yw)rl  N)r   ro  )r  r   r^   s     r2   r  z'Model._as_dict_value.<locals>.<genexpr>  s#     aZ[5//DT/Uas   !$rl  rr  )rp   r   r"   r   r  r   rm   rl   r   ro  rL   rr  )rx   r^   dkdvs    `  r2   ro  zModel._as_dict_value  s    9
1e,a$s+,47a_`aaaabcbibibklX^XZ\^B,,RBR,SSll?Fq)?Tqyy*:y;[Z[[ ms   -"B3)r   r   r`   F)ry   rz   r{   rh   r  r4  r~   Setr   rT  r  rb   rR  r	   rZ  r   rd  classmethodrh  r.  r}   r  rr  staticmethodro  r   r   s   @r2   r   r     s$   I $'5KC(I'fjj I'FJJ I'4 I'V$$FJJ $&** $ $2Ffooc.B Fd F
 9V   C C0 38 4 FKKVZZ<X 2 \&** \ \ \ \rC   r   model_deserializerc                 4    t        |      r|S t        | |      S r`   )rh   r.  )r{  r  s     r2   _deserialize_modelr}    s    ~
*C00rC   if_obj_deserializerc                 "    ||S t        | |      S r`   )_deserialize_with_callable)r~  r  s     r2   _deserialize_with_optionalr    s    
{
%&93??rC   c                 ^    | D ]  }	 t        ||      c S  t               # t        $ r Y (w xY wr`   )r.  r
   )deserializersr  deserializers      r2   _deserialize_with_unionr    sB    % 	c22
 
   $ 		s    	,,value_deserializermodulec           
          ||S t        |t        j                        r|D ci c]  }|j                  | }}|j	                         D ci c]  \  }}|t        | ||       c}}S c c}w c c}}w r`   )rp   r0  r1  rE  rl   r.  )r  r  r  childrw   rx   s         r2   _deserialize_dictr    sj    
 {
#rzz"-01Euyy%11GJyy{Stq!A|.6::SS 2Ss   A(A-entry_deserializersc                 T    ||S  t        |      fdt        ||       D              S )Nc              3   >   K   | ]  \  }}t        ||        y wr`   r.  r  entryr  r  s      r2   r  z1_deserialize_multiple_sequence.<locals>.<genexpr>  s     xCV5,\,v>xs   )r   zip)r  r  r  s    ` r2   _deserialize_multiple_sequencer    s0    
 {
49xZ]^acvZwxxxrC   r  c                      ||S t        |t        j                        rt        |      } t	        |       fd|D              S )Nc              3   8   K   | ]  }t        |        y wr`   r  r  s     r2   r  z(_deserialize_sequence.<locals>.<genexpr>  s     P5\,v>Ps   )rp   r0  r1  r"   r   )r  r  r  s   `` r2   _deserialize_sequencer    s=    
 {
#rzz"3i49PCPPPrC   r   c                     t        | d       S )Nc                 V    t        | d      xr | j                  j                         dv S )Nry   )r   rs   r$   r}   )rL   ry   lowerr   s    r2   r   z%_sorted_annotations.<locals>.<lambda>  s%    ga,f1A1A1CGf1f rC   )r   )sorted)r   s    r2   _sorted_annotationsr    s    f rC   c                 
   | sy t        | t              r|t        ||       } t        | t        t        j                  f      r	 | j
                  }|t        ||      } 	 |r.t        |       r#|rd|_        t        j                  t        |       S 	 | j                  t        j                  u ry 	 	 t        d | j                   D              rt#        | j                         dk  rAt%        t'        d | j                   D              ||      }t        j                  t(        |      S t+        j*                  |       }|j                   D cg c]  }|t-        d       k7  s| c}|_        t%        |||      S 	 t/        | dd       t        j0                  u rGt3        | j                         D cg c]  }t%        |||       }}t        j                  t4        |      S 	 | j6                  dk(  r5t%        | j                   d   ||      }	t        j                  t8        |	|      S 	 	 | j6                  dv rt#        | j                         dkD  r?| j                   D 
cg c]  }
t%        |
||       }}
t        j                  t<        ||      S t%        | j                   d	   ||      }t        j                  t>        ||      S 	 d
 }tE        | |      r t        j                  |tE        | |            S t        j                  ||       S # t        $ r | }Y w xY w# t        $ r Y w xY w# t        $ r Y w xY wc c}w # t        $ r Y w xY wc c}w # t        t:        f$ r Y ?w xY wc c}
w # t@        t:        t        tB        f$ r Y w xY w)NTc              3   >   K   | ]  }|t        d       k(  s|  y wr`   r   r  as     r2   r  z<_get_deserialize_callable_from_annotation.<locals>.<genexpr>	  s     AQd4jqA      c              3   >   K   | ]  }|t        d       k7  s|  y wr`   r  r  s     r2   r  z<_get_deserialize_callable_from_annotation.<locals>.<genexpr>  s     Kq1T
?Kr  
__origin__r  r   )Listrx  r  Sequencer   c                 D    ||S 	 t        | |      S # t        $ r Y |S w xY wr`   )r  r  )r  r  s     r2   _deserialize_defaultzG_get_deserialize_callable_from_annotation.<locals>._deserialize_default>  s7     ;J	-lC@@ 	
	s    	)#rp   r   r   r~   
ForwardRef__forward_arg__r)   r   rh   	functoolspartialr}  r  r  Literalany__args__r   rW  r)  r  rR  r   r  Unionr  r  _namer  
IndexErrorr  r  ro   SyntaxErrorr   )r   r  r   r   r~  annotation_copyr  argr  r  dtr  r  r  s                 r2   rW  rW    s   
  *c"-fjAJ *sF$5$567	$#33J #FJ7Ji
+#$$%7DD
  FNN2 3A*--AA:&&'1,&OKJ$7$7KKVUW'# !(()CEXYY"ii
3O3B3K3K'_aqTXY]T^'_O$<_fVXYY B z<.&,,> +:+>+>?
 6c62F
 

   !8-HHv%!J##A&" $$!"  &CC:&&'!+ )11' >b&"M'# ' !(()GI\^deeD##A&L $$%:L&QQ D
 
B'  !57G
TV7WXX1:>>w  	$#J	$     (` 
$ J' 
' z>;? s   K? /L L! .A4L6 ##L6 L1L1L6 (MAM 4M& M!'M& 4M& ?LL	LL!	L.-L.1L6 6	MMMM!M& &NNc                 J   	 |t        |t              ry t        |t        j                        r| t        u r|j
                  xs dS | t        u r#|j
                  rt        |j
                        S d S | t        u r#|j
                  rt        |j
                        S d S | t        u r|j
                  r|j
                  dk(  S d S | |S | t        t        t        fv r | |      S t        | t              r		  | |      S t        | t              r"t        | t              r| j                  |g       S  t        j                   t        j"                  t        j$                  gt        j$                  f   |       |      S # t        $ r |cY S w xY w# t&        $ r}t)               |d }~ww xY w)Nr   true)rp   r   r0  r1  r   r?  r$   rs   r}   r   r   r   
issubclassr   r.  r~   castCallabler  r  r
   )r  r   rO  s      r2   r  r  P  sm   ,=Jue4eRZZ(s"zz'R's"*/**s5::>$>u$,1JJuUZZ(@D@t#/4zzuzzV+CtCLC--&&l$;<#E** lD)ju.M,,UB77Sv{{6??FJJ<+CDlSTYZZ    ,"$!+,s}   F	 1F	 (F	 0F	 2(F	 F	 "F	  F	 F	 F	 !F	 2E8 :1F	 ,AF	 8FF	 FF	 		F"FF"c                     t        |t              r|j                  j                         }||rt	        |      }t        | t
        j                        st        | ||      } t        | |      S )N)r&   )	rp   r   http_responsejsonr   r  r  rW  r  r  r   r  r   r&   s        r2   r.  r.  q  s`     %)*##((*	zfv&lI$5$56@vWYZ%lE::rC   c                 n    	 t        | ||||      S # t        $ r t        j                  dd       Y y w xY w)NzQRan into a deserialization error. Ignoring since this is failsafe deserializationT)exc_info)r.  r
   _LOGGERwarningr  s        r2   _failsafe_deserializer    sE    L%VDD _jn 	 	
 	s     44c                   "   e Zd Zddddedddddej
                  e   dej
                  ej                     dedej
                  ej                  e      dej                  d	ej
                  e   d
edej
                  ej                  eej                  f      fdZedej                  fd       Zedefd       ZddefdZdeddfdZdej                  dej
                  ej                  ej                  gej                  f      fdZy)r   NF)r7  r   is_discriminator
visibilityrn   r&   rq  xmlr7  r   r  r  rn   r&   rq  r  c                    || _         || _        d | _        || _        || _        d| _        || _        || _        || _        ||| _	        y i | _	        y r
  )
r/  rX  rV  rf  rZ   rh   rA  r   r-  r6  )	rc   r7  r   r  r  rn   r&   rq  r  s	            r2   rb   z_RestField.__init__  sX     
 $-1!1%(?%?C		rC   r   c                 8    t        | j                  dd g      d   S )Nrd   r   )r  r/  r   s    r2   _class_typez_RestField._class_type  s    tzz6D62155rC   c                 H    | j                   t        d      | j                   S )NzRest name was never set)rX  r   r   s    r2   rk   z_RestField._rest_name  s&      (677$$$rC   r  c                     |j                  | j                        }||S | j                  r|S t        | j                  t        || j                        |       S )N)r   )r   rk   rh   r.  r/  r  r   )rc   r  r   rN  s       r2   __get__z_RestField.__get__  sJ     wwt'<K>>KDJJ
4(F4PPrC   c                 T   |	 |j                  | j                         y | j                  r>t        |      st	        | j
                  |      }|j                  | j                  |       y |j                  | j                  t        || j                               y # t        $ r Y y w xY wr`   )	r   rk   r   rh   r.  r/  r   r  r   )rc   r  r   s      r2   __set__z_RestField.__set__  s    =0 >>U#$TZZ7OODOOU3E4<<)HI  s   B 	B'&B'r   c                 0    t        || j                  |       S r`   )rW  rV  )rc   r   s     r2   rW  z4_RestField._get_deserialize_callable_from_annotation  s     9T\\SWXXrC   r`   )ry   rz   r{   r   r~   r   r   r  r}   r  r  r  rb   propertyr  rk   r   r  r  rW  r   rC   r2   r   r     s[    &*15!&8<$'+(-=A3 ooc"3 oofoo.	3
 3 OOFKK$453 3 $3 "&3 __V[[fjj9:3. 6VZZ 6 6 %C % %
Q5 QJ5 JD JY **Y	&**vzz)AB	CYrC   Fr7  r   r  rn   r&   rq  r  r7  r   r  rn   rq  r  c           	      &    t        | ||||||      S )Nr  r   r  s          r2   r   r     s&      7 rC   r7  r   r  r  c                 "    t        | |d||      S )NT)r7  r   r  r  r  r  r  s       r2   r   r     s     4dTj^abbrC   modelr^   c                 D    t        j                  t        | |      d      S )zSerialize a model to XML.

    :param Model model: The model to serialize.
    :param bool exclude_readonly: Whether to exclude readonly properties.
    :returns: The XML representation of the model.
    :rtype: str
    unicode)encoding)r0  tostring_get_element)r  r^   s     r2   serialize_xmlr    s     ;;|E+;<yQQrC   r@   parent_metawrapped_elementc                 2   t        |       rgt        | di       }|Ot        |j                  d| j                  j
                        |j                  d      |j                  d            }g }|r=| j                  j                         D cg c]  }t        |      s|j                   }}| j                         D ]  \  }}|r||v rt        | j                  |      }	|	r1t        |	d      j                         }
|
j                  d      
||
d<   nd|i}
|
j                  d      9|j                  d      r(|j                  d      |
d<   |j                  d      |
d<   |
j                  dd      r|j                  t        |||
             |
j                  dd      rt        |      |_        |
j                  dd      r|
j                  d|      }|
j                  d      rNt#        j$                  |
j                  d      |
j                  d             d	|
j                  d      z   d
z   |z   }|j'                  |t        |             |j)                  t+        |||
              |S t-        | t.              r| D cg c]  }t        |||       c}S t-        | t0              rbg }| j                         D ]K  \  }}|j)                  t+        ||||r|j                  d      nd |r|j                  d      nd d             M |S |rnt+        | ||j                  d|j                  d            |j                  d|j                  d            |j                  d|j                  d            d      S t3        d| z         c c}w c c}w )Nr6  r7  prefixr8  r<  Fr?  r;  r9  r:  )r7  r8  r  r=  itemsPrefixitemsNs)r7  r  r8  z$Could not serialize value into xml: )rh   r  _create_xml_elementr   rf   ry   ri   rj   r\   rk   rl   r+  rR  extendr  _get_primitive_type_valuer?  r0  register_namespacer  rB  _get_wrapped_elementrp   r"   rm   r   )r@   r^   r  r  rJ  rv   r[   rw   rx   prop_rest_fieldrK  rL  r   rp  s                 r2   r  r    sL    |Q+
 "1vq{{';';<x(t$O 454I4I4P4P4RfqVbcdVeallfNfGGI #	]DAqA$7-a.C.CQGO#OV<AAC	==(0()If% $QK	 }}T"*z~~d/C",.."6	$&0nnX&>	(#}}[%0&&|A7G'STvu-'@'C${E2$==3==&)))--*A9==QUCVW"Y]]4%883>IH##H.G.JK  &&';A?OQZ'[\G#	]H !THIJ1Q 0+>JJ!TGGI 	DAqMM$$ !7Bkood3?J+//(";PT
	  ##[__V5LM%//-9RS!ooi1FG
 	
 ;a?
@@K gP Ks   NNNrx   metac                 P   t        |r|j                  d      nd |r|j                  d      nd |r|j                  d      nd       }t        | t        t        f      r|j                  t        | ||             |S t        |       rt        | |||       |S t        |       |_	        |S )Nr7  r  r8  )
r  r   rp   rm   r"   r  r  rh   r  r?  )rx   r^   r  r  s       r2   r  r  W  s    
 * d$DHHX,>DdhRVRZRZ[_R`nrO !dD\"|A/?FG
 	 
1Q($@   9;rC   c                 N    | du ry| du ryt        | t              ryt        |       S )NTr  Ffalser   )rp   r   r   )rx   s    r2   r  r  h  s,    DyEz!Uq6MrC   c                     |r|rt        j                  ||       |rt        j                  d|z   dz   | z         S t        j                  |       S )Nr9  r:  )r0  r  r1  )rE  r  r8  s      r2   r  r  r  sD    "
fb)	zz#(S.3.//::c?rC   c                 D    t        j                  |      }t        | |      S r`   )r0  
fromstringr.  )r  r   elements      r2   _deserialize_xmlr  z  s     mmE"Gg..rC   rO  c                    t        | j                        dkD  s&t        | D ch c]  }|j                   c}      dkD  ri }| D ]  }|j                  |j                        mt	        ||j                     t
              r(||j                     j                  t        |             c||j                     t        |      g||j                  <   t        |      ||j                  <    |j                  | j                         |S t        |       dkD  r%g }| D ]  }|j                  t        |              |S | j                  S c c}w )Nr   r   )
r   attribrE  r   rp   r"   rB  rF  r   r?  )rO  r  dict_resultarray_results       r2   rF  rF    s   
188}qC :u :;a?46 	AEuyy)5k%))4d;		*112B52IJ.9%)).DFVW\F]-^K		*)9%)@EII&	A 	188$
1vz02 	9E 0 78	966M' !;s   Er`   )NNNrw  )FNN)NN)nrR  rP   rq   r  r   loggingr;   rer~   r!  email.utilsrM   r   r   r   r   r   r  r   xml.etree.ElementTreeetreeElementTreer0  typing_extensionsr	   r   azure.core.exceptionsr
   
azure.corer   azure.core.pipeliner   azure.core.serializationr   version_infocollections.abcr   	getLoggerry   r  __all__utcrS   TypeVarr   r   r3   r   rB   rW   r\   r   compiler   r   r  r   r   rs   r   r   r   r   r   r   r   r   rt   ru   r  rr   r   r   r   r   r   objectr   r   r}   rh   r  r  r+  r2  r   r  r}  r  r  r  r  r  r  r  rW  r  r.  r  r   r   r   r  r1  r  r  r  r  r  rF  r   rC   r2   <module>r
     sk       
   	    > >  " " "  6 . 0 *v.%
'

H
%
I	V^^D6%Y 6%3 6%r 4  6??3#7 $":[ ":J bjjhiXS(] ;  B3S(](C 3 3"
0v||E8O/L 
0QY 
0	HFLLd3 	H 	H	$FLLd3 	$ 	$),(& #

	!$
JJOO)	  %,: *# 0 01N 0c s C S  
RsFJJ7 Rj,6:: ,$ ,&//#. BC$56CF__\"	)fool3 	)FJJ 	)6:: 	)s\ s\l16??6??+K 1@FOOFOO4T @!	T8	TOOC 	T 
VZZ+	,	TyV__V__%EFyOOC y	Q//&//2	QOOC 	Qv{{6::6 6;;vzz;R  )-l?

l?OOC l? 	%l? __V__fjj\6::%=>?	l?^,//&//6::,

2J"KL,::,H $((,#';**;::; OOC ; 	%	;
 OOC ; ZZ;& $((,#'**:: OOC  	%	
 OOC  ZZ >Y >YF "&-148 #'$)9=
//#
 //&//
* C 01	
 ZZ OOC  " 
S&**_5	6 ZZ. "&-1489=c
//#
c //&//
*c C 01	c
 
S&**_5	6c ZZcR R$ R3 R #AE37	XAzzXAXA S&**_!=>XA __RZZ0	XA
 \\"**fkk"**556XAvzz //&++c6::o6
7 ZZ	"C /**// ZZ/

 rC   