a )gA)@sddlmZmZmZeZddlZddlZddl m Z ddlZddl Z ddl m Z ddlmZmZmZGdddeZGdd d eeZGd d d ee ZGd d d eeZGddde eZdS))absolute_importdivisionprint_functionN)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_numberselfr@/usr/lib/python3.9/site-packages/ansible/parsing/yaml/objects.py_get_ansible_position,sz+AnsibleBaseYAMLObject._get_ansible_positionc CsDz|\}}}Wnttfy,tdYn0||_||_||_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 rrrpropertyZ ansible_posrrrrr "s r c@seZdZdZdS)AnsibleMappingz sub class for dictionaries Nrrrrrrrrr!>sr!c@seZdZdZdS)AnsibleUnicodez sub class for unicode objects Nr"rrrrr#Csr#c@seZdZdZdS)AnsibleSequencez sub class for lists Nr"rrrrr$Hsr$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)ZAnsibleVaultErrorZencryptvault)clsseqr&Zsecret ciphertextZavurrrfrom_plaintextSs  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__rrr,]sz%AnsibleVaultEncryptedUnicode.__init__cCs&|jst|jSt|jj|j|dS)N)r)r&rr-Zdecryptrrrrdataks z!AnsibleVaultEncryptedUnicode.datacCst||_dSr )rr-)rvaluerrrr0qscCs|jo|j|jSr )r& is_encryptedr-rrrrr2usz)AnsibleVaultEncryptedUnicode.is_encryptedcCs|jr||jkSdS)NFr&r0rotherrrr__eq__xs z#AnsibleVaultEncryptedUnicode.__eq__cCs|jr||jkSdS)NTr3r4rrr__ne__}s z#AnsibleVaultEncryptedUnicode.__ne__cCst|dddddS)Nsurrogate_or_stricterrorsrrrrr __reversed__sz)AnsibleVaultEncryptedUnicode.__reversed__cCst|jddSNr9r:)r r0rrrr__str__sz$AnsibleVaultEncryptedUnicode.__str__cCst|jddSr>)rr0rrrr __unicode__sz(AnsibleVaultEncryptedUnicode.__unicode__NcCst|j||dS)N)encodingr;)rr0)rrAr;rrrencodesz#AnsibleVaultEncryptedUnicode.encodecCs t|jSr )reprr0rrrr__repr__sz%AnsibleVaultEncryptedUnicode.__repr__ cCst|j|dS)N)base)intr0)rrFrrr__int__sz$AnsibleVaultEncryptedUnicode.__int__cCs t|jSr )floatr0rrrr __float__sz&AnsibleVaultEncryptedUnicode.__float__cCs t|jSr )complexr0rrrr __complex__sz(AnsibleVaultEncryptedUnicode.__complex__cCs t|jSr )hashr0rrrr__hash__sz%AnsibleVaultEncryptedUnicode.__hash__cCs t|tr|j|jkS|j|kSr  isinstancer%r0rstringrrr__lt__s  z#AnsibleVaultEncryptedUnicode.__lt__cCs t|tr|j|jkS|j|kSr rOrQrrr__le__s  z#AnsibleVaultEncryptedUnicode.__le__cCs t|tr|j|jkS|j|kSr rOrQrrr__gt__s  z#AnsibleVaultEncryptedUnicode.__gt__cCs t|tr|j|jkS|j|kSr rOrQrrr__ge__s  z#AnsibleVaultEncryptedUnicode.__ge__cCst|tr|j}||jvSr rO)rcharrrr __contains__s z)AnsibleVaultEncryptedUnicode.__contains__cCs t|jSr )lenr0rrrr__len__sz$AnsibleVaultEncryptedUnicode.__len__cCs |j|Sr r0)rindexrrr __getitem__sz(AnsibleVaultEncryptedUnicode.__getitem__cCs"t|d}t|d}|j||S)Nr)maxr0)rstartendrrr __getslice__s  z)AnsibleVaultEncryptedUnicode.__getslice__cCs8t|tr|j|jSt|tr*|j|S|jt|Sr )rPr%r0rrr4rrr__add__s     z$AnsibleVaultEncryptedUnicode.__add__cCs"t|tr||jSt||jSr )rPrr0rr4rrr__radd__s  z%AnsibleVaultEncryptedUnicode.__radd__cCs |j|Sr r[)rnrrr__mul__sz$AnsibleVaultEncryptedUnicode.__mul__cCs |j|Sr r[rargsrrr__mod__sz$AnsibleVaultEncryptedUnicode.__mod__cCs t||Sr r<)rtemplaterrr__rmod__sz%AnsibleVaultEncryptedUnicode.__rmod__cCs |jSr )r0 capitalizerrrrrksz'AnsibleVaultEncryptedUnicode.capitalizecCs |jSr )r0casefoldrrrrrlsz%AnsibleVaultEncryptedUnicode.casefoldcGs|jj|g|RSr )r0centerrwidthrgrrrrmsz#AnsibleVaultEncryptedUnicode.centerrcCs t|tr|j}|j|||Sr )rPr%r0countrsubr_r`rrrrps z"AnsibleVaultEncryptedUnicode.countcCs|j|||Sr )r0endswith)rsuffixr_r`rrrrssz%AnsibleVaultEncryptedUnicode.endswithcCs |j|Sr )r0 expandtabs)rtabsizerrrrvsz'AnsibleVaultEncryptedUnicode.expandtabscCs t|tr|j}|j|||Sr )rPr%r0findrqrrrrxs z!AnsibleVaultEncryptedUnicode.findcOs|jj|i|Sr )r0format)rrgkwdsrrrrysz#AnsibleVaultEncryptedUnicode.formatcCs |j|Sr )r0 format_map)rmappingrrrr{sz'AnsibleVaultEncryptedUnicode.format_mapcCs|j|||Sr )r0r\rqrrrr\sz"AnsibleVaultEncryptedUnicode.indexcCs |jSr )r0isalpharrrrr}sz$AnsibleVaultEncryptedUnicode.isalphacCs |jSr )r0isalnumrrrrr~sz$AnsibleVaultEncryptedUnicode.isalnumcCs |jSr )r0isasciirrrrr sz$AnsibleVaultEncryptedUnicode.isasciicCs |jSr )r0 isdecimalrrrrr sz&AnsibleVaultEncryptedUnicode.isdecimalcCs |jSr )r0isdigitrrrrrsz$AnsibleVaultEncryptedUnicode.isdigitcCs |jSr )r0 isidentifierrrrrrsz)AnsibleVaultEncryptedUnicode.isidentifiercCs |jSr )r0islowerrrrrrsz$AnsibleVaultEncryptedUnicode.islowercCs |jSr )r0 isnumericrrrrrsz&AnsibleVaultEncryptedUnicode.isnumericcCs |jSr )r0 isprintablerrrrrsz(AnsibleVaultEncryptedUnicode.isprintablecCs |jSr )r0isspacerrrrrsz$AnsibleVaultEncryptedUnicode.isspacecCs |jSr )r0istitlerrrrr"sz$AnsibleVaultEncryptedUnicode.istitlecCs |jSr )r0isupperrrrrr%sz$AnsibleVaultEncryptedUnicode.isuppercCs |j|Sr )r0join)rr(rrrr(sz!AnsibleVaultEncryptedUnicode.joincGs|jj|g|RSr )r0ljustrnrrrr+sz"AnsibleVaultEncryptedUnicode.ljustcCs |jSr )r0lowerrrrrr.sz"AnsibleVaultEncryptedUnicode.lowercCs |j|Sr )r0lstriprcharsrrrr1sz#AnsibleVaultEncryptedUnicode.lstripcCs |j|Sr )r0 partitionrseprrrr6sz&AnsibleVaultEncryptedUnicode.partitionr8cCs0t|tr|j}t|tr |j}|j|||Sr )rPr%r0replace)roldnewmaxsplitrrrr9s   z$AnsibleVaultEncryptedUnicode.replacecCs t|tr|j}|j|||Sr )rPr%r0rfindrqrrrr@s z"AnsibleVaultEncryptedUnicode.rfindcCs|j|||Sr )r0rindexrqrrrrEsz#AnsibleVaultEncryptedUnicode.rindexcGs|jj|g|RSr )r0rjustrnrrrrHsz"AnsibleVaultEncryptedUnicode.rjustcCs |j|Sr )r0 rpartitionrrrrrKsz'AnsibleVaultEncryptedUnicode.rpartitioncCs |j|Sr )r0rstriprrrrrNsz#AnsibleVaultEncryptedUnicode.rstripcCs|j||Sr )r0splitrrrrrrrQsz"AnsibleVaultEncryptedUnicode.splitcCs|j||Sr )r0rsplitrrrrrTsz#AnsibleVaultEncryptedUnicode.rsplitFcCs |j|Sr )r0 splitlines)rkeependsrrrrWsz'AnsibleVaultEncryptedUnicode.splitlinescCs|j|||Sr )r0 startswith)rprefixr_r`rrrrZsz'AnsibleVaultEncryptedUnicode.startswithcCs |j|Sr )r0striprrrrr]sz"AnsibleVaultEncryptedUnicode.stripcCs |jSr )r0swapcaserrrrr`sz%AnsibleVaultEncryptedUnicode.swapcasecCs |jSr )r0titlerrrrrcsz"AnsibleVaultEncryptedUnicode.titlecGs |jj|Sr )r0 translaterfrrrrfsz&AnsibleVaultEncryptedUnicode.translatecCs |jSr )r0upperrrrrrisz"AnsibleVaultEncryptedUnicode.uppercCs |j|Sr )r0zfill)rrorrrrlsz"AnsibleVaultEncryptedUnicode.zfill)NN)rE)ru)N)r8)N)Nr8)Nr8)F)N)WrrrrZ __UNSAFE__Z __ENCRYPTED__Zyaml_tag classmethodr*r,r r0setterr2r6r7r=r?r@rBrDrHrJrLrNrSrTrUrVrXrZr]rarbrcre__rmul__rhrjrkrlrm_sysmaxsizerprsrvrxryr{r\r}r~rrrrrrrrrrrrrrstr maketransrrrrrrrrrrrrrrrrr __classcell__rrr.rr%Ms             r%)Z __future__rrrtypeZ __metaclass__rRsysrcollections.abcrZyamlZansible.module_utils.sixrZansible.module_utils._textrrr objectr dictr!r#listr$r%rrrrs