Ë tú©:¦Žãóò—dZdZddlZddlZddlZddlmZmZmZddlm Z ddl m Z ddl m Z m Z mZGd„d e «ZGd „d e «ZGd „d e «ZGd„de «ZGd„dej&«ZdZdd„Zy)zø Transforms for PEP processing. - `Headers`: Used to transform a PEP's initial RFC-2822 header. It remains a field list, but some entries get processed. - `Contents`: Auto-inserts a table of contents. - `PEPZero`: Special processing for PEP 0. ÚreStructuredTextéN)ÚnodesÚutilsÚ languages)Ú DataError)Ú Transform)ÚpartsÚ referencesÚmisccóˆ—eZdZdZdZdZdZejdej«dfejd«dffZ d„Z y ) ÚHeadersz< Process fields in a PEP's initial RFC-2822 header. ihzpep-%04dz3http://hg.python.org/peps/file/default/pep-%04d.txtz\$RCSfile: (.+),v \$$z\1z\$[a-zA-Z]+: (.+) \$$c ó` —t|j«s td«‚|jd}t|tj «rd|dvr td«‚d}|D]V}|dj «j«dk(sŒ(|dj «} t|«}|j|z}n|€ td «‚|dk(rPt j"t$«} |jj'd| «|jj)| «t|«dks'|ddj «j«dk7r td«‚|D�]^}|dj «j«} |d} t| «dkDrtd|j+d¬«z«‚t| «dk(r;t| dtj «s¥td|j+d¬«z«‚| dk(r€ t-j.dt-j0t3j4|jd«d««} r3| t j d d t j8d | |¬««z } n�Œ&| d}| dk(r>|D]7}t|tj8«sŒ|j;t=|««Œ9�Œn| dk(r?|D]8}t|tj8«sŒ|j;t=||««Œ:�Œ²| dvr»g}t j>d«}tAjBd| j ««D]s}t|«}|jEt j8|||jjFjH|jJ|zz¬««|jE|«Œu|dd|dd�Œq| dk(rRtMjN||jP«s�Œš|j «} t j8d | |¬«g|dd�ŒÈ| d k(r^|j «}|jjFjH|jJd!zz}t j8d ||¬«g|dd�Œ+| d"k(s�Œ2t| «s�Œ?tMjN||jP«�Œay#t$rÒ|}d}|jjjd|z|¬ «}|jj|«}t j||xsd |¬ «}|jj|«} |j| «t|d«r |g|ddddn"|dxxt j d d |«z cc<Y�ŒäwxYw#t6$rd} Y�Œ^wxYw)#NzDocument tree is empty.rÚrfc2822ÚclasseszADocument does not begin with an RFC-2822 header; it is not a PEP.Úpepéz?"PEP" header must contain an integer; "%s" is an invalid value.)Ú base_nodez(none))ÚrefidÚz3Document does not contain an RFC-2822 "PEP" header.éÚtitlez No title!z4PEP header field body contains multiple elements: %s)Úlevelz=PEP header field body may only contain a single paragraph: %sz last-modifiedz%d-%b-%YÚsourceéÚunknown©ÚrefuriÚauthorzdiscussions-to)Úreplacesz replaced-byÚrequiresÚ z,?\s+éÿÿÿÿz content-typeé Úversion))ÚlenÚdocumentrÚ isinstancerÚ field_listÚastextÚlowerÚintÚ pep_cvs_urlÚ ValueErrorÚreporterÚwarningÚset_idÚ problematicÚ add_backrefÚ paragraphÚpendingÚPEPZeroÚinsertÚ note_pendingÚpformatÚtimeÚstrftimeÚ localtimeÚosÚstatÚOSErrorÚ referenceÚ replace_selfÚ mask_emailÚTextÚreÚsplitÚappendÚsettingsÚ pep_base_urlÚpep_urlrÚclean_rcs_keywordsÚrcs_keyword_substitutions)ÚselfÚheaderrÚfieldÚvalueÚcvs_urlÚmsgÚmsgidÚprbÚprbidr4ÚnameÚbodyÚdateÚparaÚnodeÚnewbodyÚspaceÚrefpepÚpepnoÚpep_typeÚuris ú=/usr/lib/python3.12/site-packages/docutils/transforms/peps.pyÚapplyz Headers.apply(s€Ü�4—=‘=Ô!äÐ5Ó6Ð 6Ø—‘˜qÑ!ˆÜ˜6¤5×#3Ñ#3Ô4Ø  yÑ 1Ñ1Üð7ó8ð 8àˆÛˆEØ�Q‰x�‰Ó ×&Ñ&Ó(¨EÓ1ؘa™Ÿ™Ó)�ðAܘe›*�CØ"×.Ñ.°Ñ4�Gñ ð+ð, ˆ;Üð&ó'ð 'à �!Š8ä—m‘m¤GÓ,ˆGØ �M‰M× Ñ   GÔ ,Ø �M‰M× &Ñ & wÔ /Ü ˆv‹;˜Š?˜f Q™i¨™l×1Ñ1Ó3×9Ñ9Ó;¸wÒFܘKÓ(Ð (܈Eؘ‘8—?‘?Ó$×*Ñ*Ó,ˆDؘ‘8ˆDÜ�4‹y˜1Š}Üð!0Ø27·-±-Àa°-Ó2Hñ!IóJðJä�T“˜a’Ü! $ q¡'¬5¯?©?Ô;Ü#ð%>à&+§m¡m¸! mÓ&<ñ%=ó>ð>ð˜Ò(ð%ÜŸ=™=Ø"ÜŸ™¤r§w¡w¨t¯}©}¸XÑ/FÓ'GÈÑ'JÓKóM�Dñ ØœEŸO™OؘB¤§¡°°DÀÔ IóKñK‘Dñؘ‘7ˆDØ�xÒÛ �DÜ! $¬¯©Õ8Ø×)Ñ)¬*°TÓ*:Õ;ò!ðÐ)Ò)Û �DÜ! $¬¯©Õ8Ø×)Ñ)¬*°T¸3Ó*?Õ@ò!ðÐ@Ñ@Ø�ÜŸ ™  3›�Ü Ÿh™h x°·±³Ö?�FÜ ›K�EØ—N‘N¤5§?¡?Ø Ø $§ ¡ × 6Ñ 6× CÑ CØ"&§,¡,°Ñ"6ñ!7ô$9ô:ð—N‘N 5Õ)ð @ð" # 2˜,�‘Q’ؘÒ(Ü×(Ñ(¨¨t×/MÑ/MÔNÛØŸ;™;›=�DÜ$Ÿ™¨r°4ÀÔHÐI�D™’GؘÒ'ØŸ;™;›=�Ø—m‘m×,Ñ,×9Ñ9¸D¿L¹LÈ2Ñ€Ü  §¡Ó/ˆØ � ‰ ×ј7Ô#Ø �‰×Ñ×$Ñ$ T§^¡^Õ4riNrwrhrir_r5r5Ös„ñðÐó5rir5cóR—eZdZdZej Zd„Zd„Zd„Zd„Z d„Z d„Z d„Z y ) rŒz´ Perform the special processing needed by PEP 0: - Mask email addresses. - Link PEP numbers in the second column of 4-column tables to the PEPs themselves. có—yr‹rh©rKrXs r_Ú unknown_visitzPEPZeroSpecial.unknown_visitñs€Ø ricó8—|jt|««yr‹)r@rAr’s r_Úvisit_referencezPEPZeroSpecial.visit_referenceôs€Ø ×Ñœ* TÓ*Õ+ricó2—d|dvrtj‚y)Nrr)rÚSkipNoder’s r_Úvisit_field_listzPEPZeroSpecial.visit_field_list÷s€Ø ˜˜Y™Ñ 'Ü—.‘.Ð ð (ricó,—|ddk(|_d|_y)NÚcolsér)Ú pep_tableÚentryr’s r_Ú visit_tgroupzPEPZeroSpecial.visit_tgroupûs€Ø˜f™¨Ñ*ˆŒØˆ� ricó�—|xjdz c_|jr%|jdk(r|djd«yyy)NrrrÚnum)r�rœrEr’s r_Ú visit_colspeczPEPZeroSpecial.visit_colspecÿs9€Ø � Š �a‰� Ø �>Š>˜dŸj™j¨AšoØ �‰O× "Ñ " 5Õ )ð.ˆ>ricó—d|_y)Nr)r�r’s r_Ú visit_rowzPEPZeroSpecial.visit_rows €Øˆ� ricóø—|xjdz c_|jrÊ|jdk(rºt|«dk(r«|djd«|d}t |t j «rwt|«dk(rh|j«} t|«}|jjj|j|zz}t j|||¬«|d<yyyyyy#t$rYywxYw)Nrrrr rr)r�rœr%rEr'rr3r)r+r&rFrGrHr?r-)rKrXÚpÚtextrÚrefs r_Ú visit_entryzPEPZeroSpecial.visit_entrysØ€Ø � Š �a‰� Ø �>Š>˜dŸj™j¨Ašo´#°d³)¸q².Ø �‰O× "Ñ " 5Ô )Ø�Q‘ˆAܘ!œUŸ_™_Ô-´#°a³&¸A²+Ø—x‘x“z�ðܘd›)�CØŸ=™=×1Ñ1×>Ñ>Ø!Ÿ\™\¨CÑ/ñ0�Cä Ÿ?™?¨4°¸cÔB�A�a’Dð 3>Ð-ð3A˜oˆ>øô"òÙðúsÂAC-Ã- C9Ã8C9N) rarbrcrdr rHr“r•r˜ržr¡r£r¨rhrir_rŒrŒäs5„ñð�o‰o€Gò ò,ò!òò*ò ó rirŒ)zpeps@python.orgzpython-list@python.orgzpython-dev@python.orgcó —|jd«r||djd«rh|dddtvr|d}n8|j«j dd«}t j d|d ¬ «}|€|S|dxxd |zz cc<|g|dd|S|S) a¨ Mask the email address in `ref` and return a replacement node. `ref` is returned unchanged if it contains no email address. For email addresses such as "user@host", mask the address as "user at host" (text) to thwart simple email address harvesters (except for those listed in `non_masked_addresses`). If a PEP number (`pepno`) is given, return a reference including a default email subject. rzmailto:rNrÚ@z at rÚhtml)Úformatz?subject=PEP%%20%s)ÚhasattrÚ startswithÚnon_masked_addressesr)ÚreplacerÚraw)r§r\Ú replacementÚreplacement_texts r_rArAsŸ€ð ‡{�{�8Ô  X¡×!9Ñ!9¸)Ô!DØ ˆx‰=˜˜Ð Ô 4Ñ 4ؘa™&‰Kà"Ÿz™z›|×3Ñ3°CÐ9KÓLÐ ÜŸ)™) BÐ(8ÀÔHˆKØ ˆ=ØÐ à �‹MÐ1°EÑ9Ñ 9‹MØ!�]ˆC‘ˆF؈Jàˆ rir‹)rdÚ __docformat__r<rCr9ÚdocutilsrrrrÚdocutils.transformsrr r r r rkryr5ÚSparseNodeVisitorrŒr¯rArhrir_Úr¸s‚ðñ ð#€ ã Û Û ß,Ñ,ÝÝ)ß7Ñ7ôoOˆiôoOôd,ˆyô,ô2/9�)ô/9ôd 5ˆiô 5ô0�U×,Ñ,ô0ðf1Ðô ri