o nnh(@sddlmZddlZddlmZddlmZddlm Z m Z m Z Gddde Z Gdd d e eZGd d d e eZGd d d e eZGdddee ZdS)) annotationsN)Sequence) text_type)to_bytesto_text to_nativec@s6eZdZdZdZdZdZddZddZe eeZ dS)AnsibleBaseYAMLObjectz the base class used to sub-class python built-in objects so that we can add attributes to them during yaml parsing NrcCs|j|j|jfSN) _data_source _line_number_column_numberselfrG/usr/local/lib/python3.10/dist-packages/ansible/parsing/yaml/objects.py_get_ansible_position&z+AnsibleBaseYAMLObject._get_ansible_positionc Cs@z|\}}}Wn ttfytdw||_||_||_dS)Nzaansible_pos can only be set with a tuple/list of three values: source, line number, column number) TypeError ValueErrorAssertionErrorr r r )robjsrclinecolrrr_set_ansible_position)s z+AnsibleBaseYAMLObject._set_ansible_position) __name__ __module__ __qualname____doc__r r r rrproperty ansible_posrrrrrs rc@eZdZdZdS)AnsibleMappingz sub class for dictionaries Nrrrrrrrrr"8r"c@r!)AnsibleUnicodez sub class for unicode objects Nr#rrrrr%=r$r%c@r!)AnsibleSequencez sub class for lists Nr#rrrrr&Br$r&cseZdZdZdZdZdZeddZfddZ e dd Z e j d d Z d d Z d dZddZddZddZddZdddZddZdddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Z d5d6Z!d7d8Z"d9d:Z#e#Z$d;d<Z%d=d>Z&d?d@Z'dAdBZ(dCdDZ)dEe*j+fdFdGZ,dEe*j+fdHdIZ-ddKdLZ.dEe*j+fdMdNZ/dOdPZ0dQdRZ1dEe*j+fdSdTZ2dUdVZ3dWdXZ4dYdZZ5d[d\Z6d]d^Z7d_d`Z8dadbZ9dcddZ:dedfZ;dgdhZdmdnZ?dodpZ@dqdrZAddsdtZBeCjDZDdudvZEddxdyZFdEe*j+fdzd{ZGdEe*j+fd|d}ZHd~dZIddZJdddZKdddZLdddZMdddZNdEe*j+fddZOdddZPddZQddZRddZSddZTddZUZVS)AnsibleVaultEncryptedUnicodezJUnicode like object that is not evaluated (decrypted) until it needs to beTz!vaultcCs0|s |d||||}||}||_|S)NzHError creating AnsibleVaultEncryptedUnicode, invalid vault (%s) provided)AnsibleVaultErrorencryptvault)clsseqr*secret ciphertextavurrrfrom_plaintextMs  z+AnsibleVaultEncryptedUnicode.from_plaintextcs"tt|d|_t||_dS)aA AnsibleUnicode with a Vault attribute that can decrypt it. ciphertext is a byte string (str on PY2, bytestring on PY3). The .data attribute is a property that returns the decrypted plaintext of the ciphertext as a PY2 unicode or PY3 string object. N)superr'__init__r*r _ciphertext)rr. __class__rrr2Wsz%AnsibleVaultEncryptedUnicode.__init__cCs&|jst|jSt|jj|j|dS)N)r)r*rr3decryptr rrrdataes z!AnsibleVaultEncryptedUnicode.datacCst||_dSr )rr3)rvaluerrrr7kscCs|jo |j|jSr )r* is_encryptedr3r rrrr9oz)AnsibleVaultEncryptedUnicode.is_encryptedcCs|jr||jkSdS)NFr*r7rotherrrr__eq__r z#AnsibleVaultEncryptedUnicode.__eq__cCs|jr||jkSdS)NTr;r<rrr__ne__wr?z#AnsibleVaultEncryptedUnicode.__ne__cCst|dddddS)Nsurrogate_or_stricterrorsrr rrr __reversed__|sz)AnsibleVaultEncryptedUnicode.__reversed__cCt|jddSNrBrC)rr7r rrr__str__z$AnsibleVaultEncryptedUnicode.__str__cCrGrH)rr7r rrr __unicode__rJz(AnsibleVaultEncryptedUnicode.__unicode__NcCst|j||dS)N)encodingrD)rr7)rrLrDrrrencoderz#AnsibleVaultEncryptedUnicode.encodecC t|jSr )reprr7r rrr__repr__ z%AnsibleVaultEncryptedUnicode.__repr__ cCst|j|dS)N)base)intr7)rrSrrr__int__rJz$AnsibleVaultEncryptedUnicode.__int__cCrNr )floatr7r rrr __float__rQz&AnsibleVaultEncryptedUnicode.__float__cCrNr )complexr7r rrr __complex__rQz(AnsibleVaultEncryptedUnicode.__complex__cCrNr )hashr7r rrr__hash__rQz%AnsibleVaultEncryptedUnicode.__hash__cCs t|tr |j|jkS|j|kSr  isinstancer'r7rstringrrr__lt__   z#AnsibleVaultEncryptedUnicode.__lt__cCs t|tr |j|jkS|j|kSr r\r^rrr__le__raz#AnsibleVaultEncryptedUnicode.__le__cCs t|tr |j|jkS|j|kSr r\r^rrr__gt__raz#AnsibleVaultEncryptedUnicode.__gt__cCs t|tr |j|jkS|j|kSr r\r^rrr__ge__raz#AnsibleVaultEncryptedUnicode.__ge__cCst|tr|j}||jvSr r\)rcharrrr __contains__s  z)AnsibleVaultEncryptedUnicode.__contains__cCrNr )lenr7r rrr__len__rQz$AnsibleVaultEncryptedUnicode.__len__cCs |j|Sr r7)rindexrrr __getitem__rQz(AnsibleVaultEncryptedUnicode.__getitem__cCs"t|d}t|d}|j||S)Nr)maxr7)rstartendrrr __getslice__  z)AnsibleVaultEncryptedUnicode.__getslice__cCs8t|tr |j|jSt|tr|j|S|jt|Sr )r]r'r7rrr<rrr__add__s    z$AnsibleVaultEncryptedUnicode.__add__cCs"t|tr ||jSt||jSr )r]rr7rr<rrr__radd__rpz%AnsibleVaultEncryptedUnicode.__radd__cCs |j|Sr ri)rnrrr__mul__rQz$AnsibleVaultEncryptedUnicode.__mul__cCs |j|Sr rirargsrrr__mod__rQz$AnsibleVaultEncryptedUnicode.__mod__cCs t||Sr rE)rtemplaterrr__rmod__ z%AnsibleVaultEncryptedUnicode.__rmod__cC |jSr )r7 capitalizer rrrr|rQz'AnsibleVaultEncryptedUnicode.capitalizecCr{r )r7casefoldr rrrr}rQz%AnsibleVaultEncryptedUnicode.casefoldcG|jj|g|RSr )r7centerrwidthrvrrrrr:z#AnsibleVaultEncryptedUnicode.centerrcC t|tr|j}|j|||Sr )r]r'r7countrsubrmrnrrrr z"AnsibleVaultEncryptedUnicode.countcC|j|||Sr )r7endswith)rsuffixrmrnrrrrrz%AnsibleVaultEncryptedUnicode.endswithcC |j|Sr )r7 expandtabs)rtabsizerrrrrzz'AnsibleVaultEncryptedUnicode.expandtabscCrr )r]r'r7findrrrrrrz!AnsibleVaultEncryptedUnicode.findcOs|jj|i|Sr )r7format)rrvkwdsrrrrsz#AnsibleVaultEncryptedUnicode.formatcCrr )r7 format_map)rmappingrrrrrzz'AnsibleVaultEncryptedUnicode.format_mapcCrr )r7rjrrrrrjrz"AnsibleVaultEncryptedUnicode.indexcCr{r )r7isalphar rrrrrQz$AnsibleVaultEncryptedUnicode.isalphacCr{r )r7isalnumr rrrrrQz$AnsibleVaultEncryptedUnicode.isalnumcCr{r )r7isasciir rrrrrQz$AnsibleVaultEncryptedUnicode.isasciicCr{r )r7 isdecimalr rrrrrQz&AnsibleVaultEncryptedUnicode.isdecimalcCr{r )r7isdigitr rrrr rQz$AnsibleVaultEncryptedUnicode.isdigitcCr{r )r7 isidentifierr rrrr rQz)AnsibleVaultEncryptedUnicode.isidentifiercCr{r )r7islowerr rrrrrQz$AnsibleVaultEncryptedUnicode.islowercCr{r )r7 isnumericr rrrrrQz&AnsibleVaultEncryptedUnicode.isnumericcCr{r )r7 isprintabler rrrrrQz(AnsibleVaultEncryptedUnicode.isprintablecCr{r )r7isspacer rrrrrQz$AnsibleVaultEncryptedUnicode.isspacecCr{r )r7istitler rrrrrQz$AnsibleVaultEncryptedUnicode.istitlecCr{r )r7isupperr rrrrrQz$AnsibleVaultEncryptedUnicode.isuppercCrr )r7join)rr,rrrr"rzz!AnsibleVaultEncryptedUnicode.joincGr~r )r7ljustrrrrr%r:z"AnsibleVaultEncryptedUnicode.ljustcCr{r )r7lowerr rrrr(rQz"AnsibleVaultEncryptedUnicode.lowercCrr )r7lstriprcharsrrrr+rzz#AnsibleVaultEncryptedUnicode.lstripcCrr )r7 partitionrseprrrr0rzz&AnsibleVaultEncryptedUnicode.partitionrAcCs0t|tr|j}t|tr|j}|j|||Sr )r]r'r7replace)roldnewmaxsplitrrrr3s  z$AnsibleVaultEncryptedUnicode.replacecCrr )r]r'r7rfindrrrrr:rz"AnsibleVaultEncryptedUnicode.rfindcCrr )r7rindexrrrrr?rz#AnsibleVaultEncryptedUnicode.rindexcGr~r )r7rjustrrrrrBr:z"AnsibleVaultEncryptedUnicode.rjustcCrr )r7 rpartitionrrrrrErzz'AnsibleVaultEncryptedUnicode.rpartitioncCrr )r7rstriprrrrrHrzz#AnsibleVaultEncryptedUnicode.rstripcC|j||Sr )r7splitrrrrrrrKrJz"AnsibleVaultEncryptedUnicode.splitcCrr )r7rsplitrrrrrNrJz#AnsibleVaultEncryptedUnicode.rsplitFcCrr )r7 splitlines)rkeependsrrrrQrzz'AnsibleVaultEncryptedUnicode.splitlinescCrr )r7 startswith)rprefixrmrnrrrrTrz'AnsibleVaultEncryptedUnicode.startswithcCrr )r7striprrrrrWrzz"AnsibleVaultEncryptedUnicode.stripcCr{r )r7swapcaser rrrrZrQz%AnsibleVaultEncryptedUnicode.swapcasecCr{r )r7titler rrrr]rQz"AnsibleVaultEncryptedUnicode.titlecGs |jj|Sr )r7 translaterurrrr`rzz&AnsibleVaultEncryptedUnicode.translatecCr{r )r7upperr rrrrcrQz"AnsibleVaultEncryptedUnicode.uppercCrr )r7zfill)rrrrrrfrzz"AnsibleVaultEncryptedUnicode.zfill)NN)rR)rr )rA)NrA)F)Wrrrr __UNSAFE__ __ENCRYPTED__yaml_tag classmethodr0r2rr7setterr9r>r@rFrIrKrMrPrUrWrYr[r`rbrcrdrfrhrkrorqrrrt__rmul__rwryr|r}r_sysmaxsizerrrrrrrjrrrrrrrrrrrrrrrrstr maketransrrrrrrrrrrrrrrrrr __classcell__rrr4rr'Gs              r') __future__rsysrcollections.abcransible.module_utils.sixr+ansible.module_utils.common.text.convertersrrrobjectrdictr"r%listr&r'rrrrs