
    =Ki9                         S SK r S SKrS SKJr  S SKJr   " S S\5      r " S S\5      r " S S	\5      r	 " S
 S\5      r
 " S S\5      rg)    N)partial)pformatc                   d    \ rS rSrSr   SS jrS r\S 5       rS r	\S 5       r
SS	 jrS
 rSrg)Resource   z`Represents an API resource type, containing the information required to build urls for requests Nc           
      |   S X4U4;   a  [        S5      eXl        X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl	        U
=(       d    U(       a  US S OSU l
        Xl        Xl        U=(       d    0 R                  5        VVs0 s H  u  nnU[        U 40 UD6_M     snnU l        Xl        g s  snnf )Nz7At least prefix, kind, and api_version must be provided )
ValueErrorprefixgroupapi_versionkind
namespacedverbsname	preferredclientsingular_nameshort_names
categoriesitemsSubresourcesubresources
extra_args)selfr   r   r   r   r   r   r   r   r   singularName
shortNamesr   r   kwargskvs                    ]/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/kubernetes/dynamic/resource.py__init__Resource.__init__   s     Kv..VWW
&	$
	")H4d3BiR%$3?3E22L2L2N
2N$!QA{4%1%%2N
 !	
s   B8c                    SU R                   U R                  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  U R                  U R                  U R                  R                  5        VVs0 s H  u  pXR                  5       _M     snnS.nUR                  U R                  5        U$ s  snnf )Nr   )_typer   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   to_dictupdater   )r   r    srds       r"   r'   Resource.to_dict2   s    kkZZ++II//ZZII ..**//:>:K:K:Q:Q:ST:SQ

_:ST
 	
! Us   Cc                     U R                   (       a&  SR                  U R                   U R                  5      $ U R                  $ )N{}/{})r   formatr   r   s    r"   group_versionResource.group_versionE   s0    ::>>$**d.>.>??    c                 x    SR                  U R                  R                  U R                  U R                  5      $ )Nz<{}({}/{})>)r.   	__class____name__r0   r   r/   s    r"   __repr__Resource.__repr__K   s.    ##DNN$;$;T=O=OQUQZQZ[[r2   c                    SR                  U R                  U R                  5      nU R                  R	                  5       nSR                  X5      SR                  X5      SR                  X5      SR                  X5      S.$ )Nr-   z/{}/{}z/{}/namespaces/{{namespace}}/{}z/{}/{}/{{name}}z(/{}/namespaces/{{namespace}}/{}/{{name}})basenamespaced_basefullnamespaced_full)r.   r   r0   r   lower)r   full_prefixresource_names      r"   urlsResource.urlsN   sm    nnT[[$2D2DE		)OOK?@GGc%,,[HIPPQ\l	
 	
r2   c                    / n0 nU R                   (       a  U(       a  UR                  S5        X$S'   U(       a  UR                  S5        XS'   OUR                  S5        U R                  SR                  U5         R                  " S0 UD6$ )Nr   	namespacer;   r   r9   _ )r   appendr@   joinr.   )r   r   rC   url_typepath_paramss        r"   pathResource.pathY   sr    ??yOOL)'0$OOF#"&OOF#yy(+,33BkBBr2   c                 ~    XR                   ;   a  U R                   U   $ [        [        U R                  U5      U 5      $ N)r   r   getattrr   r   r   s     r"   __getattr__Resource.__getattr__f   s7    $$$$$T**wt{{D1488r2   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )NNNNFNNFNNNNNNN)r5   
__module____qualname____firstlineno____doc__r#   r'   propertyr0   r6   r@   rJ   rP   __static_attributes__rE   r2   r"   r   r      sQ    kGKRVSW!2&    
\ 
 
C9r2   r   c                   l    \ rS rSrSrSS jrS rS rS rSS jr	SS	 jr
S
 rS rS rS rS rS rSrg)ResourceListl   z!Represents a list of API objects Nc                     Xl         X l        X0l        U=(       d    SR                  U5      U l        X@l        X`l        S U l        g )Nz{}List)r   r   r   r.   r   	base_kindbase_resource_lookup_ResourceList__base_resource)r   r   r   r   r]   r   r^   s          r"   r#   ResourceList.__init__o   s:    
&6HOOI6	"$8!#r2   c                    U R                   (       a  U R                   $ U R                  (       aA  U R                  R                  R                  " S0 U R                  D6U l         U R                   $ U R
                  (       aT  U R                  R                  R	                  U R                  U R                  U R
                  S9U l         U R                   $ g )N)r   r   r   rE   )r_   r^   r   	resourcesgetr]   r   r   r/   s    r"   base_resourceResourceList.base_resourcex   s    '''&&#';;#8#8#<#<#Yt?X?X#YD '''^^#';;#8#8#<#<4::[_[k[krv  sA  sA#<  $BD '''r2   c                 6   Uc  [        S5      eUS   nUS   nUR                  S5      nU(       d  [        S5      eU R                  U:w  a%  [        SR                  U R                  U5      5      eUUU Vs/ s H  oPR	                  U5      PM     snS.$ s  snf )zTakes a List body and return a dictionary with the following structure:
{
    'api_version': str,
    'kind': str,
    'items': [{
        'resource': Resource,
        'name': str,
        'namespace': str,
    }]
}
z>You must provide a body when calling methods on a ResourceList
apiVersionr   r   zVThe `items` field in the body must be populated when calling methods on a ResourceListzXMethods on a {} must be called with a body containing the same kind. Received {} instead)r   r   r   )r   rc   r   r.   _item_to_resource)r   bodyr   r   r   items         r"   _items_to_resources ResourceList._items_to_resources   s     <]^^<(F|!uvv99w~~  @D  @I  @I  KO  P  Q  Q '?DEut,,T2uE
 	
 Fs   7Bc                 T   UR                  S0 5      nU R                  5       nU(       d[  UR                  SU R                  5      nUR                  SU R                  5      nU R                  R
                  R                  XES9nUUUR                  S5      UR                  S5      S.$ )Nmetadatarg   r   )r   r   r   rC   )resource
definitionr   rC   )rc   rd   r   r]   r   rb   )r   rj   rn   ro   r   r   s         r"   rh   ResourceList._item_to_resource   s    88J+%%'((<1A1ABK88FDNN3D{{,,00[0TH LL(!k2	
 	
r2   c           	      ,   U(       a  [        S5      eU R                  U5      n[        R                  " U5      nUS    Vs/ s H8  nUS   R                  " SUS   US   =(       d    US.UD6R                  5       PM:     snUS'   [        X5      $ s  snf NzEOperations on ResourceList objects do not support the `name` argumentr   ro   r   rC   r   rC   rE   )r   rk   copydeepcopyrc   r'   ResourceInstancer   ri   r   rC   r   resource_listresponserj   s           r"   rc   ResourceList.get   s    dee006==& &g.
.   gd6ld;>O>\S\g`fgooq.
  //	
   ?Bc           	      ,   U(       a  [        S5      eU R                  U5      n[        R                  " U5      nUS    Vs/ s H8  nUS   R                  " SUS   US   =(       d    US.UD6R                  5       PM:     snUS'   [        X5      $ s  snf rs   )r   rk   ru   rv   deleter'   rw   rx   s           r"   r~   ResourceList.delete   s    dee006==& &g.
. ##jfkARA_V_jcijrrt.
  //	
r|   c           	          U R                  U5      n[        R                  " U5      nUS    Vs/ s H+  n[        US   U5      " SSUS   0UD6R	                  5       PM-     snUS'   [        X5      $ s  snf )Nr   ro   ri   rp   rE   )rk   ru   rv   rN   r'   rw   )r   verbri   r   ry   rz   rj   s          r"   verb_mapperResourceList.verb_mapper   s    006==& &g.
. D$d+Nl1CNvNVVX.
  //	
s   2A2c                 .    U R                   " S/UQ70 UD6$ )Ncreater   r   argsr   s      r"   r   ResourceList.create   s    :4:6::r2   c                 .    U R                   " S/UQ70 UD6$ )Nreplacer   r   s      r"   r   ResourceList.replace   s    	;D;F;;r2   c                 .    U R                   " S/UQ70 UD6$ )Npatchr   r   s      r"   r   ResourceList.patch   s    9$9&99r2   c                 b    SU R                   U R                  U R                  U R                  S.$ )NrZ   )r&   r   r   r   r]   )r   r   r   r]   r/   s    r"   r'   ResourceList.to_dict   s-    #ZZ++II
 	
r2   c                 b    U R                  5       (       a  [        U R                  5       U5      $ g rM   )rd   rN   rO   s     r"   rP   ResourceList.__getattr__   s*    4--/66r2   )__base_resourcer   r]   r^   r   r   r   )r
   v1r
   NNrR   )r5   rS   rT   rU   rV   r#   rd   rk   rh   rc   r~   r   r   r   r   r'   rP   rX   rE   r2   r"   rZ   rZ   l   sA    ,$	
<

0
00;<:
r2   rZ   c                   D    \ rS rSrSrS rS
S jr\S 5       rS r	S r
S	rg)r      zRepresents a subresource of an API resource. This generally includes operations
like scale, as well as status objects for an instantiated resource
c                    Xl         UR                  U l        UR                  U l        UR                  U l        UR	                  S5      U l        UR	                  S5      U l        UR	                  SS 5      =(       d    U R                  R                  S5      S   U l        UR	                  SS5      U l	        UR	                  SS 5      U l
        X l        g )	Nr   r   subresource/   r   Fr   )parentr   r   r   popr   r   splitr   r   r   r   )r   r   r   s      r"   r#   Subresource.__init__   s    mm\\
!--JJv&	JJv&	!::mT:Udiiooc>RST>U **\59ZZ.
 r2   Nc                    U=(       d!    UR                  S0 5      R                  S5      nU R                  R                  R                  U5      nU R                  R                  (       a0  U R                  R                  R                  U R                  X15      nU R                  X#S9nU R                  R                  R                  " SU4SU0UD6$ )Nrn   r   rt   postri   )rc   r   r   serialize_bodyr   ensure_namespacerJ   request)r   ri   r   rC   r   rJ   s         r"   r   Subresource.create   s    ;txx
B/33F;{{!!006;;!!**;;DKKYIyydy8{{!!))&$LTLVLLr2   c                    SR                  U R                  U R                  5      nSR                  XR                  R                  U R
                  5      SR                  XR                  R                  U R
                  5      S.$ )Nr-   z/{}/{}/{{name}}/{}z+/{}/namespaces/{{namespace}}/{}/{{name}}/{})r;   r<   )r.   r   r0   r   r   r   )r   r>   s     r"   r@   Subresource.urls  su    nnT[[$2D2DE(//[[=M=MtO_O_`LSST_alalaqaqsw  tD  tD   E
 	
r2   c                 V    [        [        U R                  R                  U5      U 5      $ rM   )r   rN   r   r   rO   s     r"   rP   Subresource.__getattr__
  s     wt{{1148$??r2   c                     U R                   U R                  U R                  U R                  U R                  S.nUR                  U R                  5        U$ )N)r   r   r   r   r   )r   r   r   r   r   r(   r   )r   r*   s     r"   r'   Subresource.to_dict  sE    IIII++//ZZ
 	
!r2   )
r   r   r   r   r   r   r   r   r   r   )NNN)r5   rS   rT   rU   rV   r#   r   rW   r@   rP   r'   rX   rE   r2   r"   r   r      s1    
!M 
 
@	r2   r   c                   n   ^  \ rS rSrSrS rS rS rS rS r	S r
U 4S	 jrU 4S
 jrS rS rS rSrU =r$ )rw   i  zA parsed instance of an API resource. It exists solely to
ease interaction with API objects by allowing attributes to
be accessed with '.' notation.
c                    Xl         US   nUR                  S5      (       aC  SU;   a=  US   S S nUS   (       d  / US'   US    H  nSU;  a  US   US'   SU;  d  M  X4S'   M     U R                  U5      U l        SU l        g )Nr   Listr   rg   T)r   endswith_ResourceInstance__deserialize
attributes_ResourceInstance__initialised)r   r   instancer   rj   s        r"   r#   ResourceInstance.__init__  s     ==  W%8F#CR(DG$$&! )t+)1,)?D&%#'L	 * ,,X6!r2   c           
      4   [        U[        5      (       a;  [        UR                  5        VVs0 s H  u  p#X R	                  U5      _M     snnS9$ [        U[
        [        45      (       a!  U Vs/ s H  o@R	                  U5      PM     sn$ U$ s  snnf s  snf )N)params)
isinstancedictResourceFieldr   r   listtupler   fieldr    r!   rj   s        r"   __deserializeResourceInstance.__deserialize1  s    eT"" 5:[[])5BTQ%%a((])   e}--9>?&&t,??L) @s   B
0Bc                    [        U[        5      (       a>  UR                  R                  5        VVs0 s H  u  p#X R	                  U5      _M     snn$ [        U[
        [        45      (       a!  U Vs/ s H  o@R	                  U5      PM     sn$ [        U[        5      (       a  UR                  5       $ U$ s  snnf s  snf rM   )	r   r   __dict__r   _ResourceInstance__serializer   r   rw   r'   r   s        r"   __serializeResourceInstance.__serialize;  s    e]++38>>3G3G3I3I41##A&&3I  e}--7<=ut$$T*u==/00==?"L >s   B73B=c                 8    U R                  U R                  5      $ rM   )r   r   r/   s    r"   r'   ResourceInstance.to_dictG  s    00r2   c                     [        U 5      $ rM   )reprr/   s    r"   to_strResourceInstance.to_strJ  s    Dzr2   c           	          SR                  U R                  R                  SR                  [        R
                  " U R                  5       5      R                  S5      5      5      $ )NzResourceInstance[{}]:
  {}z  T)r.   r   r   rG   yaml	safe_dumpr'   
splitlinesr/   s    r"   r6   ResourceInstance.__repr__M  sH    ,33OO  IIdnnT\\^4??EF
 	
r2   c                 v   > SU R                   ;  a  [        [        U ]  U5      $ [	        U R
                  U5      $ Nr   )r   superrw   rP   rN   r   )r   r   r4   s     r"   rP   ResourceInstance.__getattr__S  s3    /4==@)4<TBBt--r2   c                    > SU R                   ;  a  [        [        U ]  X5      $ XR                   ;   a  [        [        U ]  X5      $ X R                  U'   g r   )r   r   rw   __setattr__r   )r   r   valuer4   s      r"   r   ResourceInstance.__setattr__X  sK    /4==@)4<TII]]")4<TII$)OOD!r2   c                      U R                   U   $ rM   r   rO   s     r"   __getitem__ResourceInstance.__getitem__`  s    t$$r2   c                      X R                   U'   g rM   r   r   r   r   s      r"   __setitem__ResourceInstance.__setitem__c  s     %r2   c                     [        [        U 5      5      [        U R                  R                  R                  5       5      -   $ rM   )dirtyper   r   r   keysr/   s    r"   __dir__ResourceInstance.__dir__f  s-    4:doo&>&>&C&C&E!FFFr2   )__initialisedr   r   )r5   rS   rT   rU   rV   r#   r   r   r'   r   r6   rP   r   r   r   r   rX   __classcell__)r4   s   @r"   rw   rw     sF    
"$
1
.
*%&G Gr2   rw   c                   T    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)r   ij  zA parsed instance of an API resource attribute. It exists
solely to ease interaction with API objects by allowing
attributes to be accessed with '.' notation
c                 <    U R                   R                  " S0 UD6  g )NrE   )r   r(   )r   r   s     r"   r#   ResourceField.__init__p  s    &v&r2   c                 ,    [        U R                  5      $ rM   )r   r   r/   s    r"   r6   ResourceField.__repr__s  s    t}}%%r2   c                 4    U R                   UR                   :H  $ rM   r   )r   others     r"   __eq__ResourceField.__eq__v  s    }}..r2   c                 8    U R                   R                  U5      $ rM   )r   rc   rO   s     r"   r   ResourceField.__getitem__y  s    }}  &&r2   c                 d    U R                   R                  U[        U R                   US 5      5      $ rM   )r   rc   rN   rO   s     r"   rP   ResourceField.__getattr__~  s&    }}  wt}}dD'IJJr2   c                      X R                   U'   g rM   r   r   s      r"   r   ResourceField.__setattr__  s    #dr2   c                 r    [        [        U 5      5      [        U R                  R	                  5       5      -   $ rM   )r   r   r   r   r   r/   s    r"   r   ResourceField.__dir__  s'    4:dmm&8&8&:!;;;r2   c              #   \   #    U R                   R                  5        H
  u  pX4v   M     g 7frM   )r   r   )r   r    r!   s      r"   __iter__ResourceField.__iter__  s%     MM'')DA&L *s   *,c                 $    U R                  U 5      $ rM   )_ResourceField__serializer/   s    r"   r'   ResourceField.to_dict  s    %%r2   c                 :   [        U[        5      (       a>  UR                  R                  5        VVs0 s H  u  p#X R	                  U5      _M     snn$ [        U[
        [        45      (       a!  U Vs/ s H  o@R	                  U5      PM     sn$ U$ s  snnf s  snf rM   )r   r   r   r   r   r   r   r   s        r"   r   ResourceField.__serialize  s    e]++38>>3G3G3I3I41##A&&3I  edE]++7<=ut$$T*u== >s   B3BrE   N)r5   rS   rT   rU   rV   r#   r6   r   r   rP   r   r   r   r'   r   rX   rE   r2   r"   r   r   j  s:    
'&/'
K$<&r2   r   )ru   r   	functoolsr   pprintr   objectr   rZ   r   rw   r   rE   r2   r"   <module>r     s[       S9v S9ly8 yx.( .bNGv NGb+F +r2   