
    Fe                    "   d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ erdd	lmZ dd
lmZ ddlmZ ddlmZ  ed       ed       ed      dZddddZ G d de      Z G d de      Z G d de      ZddZy)zThe changeset domain.    )annotations)TYPE_CHECKINGAny
NamedTuplecast)nodes)addnodes)Domain)_)SphinxDirective)Node)Sphinx)BuildEnvironment)
OptionSpeczNew in version %szChanged in version %szDeprecated since version %s)versionaddedversionchanged
deprecatedaddedchangedr   c                  J    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   y
)	ChangeSetstrtypedocnameintlinenoz
str | NonemoduledescnamecontentN)__name__
__module____qualname____annotations__     :/usr/lib/python3/dist-packages/sphinx/domains/changeset.pyr   r   #   s"    
ILKLr%   r   c                  8    e Zd ZU dZdZdZdZdZi Zde	d<   ddZ
y)	VersionChangezT
    Directive to describe a change/addition/deprecation in a specific version.
    T   r   option_specc           	        t        j                         }| j                  j                  |_        | j	                  |       | j
                  |d<   | j                  d   |d<   t        | j
                     | j                  d   z  }t        | j                        dk(  r| j                  j                  | j                  d   | j                  dz         \  }}t        j                  | j                  d   dg|ddi}| j	                  |       |j                  |       ng }| j                  r1| j                  j                  | j                  | j                   |       d	t"        | j
                     g}t        |      dkD  rt%        |d   t        j                        r|d   j&                  rt        j(                  |d   j&                  d
      }|d   j*                  |_        |d   j,                  |_        ||d   j.                  z  }|d   j1                  t        j                  dd|d             |d   }|j3                  dt        j(                  dd|z  |             nt        |      dkD  rEt        j                  ddt        j(                  dd|z  |      d      }|j3                  d|       nCt        j                  ddt        j(                  dd|z  |      d      }|j                  |       t5        t6        | j8                  j;                  d            }|j=                  |       |g}	|	|z  }	|	S )Nr   r   version   r)    translatableFversionmodifiedT)r/   z%s: )classesz%s.	changeset)r	   r0   statedocumentset_source_infoname	argumentsversionlabelsleninline_textr   r   	paragraphappendr   nested_parsecontent_offsetversionlabel_classes
isinstance	rawsourceinlinesourcelinechildrenreplace_selfinsertr   ChangeSetDomainenv
get_domainnote_changeset)
selfnodetextinodesmessagesparar1   r   domainrets
             r&   runzVersionChange.run6   s   '')

++T"yyV..+YTYY'$..*;;t~~!##zz55dnnQ6G6:kkAo GFH??4>>!#4bV6VPUVD  &KKH<<JJ##DLL$2E2EtL$&:499&EFt9q=ZQAAw  ,,tAw'8'8tL!%a#Aw||47+++Q$$U__RWSX%YZ7DKK5<<FTM7KLY]??2r#(<<FTM7#S057D KK4  ??2r#(<<EDL'#R057D KKotxx':':;'GHd#&x
r%   N)returnz
list[Node])r    r!   r"   __doc__has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespacer*   r#   rT   r$   r%   r&   r(   r(   ,   s/     K $ K 0r%   r(   c                  v    e Zd ZU dZdZdZdi iZded<   edd       Z	ddZ
ddZdd	Z	 	 	 	 	 	 	 	 dd
ZddZy)rH   zDomain for changesets.r2   changesdict[str, Any]initial_datac                :    | j                   j                  di       S Nr\   )data
setdefault)rL   s    r&   
changesetszChangeSetDomain.changesetss   s    yy##Ir22r%   c           	     v   |d   }| j                   j                  j                  d      }| j                   j                  j                  d      }t	        |d   | j                   j
                  |j                  |||j                               }| j                  j                  |g       j                  |       y )Nr,   z	py:moduleobjectr   )rI   ref_contextget	temp_datar   r   rD   astextrc   rb   r<   )rL   rM   r,   r   objnamer2   s         r&   rK   zChangeSetDomain.note_changesetw   s    y/%%))+6(($$((2d6lDHH,<,<dii$gt{{}>	""7B/66yAr%   c                    | j                   j                         D ]-  }|d d  D ]#  }|j                  |k(  s|j                  |       % / y N)rc   valuesr   remove)rL   r   r\   r2   s       r&   	clear_doczChangeSetDomain.clear_doc   sK    --/ 	.G$QZ .	$$/NN9-.	.r%   c                    |d   j                         D ]H  \  }}| j                  j                  |g       }|D ]"  }|j                  |v s|j	                  |       $ J y r`   )itemsrc   rb   r   r<   )rL   docnames	otherdatar,   otherchangesr\   r2   s          r&   merge_domaindataz ChangeSetDomain.merge_domaindata   sc    %.y%9%?%?%A 	.!G\oo00"=G) .	$$0NN9-.	.r%   c                     y rl   r$   )rL   rI   r   r4   s       r&   process_doczChangeSetDomain.process_doc   s     	r%   c                :    | j                   j                  |g       S rl   )rc   rg   )rL   r,   s     r&   get_changesets_forz"ChangeSetDomain.get_changesets_for   s    ""7B//r%   N)rU   zdict[str, list[ChangeSet]])rM   zaddnodes.versionmodifiedrU   None)r   r   rU   rz   )rr   z	list[str]rs   r]   rU   rz   )rI   r   r   r   r4   znodes.documentrU   rz   )r,   r   rU   zlist[ChangeSet])r    r!   r"   rV   r6   labelr^   r#   propertyrc   rK   ro   ru   rw   ry   r$   r%   r&   rH   rH   i   sr     DE 	2$L.  3 3B..#.1=K	
0r%   rH   c                    | j                  t               | j                  dt               | j                  dt               | j                  dt               dddddS )Nr   r   r   builtinr)   T)r,   env_versionparallel_read_safeparallel_write_safe)
add_domainrH   add_directiver(   )apps    r&   setupr      sW    NN?#lM2nm4&6 "#	 r%   N)r   r   rU   r]   ) rV   
__future__r   typingr   r   r   r   docutilsr   sphinxr	   sphinx.domainsr
   sphinx.localer   sphinx.util.docutilsr   docutils.nodesr   sphinx.applicationr   sphinx.environmentr   sphinx.util.typingr   r8   r?   r   r(   rH   r   r$   r%   r&   <module>r      s     " 7 7   !  0#)3- +,/056  !$ 
 :O :z*0f *0Zr%   