
    Vh1                    r   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ dd	gZ G d
 de      Z G d dee      Z G d dee      Z G d dee      Zd Zd Zd Zd Zd Zd Zd Zd Z  e!ej
                  ejD                        re e_        y ejF                  de$       y)    )annotationsN)intern)MappingSet)to_bytesto_text)is_sequence)NativeJinjaTextAnsibleUnsafewrap_varc                      e Zd ZdZy)r   TN)__name__
__module____qualname__
__UNSAFE__     J/home/dcms/DCMS/lib/python3.12/site-packages/ansible/utils/unsafe_proxy.pyr   r   E   s    Jr   c                      e Zd Z fdZd Zd Zd Z fdZ fdZ fdZ	d Z
 fd	Zd
 Z fdZeZ fdZ fdZ fdZd& fd	Zd' fd	Z fdZ fdZd( fd	Z fdZd& fd	Z fdZd) fd	Z fdZd* fd	Zd& fd	Z fdZd) fd	Zd+ fd	Z d+ fd	Z!d, fd	Z"d) fd 	Z# fd!Z$ fd"Z%d- fd#	Z& fd$Z' fd%Z( xZ)S ).AnsibleUnsafeBytesc                     t         |          S N)super	__bytes__self	__class__s    r   _strip_unsafez AnsibleUnsafeBytes._strip_unsafeJ   s    w ""r   c               <    | j                   | j                         ffS r   r   r   r   s    r   
__reduce__zAnsibleUnsafeBytes.__reduce__M       !3!3!5 788r   c               "    | j                         S r   )decoder!   s    r   __str__zAnsibleUnsafeBytes.__str__P   s    {{}r   c                   | S r   r   r!   s    r   r   zAnsibleUnsafeBytes.__bytes__S       r   c               2    t        t        | 	               S r   )AnsibleUnsafeTextr   __repr__r   s    r   r+   zAnsibleUnsafeBytes.__repr__V   s     !1!344r   c               4    t        t        | 	  |            S r   )r*   r   
__format__r   format_specr   s     r   r-   zAnsibleUnsafeBytes.__format__Y   s     !3K!@AAr   c               ~    t        |t              rt        |   |      S | j	                  t        |   |            S r   )
isinstanceintr   __getitem__r   r   keyr   s     r   r3   zAnsibleUnsafeBytes.__getitem__\   s6    c37&s++~~eg1#677r   c                   | d d d   S Nr   r!   s    r   __reversed__zAnsibleUnsafeBytes.__reversed__a       DbDzr   c               @    | j                  t        | 	  |            S r   r   r   __add__r   valuer   s     r   r=   zAnsibleUnsafeBytes.__add__d       ~~egoe455r   c               B    | j                  |j                  |             S r   r   r=   r   r?   s     r   __radd__zAnsibleUnsafeBytes.__radd__g       ~~emmD122r   c               @    | j                  t        | 	  |            S r   r   r   __mul__r>   s     r   rH   zAnsibleUnsafeBytes.__mul__j   r@   r   c               @    | j                  t        | 	  |            S r   r   r   __mod__r>   s     r   rK   zAnsibleUnsafeBytes.__mod__o   r@   r   c               @    | j                  t        | 	  |            S r   r   r   __rmod__r>   s     r   rN   zAnsibleUnsafeBytes.__rmod__r       ~~eg.u566r   c               >    | j                  t        | 	               S r   r   r   
capitalizer   s    r   rR   zAnsibleUnsafeBytes.capitalizeu       ~~eg0233r   c               B    | j                  t        | 	  ||            S r   r   r   centerr   widthfillcharr   s      r   rV   zAnsibleUnsafeBytes.centerx       ~~egnUH=>>r   c               8    t        t        | 	  ||            S N)encodingerrors)r*   r   r%   r   r]   r^   r   s      r   r%   zAnsibleUnsafeBytes.decode{   s     &!QRRr   c               @    | j                  t        | 	  |            S r   r   r   removeprefixr   prefixr   s     r   rb   zAnsibleUnsafeBytes.removeprefix~       ~~eg26:;;r   c               @    | j                  t        | 	  |            S r   r   r   removesuffixr   suffixr   s     r   rh   zAnsibleUnsafeBytes.removesuffix   re   r   c               @    | j                  t        | 	  |            S r   r   r   
expandtabsr   tabsizer   s     r   rm   zAnsibleUnsafeBytes.expandtabs       ~~eg09::r   c               @    | j                  t        | 	  |            S r   r   r   join)r   iterable_of_bytesr   s     r   rs   zAnsibleUnsafeBytes.join   s    ~~egl+<=>>r   c               B    | j                  t        | 	  ||            S r   r   r   ljustrW   s      r   rw   zAnsibleUnsafeBytes.ljust       ~~egmE8<==r   c               >    | j                  t        | 	               S r   r   r   lowerr   s    r   r{   zAnsibleUnsafeBytes.lower       ~~egmo..r   c               @    | j                  t        | 	  |            S r   r   r   lstripr   charsr   s     r   r   zAnsibleUnsafeBytes.lstrip       ~~egnU344r   c               `    | j                   t        fdt        |   |      D              S )Nc              3  .   K   | ]  } |        y wr   r   .0eclss     r   	<genexpr>z/AnsibleUnsafeBytes.partition.<locals>.<genexpr>        <SV<   r   tupler   	partitionr   sepr   r   s     @r   r   zAnsibleUnsafeBytes.partition   '    nn<UW%6s%;<<<r   c               D    | j                  t        | 	  |||            S r   r   r   replacer   oldnewcountr   s       r   r   zAnsibleUnsafeBytes.replace       ~~egoc3>??r   c               B    | j                  t        | 	  ||            S r   r   r   rjustrW   s      r   r   zAnsibleUnsafeBytes.rjust   rx   r   c               `    | j                   t        fdt        |   |      D              S )Nc              3  .   K   | ]  } |        y wr   r   r   s     r   r   z0AnsibleUnsafeBytes.rpartition.<locals>.<genexpr>        =SV=r   r   r   r   
rpartitionr   s     @r   r   zAnsibleUnsafeBytes.rpartition   '    nn=UW%7%<===r   c               @    | j                  t        | 	  |            S r   r   r   rstripr   s     r   r   zAnsibleUnsafeBytes.rstrip   r   r   c               p    | j                   }t        | 	  ||      D cg c]
  } ||       c}S c c}w N)r   maxsplitr   r   splitr   r   r   r   r   r   s        r   r   zAnsibleUnsafeBytes.split   1    nn %# IJ1AJJJ   3c               p    | j                   }t        | 	  ||      D cg c]
  } ||       c}S c c}w r   r   r   rsplitr   s        r   r   zAnsibleUnsafeBytes.rsplit   1    nn %3 JK1AKKKr   c               n    | j                   }t        | 	  |      D cg c]
  } ||       c}S c c}w N)keependsr   r   
splitlinesr   r   r   r   r   s       r   r   zAnsibleUnsafeBytes.splitlines   1    nn % 2H 2 EF1AFFF   2c               @    | j                  t        | 	  |            S r   r   r   stripr   s     r   r   zAnsibleUnsafeBytes.strip       ~~egmE233r   c               >    | j                  t        | 	               S r   r   r   swapcaser   s    r   r   zAnsibleUnsafeBytes.swapcase       ~~eg.011r   c               >    | j                  t        | 	               S r   r   r   titler   s    r   r   zAnsibleUnsafeBytes.title   r|   r   c               D    | j                  t        | 	  ||            S )N)deleter   r   	translate)r   tabler   r   s      r   r   zAnsibleUnsafeBytes.translate   s!    ~~eg/f/EFFr   c               >    | j                  t        | 	               S r   r   r   upperr   s    r   r   zAnsibleUnsafeBytes.upper   r|   r   c               @    | j                  t        | 	  |            S r   r   r   zfillr   rX   r   s     r   r   zAnsibleUnsafeBytes.zfill   r   r   )    zutf-8strict   r   r8   r7   F)r   )*r   r   r   r   r"   r&   r   r+   r-   r3   r9   r=   rD   rH   __rmul__rK   rN   rR   rV   r%   rb   rh   rm   rs   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__r   s   @r   r   r   I   s    #95B8
636 H674?S<<;?>/5=@>>5KLG42/G/4 4r   r   c                      e Zd Z fdZd Zd Z fdZ fdZ fdZ fdZ	d Z
 fd	Zd
 Z fdZeZ fdZ fdZ fdZ fdZd) fd	Zd* fd	Z fdZ fdZd+ fd	Z fdZ fdZ fdZd) fd	Z fdZd, fd	Z fdZd- fd	Zd) fd	Z  fdZ!d, fd	Z"d. fd 	Z#d. fd!	Z$d/ fd"	Z%d, fd#	Z& fd$Z' fd%Z( fd&Z) fd'Z* fd(Z+ xZ,S )0r*   c                    t         |          S r   )r   r&   r   s    r   r   zAnsibleUnsafeText._strip_unsafe   s    w  r   c               <    | j                   | j                         ffS r   r    r!   s    r   r"   zAnsibleUnsafeText.__reduce__   r#   r   c                   | S r   r   r!   s    r   r&   zAnsibleUnsafeText.__str__   r(   r   c               >    | j                  t        | 	               S r   )r   r   r+   r   s    r   r+   zAnsibleUnsafeText.__repr__   r   r   c               @    | j                  t        | 	  |            S r   )r   r   r-   r.   s     r   r-   zAnsibleUnsafeText.__format__   s    ~~eg0=>>r   c               @    | j                  t        | 	  |            S r   )r   r   r3   r4   s     r   r3   zAnsibleUnsafeText.__getitem__   s    ~~eg1#677r   c               L    | j                   fdt        | 	         D        S )Nc              3  .   K   | ]  } |        y wr   r   )r   cr   s     r   r   z-AnsibleUnsafeText.__iter__.<locals>.<genexpr>   s     31A3r   )r   r   __iter__)r   r   r   s    @r   r   zAnsibleUnsafeText.__iter__   s    nn3 0 233r   c                   | d d d   S r7   r   r!   s    r   r9   zAnsibleUnsafeText.__reversed__   r:   r   c               @    | j                  t        | 	  |            S r   r<   r>   s     r   r=   zAnsibleUnsafeText.__add__   r@   r   c               B    | j                  |j                  |             S r   rB   rC   s     r   rD   zAnsibleUnsafeText.__radd__   rE   r   c               @    | j                  t        | 	  |            S r   rG   r>   s     r   rH   zAnsibleUnsafeText.__mul__   r@   r   c               @    | j                  t        | 	  |            S r   rJ   r>   s     r   rK   zAnsibleUnsafeText.__mod__   r@   r   c               @    | j                  t        | 	  |            S r   rM   r>   s     r   rN   zAnsibleUnsafeText.__rmod__   rO   r   c               >    | j                  t        | 	               S r   rQ   r   s    r   rR   zAnsibleUnsafeText.capitalize   rS   r   c               >    | j                  t        | 	               S r   )r   r   casefoldr   s    r   r   zAnsibleUnsafeText.casefold   r   r   c               B    | j                  t        | 	  ||            S r   rU   rW   s      r   rV   zAnsibleUnsafeText.center   rZ   r   c               8    t        t        | 	  ||            S r\   )r   r   encoder_   s      r   r   zAnsibleUnsafeText.encode   s    !%'.(6."RSSr   c               @    | j                  t        | 	  |            S r   ra   rc   s     r   rb   zAnsibleUnsafeText.removeprefix   re   r   c               @    | j                  t        | 	  |            S r   rg   ri   s     r   rh   zAnsibleUnsafeText.removesuffix   re   r   c               @    | j                  t        | 	  |            S r   rl   rn   s     r   rm   zAnsibleUnsafeText.expandtabs   rp   r   c               @    | j                  t        |   |i |      S r   )r   r   format)r   argskwargsr   s      r   r   zAnsibleUnsafeText.format  s     ~~egnd=f=>>r   c               @    | j                  t        | 	  |            S r   )r   r   
format_map)r   mappingr   s     r   r   zAnsibleUnsafeText.format_map  rp   r   c               @    | j                  t        | 	  |            S r   rr   )r   iterabler   s     r   rs   zAnsibleUnsafeText.join	  s    ~~egl8455r   c               B    | j                  t        | 	  ||            S r   rv   rW   s      r   rw   zAnsibleUnsafeText.ljust  rx   r   c               >    | j                  t        | 	               S r   rz   r   s    r   r{   zAnsibleUnsafeText.lower  r|   r   c               @    | j                  t        | 	  |            S r   r~   r   s     r   r   zAnsibleUnsafeText.lstrip  r   r   c               `    | j                   t        fdt        |   |      D              S )Nc              3  .   K   | ]  } |        y wr   r   r   s     r   r   z.AnsibleUnsafeText.partition.<locals>.<genexpr>  r   r   r   r   s     @r   r   zAnsibleUnsafeText.partition  r   r   c               D    | j                  t        | 	  |||            S r   r   r   s       r   r   zAnsibleUnsafeText.replace  r   r   c               B    | j                  t        | 	  ||            S r   r   rW   s      r   r   zAnsibleUnsafeText.rjust  rx   r   c               `    | j                   t        fdt        |   |      D              S )Nc              3  .   K   | ]  } |        y wr   r   r   s     r   r   z/AnsibleUnsafeText.rpartition.<locals>.<genexpr>!  r   r   r   r   s     @r   r   zAnsibleUnsafeText.rpartition  r   r   c               @    | j                  t        | 	  |            S r   r   r   s     r   r   zAnsibleUnsafeText.rstrip#  r   r   c               p    | j                   }t        | 	  ||      D cg c]
  } ||       c}S c c}w r   r   r   s        r   r   zAnsibleUnsafeText.split&  r   r   c               p    | j                   }t        | 	  ||      D cg c]
  } ||       c}S c c}w r   r   r   s        r   r   zAnsibleUnsafeText.rsplit*  r   r   c               n    | j                   }t        | 	  |      D cg c]
  } ||       c}S c c}w r   r   r   s       r   r   zAnsibleUnsafeText.splitlines.  r   r   c               @    | j                  t        | 	  |            S r   r   r   s     r   r   zAnsibleUnsafeText.strip2  r   r   c               >    | j                  t        | 	               S r   r   r   s    r   r   zAnsibleUnsafeText.swapcase5  r   r   c               >    | j                  t        | 	               S r   r   r   s    r   r   zAnsibleUnsafeText.title8  r|   r   c               @    | j                  t        | 	  |            S r   r   )r   r   r   s     r   r   zAnsibleUnsafeText.translate;  s    ~~eg/677r   c               >    | j                  t        | 	               S r   r   r   s    r   r   zAnsibleUnsafeText.upper>  r|   r   c               @    | j                  t        | 	  |            S r   r   r   s     r   r   zAnsibleUnsafeText.zfillA  r   r   ) r   r   r   r   r7   r   )-r   r   r   r   r"   r&   r+   r-   r3   r   r9   r=   rD   rH   r   rK   rN   rR   r   rV   r   rb   rh   rm   r   r   rs   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r   r*   r*      s    !92?84636 H6742?T<<;?;6>/5=@>>5KLG42/8/4 4r   r*   c                      e Zd Zy)NativeJinjaUnsafeTextN)r   r   r   r   r   r   r  r  E  s    r   r  c                B    t        d | j                         D              S )Nc              3  N   K   | ]  \  }}t        |      t        |      f  y wr   r   )r   kitems      r   r   z_wrap_dict.<locals>.<genexpr>J  s!     G'!T!htn-Gs   #%)dictitemsvs    r   
_wrap_dictr  I  s    GQWWYGGGr   c                6    t        |       } |d | D              S )z^Wraps a sequence with unsafe, not meant for strings, primarily
    ``tuple`` and ``list``
    c              3  2   K   | ]  }t        |        y wr   r  r   r  s     r   r   z!_wrap_sequence.<locals>.<genexpr>R  s     /T(4./   )type)r  v_types     r   _wrap_sequencer$  M  s     !WF/Q///r   c                &    t        d | D              S )Nc              3  2   K   | ]  }t        |        y wr   r  r   s     r   r   z_wrap_set.<locals>.<genexpr>V  s     ,$x~,r!  )setr  s    r   	_wrap_setr(  U  s    ,!,,,r   c                |   | t        | t              r| S t        | t              rt        |       } | S t        | t              rt        |       } | S t        |       rt        |       } | S t        | t              rt        |       } | S t        | t              rt        |       } | S t        | t              rt        |       } | S r   )r1   r   r   r  r   r(  r	   r$  r
   r  bytesr   strr*   r  s    r   r   r   Y  s    yJq-0!WqM H 
As	aL H 
Q1 H 
A	'!!$ H 
Au	q! H 
As	a Hr   c                 *    t        t        | i |      S r   )r   r   r   r   s     r   to_unsafe_bytesr.  m  s    Hd-f-..r   c                 *    t        t        | i |      S r   )r   r   r-  s     r   to_unsafe_textr0  q  s    GT,V,--r   c                     t        | dd      du S )Nr   FT)getattr)objs    r   
_is_unsafer4  u  s    3e,44r   c                X    t        | t              r| j                         } t        |       S )zThis is a monkey patch for ``sys.intern`` that will strip
    the unsafe wrapper prior to interning the string.

    This will not exist in future versions.
    )r1   r*   r   _sys_intern)strings    r   _internr8  y  s(     &+,%%'vr   z>skipped sys.intern patch; appears to have already been patched)%
__future__r   systypeswarningsr   r6  collections.abcr   r   +ansible.module_utils.common.text.convertersr   r   'ansible.module_utils.common.collectionsr	   ansible.utils.native_jinjar
   __all__objectr   r*  r   r+  r*   r  r  r$  r(  r   r.  r0  r4  r8  r1   BuiltinFunctionTypewarnRuntimeWarningr   r   r   <module>rF     s   j # 
   % ( I ? 6 J
'F w4 w4t4] 4D	O-> 	H0-(/.5 cjj%334CJHMMRTbcr   