
                         b    S SK r S SKrS SKJr  SrSrSr " S S5      rS rS	 r	 " S
 S\
5      rg)    N)clientz:return:z:param bool follow:Listc                       \ rS rSrS rSrg)SimpleNamespace!   c                 :    U R                   R                  U5        g N)__dict__update)selfkwargss     )lib/third_party/kubernetes/watch/watch.py__init__SimpleNamespace.__init__#   s    MM      N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r   !   s    !r   r   c                     [         R                  " U 5      R                  5        H?  nUR                  [        5      (       d  M  U[        [        5      S  R                  5       s  $    g)N )pydocgetdoc
splitlines
startswithPYDOC_RETURN_LABELlenstrip)funclines     r   _find_return_typer#   '   sP    ll4 ++-d)**#()*+1133 . 
r   c              #   $  #    SnU R                  SS9 Hw  n[        U[        5      (       a  UR                  S5      nX-   nUR	                  S5      nUR                  S5      (       d  US   nUS S nOSnU H  nU(       d  M  Uv   M     My     g 7f)Nr   F)decode_contentutf8
)read_chunked
isinstancebytesdecodesplitendswith)respprevseglinesr"   s        r   iter_resp_linesr3   .   s     	$e4c#uJJvc
*CIIdOE<<2YdCRjed	
  5s   A=BBc                   <    \ rS rSrS
S jrS rS rS rS rS r	S	r
g)Watch?   Nc                 `    Xl         SU l        [        R                  " 5       U l        S U l        g )NF)_raw_return_type_stopr   	ApiClient_api_clientresource_version)r   return_types     r   r   Watch.__init__A   s(    'DJ'')D Dr   c                     SU l         g )NT)r9   )r   s    r   stop
Watch.stopG   s	    DJr   c                     U R                   (       a  U R                   $ [        U5      nUR                  [        5      (       a  US [	        [        5      *  $ U$ r	   )r8   r#   r.   TYPE_LIST_SUFFIXr   )r   r!   r=   s      r   get_return_typeWatch.get_return_typeJ   sP    """#D)K,--03/0011r   c                 B    [         [        R                  " U5      ;   a  gg)Nfollowwatch)PYDOC_FOLLOW_PARAMr   r   )r   r!   s     r   get_watch_argument_nameWatch.get_watch_argument_nameR   s    U\\$//r   c                     [         R                  " U5      nUS   US'   U(       a  [        [         R                  " US   5      S9nU R
                  R                  XB5      US'   [        US   S5      (       a   US   R                  R                  U l	        U$ [        US   [        5      (       a%  SUS   ;   a  SUS   S   ;   a  US   S   S   U l	        U$ ! [         a    Us $ f = f)Nobject
raw_object)datametadataresourceVersion)jsonloads
ValueErrorr   dumpsr;   deserializehasattrrP   r<   r*   dict)r   rO   r=   jsobjs        r   unmarshal_eventWatch.unmarshal_eventX   s    ::db (|B|B|,<!=>c%%11#Cbl	Hz	*	* "8 5 5 F F I r(|T**zR\/IHj!99 "8Z 89J KI  ks   C C'&C'c              /   j  #    SU l         U R                  U5      nSX0R                  U5      '   SUS'   SU;   a
  US   U l        SU;   n U" U0 UD6n [	        U5       H)  nU R                  Xt5      v   U R                   (       d  M)    O   UR                  5         UR                  5         U R                  b  U R                  US'   OSU l          U(       d  U R                   (       a  gM  ! UR                  5         UR                  5         U R                  b  U R                  US'   f SU l         f = f7f)a  Watch an API resource and stream the result back via a generator.

:param func: The API function pointer. Any parameter to the function
             can be passed after this parameter.

:return: Event object with these keys:
           'type': The type of event such as "ADDED", "DELETED", etc.
           'raw_object': a dict representing the watched object.
           'object': A model representation of raw_object. The name of
                     model will be determined based on
                     the func's doc string. If it cannot be determined,
                     'object' value will be the same as 'raw_object'.

Example:
    v1 = kubernetes.client.CoreV1Api()
    watch = kubernetes.watch.Watch()
    for e in watch.stream(v1.list_namespace, resource_version=1127):
        type = e['type']
        object = e['object']  # object is one of type return_type
        raw_object = e['raw_object']  # raw_object is a dict
        ...
        if should_stop:
            watch.stop()
FT_preload_contentr<   timeout_secondsN)r9   rD   rJ   r<   r3   r[   closerelease_conn)r   r!   argsr   r=   timeoutsr/   r"   s           r   streamWatch.streamj   s'    4 DJ&&t,K15F''-.!&FV#$%78d!V+H
4"6"d#D)D$$T7
7ZZZ *
 	

  ,'+'<'<&#
$$*	TZZ!  	

  ,'+'<'<&#
$$*s&   AD30C* C* 
A D3*AD00D3)r;   r8   r9   r<   r	   )r   r   r   r   r   r@   rD   rJ   r[   rd   r   r   r   r   r5   r5   ?   s     !$2r   r5   )rR   r   
kubernetesr   r   rI   rC   r   r#   r3   rM   r5   r   r   r   <module>rg      sF   "    *   ! !"]F ]r   