o nnh1@sddlmZddlZddlZddlZddlmZddlmZm Z ddl m Z m Z ddl mZddlmZdd gZGd ddeZGd d d eeZGd ddeeZGdddeeZddZddZddZdd ZddZddZddZddZ e!ejej"re e_dSe#d e$dS)!) annotationsN)intern)MappingSet)to_bytesto_text) is_sequence)NativeJinjaText AnsibleUnsafewrap_varc@seZdZdZdS)r TN)__name__ __module__ __qualname__ __UNSAFE__rrE/usr/local/lib/python3.10/dist-packages/ansible/utils/unsafe_proxy.pyr EscseZdZfddZddZddZddZfd d Zfd d Zfd dZ ddZ fddZ ddZ fddZ e ZfddZfddZfddZdSfdd ZdTfd"d# Zfd$d%Zfd&d'ZdUfd)d* Zfd+d,ZdSfd-d. Zfd/d0ZdVfd2d3 Zfd4d5ZdWfd7d8 ZdSfd9d: Zfd;d<ZdVfd=d> ZdXfd?d@ Z dXfdAdB Z!dYfdDdE Z"dVfdFdG Z#fdHdIZ$fdJdKZ%dZfdMdN Z&fdOdPZ'fdQdRZ(Z)S)[AnsibleUnsafeBytesc tSN)super __bytes__self __class__rr _strip_unsafeJ z AnsibleUnsafeBytes._strip_unsafecC|j|ffSrrrrrrr __reduce__MzAnsibleUnsafeBytes.__reduce__cCs|Sr)decoderrrr__str__PszAnsibleUnsafeBytes.__str__cC|SrrrrrrrSzAnsibleUnsafeBytes.__bytes__csttSr)AnsibleUnsafeTextr__repr__rrrrr&VzAnsibleUnsafeBytes.__repr__cstt|Sr)r%r __format__r format_specrrrr(Yr zAnsibleUnsafeBytes.__format__cs(t|tr t|S|t|Sr) isinstanceintr __getitem__rrkeyrrrr-\s  zAnsibleUnsafeBytes.__getitem__cC|dddSNrrrrr __reversed__ar'zAnsibleUnsafeBytes.__reversed__c|t|Srrr__add__rvaluerrrr6dzAnsibleUnsafeBytes.__add__cC|||Srrr6r7rrr__radd__gr zAnsibleUnsafeBytes.__radd__cr4rrr__mul__r7rrrr>jr9zAnsibleUnsafeBytes.__mul__cr4rrr__mod__r7rrrr@or9zAnsibleUnsafeBytes.__mod__cr4rrr__rmod__r7rrrrBrr9zAnsibleUnsafeBytes.__rmod__c|tSrrr capitalizerrrrrEur zAnsibleUnsafeBytes.capitalize c|t||SrrrcenterrwidthfillcharrrrrIxzAnsibleUnsafeBytes.centerutf-8strictcttj||dSN)encodingerrors)r%rr!rrRrSrrrr!{rMzAnsibleUnsafeBytes.decodecr4rrr removeprefixrprefixrrrrV~r9zAnsibleUnsafeBytes.removeprefixcr4rrr removesuffixrsuffixrrrrZr9zAnsibleUnsafeBytes.removesuffixcr4rrr expandtabsrtabsizerrrr_r9zAnsibleUnsafeBytes.expandtabscr4rrrjoin)riterable_of_bytesrrrrcr9zAnsibleUnsafeBytes.joincrGrrrljustrJrrrrfrMzAnsibleUnsafeBytes.ljustcrCrrrlowerrrrrrhr zAnsibleUnsafeBytes.lowerNcr4rrrlstriprcharsrrrrjr9zAnsibleUnsafeBytes.lstripc$|jtfddt|DS)Nc3|]}|VqdSrr.0eclsrr z/AnsibleUnsafeBytes.partition..rtupler partitionrseprrrrrxzAnsibleUnsafeBytes.partitionr2c|t|||Srrrreplaceroldnewcountrrrr~zAnsibleUnsafeBytes.replacecrGrrrrjustrJrrrrrMzAnsibleUnsafeBytes.rjustcrm)Nc3rnrrrorrrrrtruz0AnsibleUnsafeBytes.rpartition..rrwr rpartitionryrrrrrr{zAnsibleUnsafeBytes.rpartitioncr4rrrrstriprkrrrrr9zAnsibleUnsafeBytes.rstripc$|jfddtj||dDS)Ncg|]}|qSrrrorrrr z,AnsibleUnsafeBytes.split..rzmaxsplitrrsplitrrzrrrrrrr{zAnsibleUnsafeBytes.splitcr)Ncrrrrorrrrrrz-AnsibleUnsafeBytes.rsplit..rrrrsplitrrrrrrr{zAnsibleUnsafeBytes.rsplitFc"|jfddtj|dDS)Ncrrrrorrrrrrz1AnsibleUnsafeBytes.splitlines..keependsrr splitlinesrrrrrrrzAnsibleUnsafeBytes.splitlinescr4rrrstriprkrrrrr9zAnsibleUnsafeBytes.stripcrCrrrswapcaserrrrrr zAnsibleUnsafeBytes.swapcasecrCrrrtitlerrrrrr zAnsibleUnsafeBytes.titlecs|tj||dS)N)deleterr translate)rtablerrrrrrzAnsibleUnsafeBytes.translatecrCrrrupperrrrrrr zAnsibleUnsafeBytes.uppercr4rrrzfillrrKrrrrr9zAnsibleUnsafeBytes.zfill)rFrNrOr]rr2r1F)r)*r r rrrr"rr&r(r-r3r6r<r>__rmul__r@rBrErIr!rVrZr_rcrfrhrjrxr~rrrrrrrrrrrr __classcell__rrrrrIsN                  rcseZdZfddZddZddZfddZfd d Zfd d Zfd dZ ddZ fddZ ddZ fddZ e ZfddZfddZfddZfddZdXfd d! ZdYfd$d% Zfd&d'Zfd(d)ZdZfd+d, Zfd-d.Zfd/d0Zfd1d2ZdXfd3d4 Zfd5d6Zd[fd8d9 Zfd:d;Zd\fd=d> ZdXfd?d@ Z fdAdBZ!d[fdCdD Z"d]fdEdF Z#d]fdGdH Z$d^fdJdK Z%d[fdLdM Z&fdNdOZ'fdPdQZ(fdRdSZ)fdTdUZ*fdVdWZ+Z,S)_r%crr)rr"rrrrrrzAnsibleUnsafeText._strip_unsafecCrrrrrrrrr zAnsibleUnsafeText.__reduce__cCr#rrrrrrr"r$zAnsibleUnsafeText.__str__crCr)rrr&rrrrr&r zAnsibleUnsafeText.__repr__cr4r)rrr(r)rrrr(r9zAnsibleUnsafeText.__format__cr4r)rrr-r.rrrr-r9zAnsibleUnsafeText.__getitem__cs|jfddtDS)Nc3rnrr)rpcrrrrrtruz-AnsibleUnsafeText.__iter__..)rr__iter__rrrrrrszAnsibleUnsafeText.__iter__cCr0r1rrrrrr3r'zAnsibleUnsafeText.__reversed__cr4rr5r7rrrr6r9zAnsibleUnsafeText.__add__cCr:rr;r7rrrr<r zAnsibleUnsafeText.__radd__cr4rr=r7rrrr>r9zAnsibleUnsafeText.__mul__cr4rr?r7rrrr@r9zAnsibleUnsafeText.__mod__cr4rrAr7rrrrBr9zAnsibleUnsafeText.__rmod__crCrrDrrrrrEr zAnsibleUnsafeText.capitalizecrCr)rrcasefoldrrrrrr zAnsibleUnsafeText.casefold crGrrHrJrrrrIrMzAnsibleUnsafeText.centerrNrOcrPrQ)rrencoderTrrrrrMzAnsibleUnsafeText.encodecr4rrUrWrrrrVr9zAnsibleUnsafeText.removeprefixcr4rrYr[rrrrZr9zAnsibleUnsafeText.removesuffixr]cr4rr^r`rrrr_r9zAnsibleUnsafeText.expandtabscs|tj|i|Sr)rrformat)rargskwargsrrrrszAnsibleUnsafeText.formatcr4r)rr format_map)rmappingrrrrr9zAnsibleUnsafeText.format_mapcr4rrb)riterablerrrrc r9zAnsibleUnsafeText.joincrGrrerJrrrrf rMzAnsibleUnsafeText.ljustcrCrrgrrrrrhr zAnsibleUnsafeText.lowerNcr4rrirkrrrrjr9zAnsibleUnsafeText.lstripcrm)Nc3rnrrrorrrrrtruz.AnsibleUnsafeText.partition..rvryrrrrrxr{zAnsibleUnsafeText.partitionr2cr|rr}rrrrr~rzAnsibleUnsafeText.replacecrGrrrJrrrrrMzAnsibleUnsafeText.rjustcrm)Nc3rnrrrorrrrrt!ruz/AnsibleUnsafeText.rpartition..rryrrrrrr{zAnsibleUnsafeText.rpartitioncr4rrrkrrrr#r9zAnsibleUnsafeText.rstripcr)Ncrrrrorrrrr(rz+AnsibleUnsafeText.split..rrrrrrrr&r{zAnsibleUnsafeText.splitcr)Ncrrrrorrrrr,rz,AnsibleUnsafeText.rsplit..rrrrrrrr*r{zAnsibleUnsafeText.rsplitFcr)Ncrrrrorrrrr0rz0AnsibleUnsafeText.splitlines..rrrrrrrr.rzAnsibleUnsafeText.splitlinescr4rrrkrrrr2r9zAnsibleUnsafeText.stripcrCrrrrrrr5r zAnsibleUnsafeText.swapcasecrCrrrrrrr8r zAnsibleUnsafeText.titlecr4rr)rrrrrr;r9zAnsibleUnsafeText.translatecrCrrrrrrr>r zAnsibleUnsafeText.uppercr4rrrrrrrAr9zAnsibleUnsafeText.zfill)rrrrrr1r)-r r rrrr"r&r(r-rr3r6r<r>rr@rBrErrIrrVrZr_rrrcrfrhrjrxr~rrrrrrrrrrrrrrrrrr%sT                       r%c@s eZdZdS)NativeJinjaUnsafeTextN)r r rrrrrrEsrcCstdd|DS)Ncss$|] \}}t|t|fVqdSrr )rpkitemrrrrtJs"z_wrap_dict..)dictitemsvrrr _wrap_dictIrrcCst|}|dd|DS)z^Wraps a sequence with unsafe, not meant for strings, primarily ``tuple`` and ``list`` cs|]}t|VqdSrrrprrrrrtRruz!_wrap_sequence..)type)rv_typerrr_wrap_sequenceMsrcCstdd|DS)NcsrrrrrrrrtVruz_wrap_set..)setrrrr _wrap_setUr9rcCs|dus t|tr |St|trt|}|St|tr!t|}|St|r+t|}|St|tr6t |}|St|t rAt |}|St|t rJt |}|Sr)r+r rrrrrrr rbytesrstrr%rrrrr Ys(      cOtt|i|Sr)r rrrrrrto_unsafe_bytesmr9rcOrr)r rrrrrto_unsafe_textqr9rcCst|ddduS)NrFT)getattr)objrrr _is_unsafeur rcCst|tr |}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. )r+r%r _sys_intern)stringrrr_internys rz>skipped sys.intern patch; appears to have already been patched)% __future__rsystypeswarningsrrcollections.abcrr+ansible.module_utils.common.text.convertersrr'ansible.module_utils.common.collectionsransible.utils.native_jinjar __all__objectr rrrr%rrrrr rrrrr+BuiltinFunctionTypewarnRuntimeWarningrrrrs4 4   z