
    [j~)                         d dl Z d dlZd dlZd dlmZ dZdZdZej        d          dk    Z	e	rd dl
Z
e
j        Znd dlZej        j        Z G d d          Zd	 Zd
 Z G d de          ZdS )    N)clientz:rtype:z:param bool follow:List   c                       e Zd Zd ZdS )SimpleNamespacec                 :    | j                             |           d S N)__dict__update)selfkwargss     S/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/kubernetes/watch/watch.py__init__zSimpleNamespace.__init__+   s    V$$$$$    N)__name__
__module____qualname__r    r   r   r   r   )   s#        % % % % %r   r   c                     t          j        |                                           D ]L}|                    t                    r0|t          t                    d                                          c S MdS )N )pydocgetdoc
splitlines
startswithPYDOC_RETURN_LABELlenstrip)funclines     r   _find_return_typer    /   sr    T""--// : :??-.. 	:.//0017799999	:2r   c              #   F  K   t                      }|                     d d          D ]}t          |t                    r|                    |           n^t          |t
                    r)|                    |                    d                     n t          dt          |           d          |	                    d          }|dk    rR|d |         
                    dd	          }||d
z   d          }|r|V  ndV  |	                    d          }|dk    Rd S )NF)amtdecode_contentzutf-8zReceived invalid segment type, z-, from stream. Accepts only 'str' or 'bytes'.   
replace)errors   r   )	bytearraystream
isinstancebytesextendstrencode	TypeErrortypefinddecode)respbuffersegmentnext_newliner   s        r   iter_resp_linesr8   6   sR     [[F;;4;>> . . gu%% 	pMM'""""%% 	pMM'..112222n$w--nnnp p p {{5))b  -<-(//	 0 + +DLNOO,F 



!;;u--L b  %. .r   c                   4    e Zd ZddZd Zd Zd Zd Zd ZdS )	WatchNc                 `    || _         d| _        t          j                    | _        d | _        d S )NF)_raw_return_type_stopr   	ApiClient_api_clientresource_version)r   return_types     r   r   zWatch.__init__X   s0     +
!+-- $r   c                    d| _         t          | d          rh| j        rcdd l}	 t	          | j        dd           }|rt	          |dd           nd }|r|                    |j                   d S d S # t          $ r Y d S w xY wd S d S )NT_respr   
connectionsock)r=   hasattrrC   socketgetattrshutdown	SHUT_RDWR	Exception)r   rG   connrE   s       r   stopz
Watch.stop^   s    
4!! 	dj 	MMM tz<>>6:DwtVT222 4MM&"2333334 4   	 	 	 	s   AA/ /
A=<A=c                     | j         r| j         S t          |          }|                    t                    r|d t	          t                              S |S r	   )r<   r    endswithTYPE_LIST_SUFFIXr   )r   r   rA   s      r   get_return_typezWatch.get_return_typep   s]      	)(('-- 011 	86%5!6!6 6677r   c                 @    t           t          j        |          v rdS dS )Nfollowwatch)PYDOC_FOLLOW_PARAMr   r   )r   r   s     r   get_watch_argument_namezWatch.get_watch_argument_namex   s!    d!3!33387r   c                    |r|                                 rd S 	 t          j        |          }|d         |d<   |s|S |d         dk    rZt          |d         t                    r>d|d         v r4|d         d         }t          |t                    rd|v r|d         | _        n|d         dk    rt          t          j        |d                             }| j        	                    ||          |d<   t          |d         d          r|d         j        j        | _        nNt          |d         t                    r3d|d         v r)d|d         d         v r|d         d         d         | _        |S # t          j        $ r Y d S w xY w)	Nobject
raw_objectr1   BOOKMARKmetadataresourceVersionERROR)data)isspacejsonloadsr+   dictr@   r   dumpsr?   deserializerF   r[   JSONDecodeError)r   r^   rA   jsr[   objs         r   unmarshal_eventzWatch.unmarshal_event~   s    	t||~~ 	4	D!!B!(|B| 	&zZ'' blD11 LjBxL6P6P!(|J7H!(D11 L6G86S6S089J0K-Fw&&%4:b6F+G+GHHH#/;;CMM82h<44 +,.xL,A,RD)) !Ht44 +r(|9S9S+r(|J/GGG,.xL,D)-+D)I# 	 	 	44	s   "E3 D5E3 3FFc              /     K   d| _         |                     |          }|                     |          }d||<   d|d<   d|v r|d         | _        d|v }d}|                    dd          }	  ||i |}	|	| _        	 t          |	          D ]}
|dk    r|r|                     |
|          }nt          j	        |
          }t          |t                    rg|d         d	k    r[|d
         }|s|s|d         t          k    rd} nV|d         d|d         }t          j                            |d         |          d}|V  n|
r|
V  ndV  | j         r n|	                                 |	                                 d| _        | j        | j        |d<   nUd| _         nM# |	                                 |	                                 d| _        | j        | j        |d<   nd| _         w xY w| j         s|rdS )aj  Watch an API resource and stream the result back via a generator.

        Note that watching an API resource can expire. The method tries to
        resume automatically once from the last result, but if that last result
        is too old as well, an `ApiException` exception will be thrown with
        ``code`` 410. In that case you have to recover yourself, probably
        by listing the API resource to obtain the latest state and then
        watching from that state on by setting ``resource_version`` to
        one returned from listing.

        :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_secondsrd   rT   r1   r]   rY   codereasonz: message)statusrm   r   N)r=   rQ   rV   r@   poprC   r8   rh   r`   ra   r+   rb   HTTP_STATUS_GONEr   restApiExceptioncloserelease_conn)r   r   argsr   rA   	watch_argdisable_retriesretry_after_410rd   r4   r   eventrg   rm   s                 r   r*   zWatch.stream   s     D 
**4000066	 y%*!"''$*+=$>D! -6jj55/	4(((DDJ)&+D11    D !G++& 5$($8$8{$K$KEE %)Jt$4$4E%eT22 ($)&MW$<$<"'"5C $3 G? G$'K3C$C$C26 % %(MMM3y>>*C&,k&>&>+.v;v '? 'G 'G !G /4O"'KKKK %"&JJJJ"$HHHz  

!!###!
(4151FF-..!%DJJ 

!!###!
(4151FF-..!%DJ%%%%z _ _/	s   <CF! !A
G+r	   )	r   r   r   r   rM   rQ   rV   rh   r*   r   r   r   r:   r:   V   sy        % % % %  $      @^ ^ ^ ^ ^r   r:   )r`   r   sys
kubernetesr   r   rU   rP   version_infoPY2httplibGONErq   http
HTTPStatusr   r    r8   rX   r:   r   r   r   <module>r      s     



       *    
qQ ,NNN|KKK+% % % % % % % %  . . .@f f f f fF f f f f fr   