
    Ri                    X   d Z ddlmZ ddl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mZ ddlmZ ddlmZ ddlmZ ddlmZmZ dddddZ ed       ed       ed       ed      dZd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
NamedTuple)nodes)addnodes)Domain)_)SphinxDirective)Set)AnyClassVar)Node)Sphinx)BuildEnvironment)ExtensionMetadata
OptionSpecversionaddedversionchanged
deprecatedversionremoved)version-addedversion-changedversion-deprecatedversion-removedzAdded in version %szChanged in version %szDeprecated since version %szRemoved in version %s)r   r   r   r   addedchangedremovedc                  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__     P/home/agent/.friday_env/lib/python3.12/site-packages/sphinx/domains/changeset.pyr   r   .   s!    
ILKM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)	VersionChangezJDirective to describe a change/addition/deprecation in a specific version.T   zClassVar[OptionSpec]option_specc           	     <   t         j                  | j                  | j                        }t        j                         }| j
                  j                  |_        | j                  |       ||d<   | j                  d   |d<   t        |   | j                  d   z  }t        | j                        dk(  rz| j                  | j                  d   | j                  dz         \  }}t        j                  | j                  d   dg|dd	i}| j                  |       |j                  |       ng }| j                   r|| j#                         z  }d
t$        |   g}t        |      dkD  rt'        |d   t        j                        r|d   j(                  rt        j*                  |d   j(                  d      }|d   j,                  |_        |d   j.                  |_        ||d   j0                  z  }|d   j3                  t        j                  dd|d	             |d   }|j5                  dt        j*                  dd|z  |             nt        |      dkD  rEt        j                  ddt        j*                  dd|z  |      d	      }|j5                  d|       nCt        j                  ddt        j*                  dd|z  |      d	      }|j                  |       | j6                  j8                  j:                  }	|	j=                  |       |g}
|
|z  }
|
S )Nr!   r   version   r1   )r$    translatableFversionmodifiedT)r7   z%s: )classesz%s.)name_aliasesgetnamer   r8   statedocumentset_source_info	argumentsversionlabelslenparse_inliner$   r   	paragraphappendr'   parse_content_to_nodesversionlabel_classes
isinstance	rawsourceinlinesourcelinechildrenreplace_selfinsertenvdomainschangeset_domainnote_changeset)selfr<   nodetextinodesmessagesparar9   r'   domainrets              r.   runzVersionChange.run@   s   		4995'')

++T"V..+YT"T^^A%66t~~!##00q!$++/  1  FH ??4>>!#4bV6VPUVD  &KKH<<D//11D$&:4&@At9q=ZQAAw  ,,tAw'8'8tL!%a#Aw||47+++Q$$OOBG%H 7DKK5<<FTM7KLY]??R$@"	D KK4  ??Rw?"	D KK!!22d#&x
r-   N)returnz
list[Node])r(   r)   r*   __doc__has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespacer2   r+   r\   r,   r-   r.   r0   r0   7   s,    TK $(*K%*:r-   r0   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)ChangeSetDomainzDomain for changesets.	changesetchangesz/ClassVar[dict[str, dict[str, list[ChangeSet]]]]initial_datac                :    | j                   j                  di       S Nrf   )data
setdefault)rT   s    r.   
changesetszChangeSetDomain.changesets   s    yy##Ir22r-   c           	        |d   }| j                   j                  j                  d      }| j                   j                  j                  }t        |d   | j                   j                  j                  |j                  |||j                               }| j                  j                  |g       j                  |       y )Nr4   z	py:moduler!   )rP   ref_contextr;   current_documentobj_desc_namer   r"   rL   astextrl   rk   rE   )rT   rU   r4   r%   objnamere   s         r.   rS   zChangeSetDomain.note_changeset   s    y/%%))+6((++99LHH%%--IIKKM
	 	""7B/66yAr-   c                    | j                   j                         D ]8  }|j                         D ]#  }|j                  |k(  s|j	                  |       % : y N)rl   valuescopyr"   remove)rT   r"   rf   re   s       r.   	clear_doczChangeSetDomain.clear_doc   sM    --/ 	.G$\\^ .	$$/NN9-.	.r-   c                    |d   j                         D ]H  \  }}| j                  j                  |g       }|D ]"  }|j                  |v s|j	                  |       $ J y ri   )itemsrl   rk   r"   rE   )rT   docnames	otherdatar4   otherchangesrf   re   s          r.   merge_domaindataz ChangeSetDomain.merge_domaindata   sc    %.y%9%?%?%A 	.!G\oo00"=G) .	$$0NN9-.	.r-   c                     y rt   r,   )rT   rP   r"   r>   s       r.   process_doczChangeSetDomain.process_doc   s     	r-   c                :    | j                   j                  |g       S rt   )rl   r;   )rT   r4   s     r.   get_changesets_forz"ChangeSetDomain.get_changesets_for   s    ""7B//r-   N)r]   zdict[str, list[ChangeSet]])rU   zaddnodes.versionmodifiedr]   None)r"   r    r]   r   )r{   zSet[str]r|   zdict[str, Any]r]   r   )rP   r   r"   r    r>   znodes.documentr]   r   )r4   r    r]   zlist[ChangeSet])r(   r)   r*   r^   r<   labelrg   r+   propertyrl   rS   rx   r~   r   r   r,   r-   r.   rd   rd   }   st     DE 	2ELA  3 3B..#.1=K	
0r-   rd   c                   | j                  t               | j                  dt               | j                  dt               | j                  dt               | j                  dt               | j                  dt               | j                  dt               | j                  dt               | j                  dt               d	d
dddS )Nr   r   r   r   r   r   r   r   builtinr1   T)r4   env_versionparallel_read_safeparallel_write_safe)
add_domainrd   add_directiver0   )apps    r.   setupr      s    NN?#*M:lM2o}5nm4'7&6'7&6 "#	 r-   N)r   r   r]   r   )$r^   
__future__r   typingr   r   docutilsr   sphinxr   sphinx.domainsr   sphinx.localer	   sphinx.util.docutilsr
   collections.abcr   r   r   docutils.nodesr   sphinx.applicationr   sphinx.environmentr   sphinx.util.typingr   r   r:   rA   rG   r   r0   rd   r   r,   r-   r.   <module>r      s     " ,   !  0#$#)3@ $'&'	 +,/012/0	 	 
 CO CL00f 00fr-   