Ë
    çÍ:jÖ  ã                   ó’   — d dl mZ d dlmZmZ d dlmZ  G d„ de«      Z G d„ dee«      Z G d„ d	ee«      Z	 G d
„ dee«      Z
g d¢Zy)é    )ÚProbabilisticMixIn)ÚMultiParentedTreeÚParentedTree)ÚTreec                   óv   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zdd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚImmutableTreec                 óä   •— t         ‰| �  ||«       	 t        | j                  t	        | «      f«      | _        y # t        t        f$ r'}t        dt        | «      j                  z  «      |‚d }~ww xY w)Nz-%s: node value and children must be immutable)
ÚsuperÚ__init__ÚhashÚ_labelÚtupleÚ_hashÚ	TypeErrorÚ
ValueErrorÚtypeÚ__name__)ÚselfÚnodeÚchildrenÚeÚ	__class__s       €úh/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/nltk/tree/immutable.pyr   zImmutableTree.__init__   sg   ø€ Ü‰Ñ˜˜xÔ(ð	Ü˜tŸ{™{¬E°$«KÐ8Ó9ˆD�JøÜœ:Ð&ò 	ÜØBÄTÈ$ÃZ×EXÑEXÑXóàðûð	ús   “%9 ¹A/Á"A*Á*A/c                 óD   — t        dt        | «      j                  z  «      ‚©Nú%s may not be modified©r   r   r   )r   ÚindexÚvalues      r   Ú__setitem__zImmutableTree.__setitem__   ó   € ÜÐ1´D¸³J×4GÑ4GÑGÓHÐHó    c                 óD   — t        dt        | «      j                  z  «      ‚r   r   )r   ÚiÚjr   s       r   Ú__setslice__zImmutableTree.__setslice__   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   )r   r   s     r   Ú__delitem__zImmutableTree.__delitem__"   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   )r   r$   r%   s      r   Ú__delslice__zImmutableTree.__delslice__%   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   ©r   Úothers     r   Ú__iadd__zImmutableTree.__iadd__(   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   r,   s     r   Ú__imul__zImmutableTree.__imul__+   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   ©r   Úvs     r   ÚappendzImmutableTree.append.   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   r2   s     r   ÚextendzImmutableTree.extend1   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   r2   s     r   ÚpopzImmutableTree.pop4   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   r2   s     r   ÚremovezImmutableTree.remove7   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   ©r   s    r   ÚreversezImmutableTree.reverse:   r!   r"   c                 óD   — t        dt        | «      j                  z  «      ‚r   r   r<   s    r   ÚsortzImmutableTree.sort=   r!   r"   c                 ó   — | j                   S ©N)r   r<   s    r   Ú__hash__zImmutableTree.__hash__@   s   € Ø�z‰zÐr"   c                 ól   — t        | d«      r!t        dt        | «      j                  z  «      ‚|| _        y)z›
        Set the node label.  This will only succeed the first time the
        node label is set, which should occur in ImmutableTree.__init__().
        r   r   N)Úhasattrr   r   r   r   )r   r   s     r   Ú	set_labelzImmutableTree.set_labelC   s0   € ô
 �4˜Ô"ÜÐ5¼¸T»
×8KÑ8KÑKÓLÐLØˆ�r"   rA   )r   Ú
__module__Ú__qualname__r   r    r&   r(   r*   r.   r0   r4   r6   r8   r:   r=   r?   rB   rE   Ú__classcell__)r   s   @r   r   r      sZ   ø„ õ	òIòIòIòIòIòIòIòIóIòIòIòIòör"   r   c                   ó>   — e Zd Zdd„Zd„ Zd„ Zd„ Zd	d„Zed„ «       Z	y)
ÚImmutableProbabilisticTreeNc                 óÆ   — t         j                  | ||«       t        j                  | fi |¤Ž t        | j                  t        | «      | j                  «       f«      | _        y rA   )r   r   r   r   r   r   Úprobr   )r   r   r   Úprob_kwargss       r   r   z#ImmutableProbabilisticTree.__init__N   sH   € Ü×Ñ˜t T¨8Ô4Ü×#Ñ# DÑ8¨KÒ8Ü˜4Ÿ;™;¬¨d«°T·Y±Y³[ÐAÓBˆ�
r"   c                 ó   — t         S rA   )rJ   r<   s    r   Ú_frozen_classz(ImmutableProbabilisticTree._frozen_classT   s   € Ü)Ð)r"   c                 óT   — t        j                  | «      › d| j                  «       › d�S )Nú [ú])r   Ú__repr__rL   r<   s    r   rS   z#ImmutableProbabilisticTree.__repr__W   s%   € Ü—-‘- Ó%Ð& b¨¯©«¨°QÐ7Ð7r"   c                 óN   — | j                  d¬«      › d| j                  «       › d�S )Né<   )ÚmarginrQ   rR   )ÚpformatrL   r<   s    r   Ú__str__z"ImmutableProbabilisticTree.__str__Z   s'   € Ø—,‘, b�,Ó)Ð*¨"¨T¯Y©Y«[¨M¸Ð;Ð;r"   c                 ó’   — |s, t        | «      | j                  | | j                  «       ¬«      S t        | «      j                  | «      S )N©rL   )r   r   rL   Úconvert)r   Údeeps     r   ÚcopyzImmutableProbabilisticTree.copy]   s9   € ÙØ”4˜“:˜dŸk™k¨4°d·i±i³kÔBÐBä˜“:×%Ñ% dÓ+Ð+r"   c                 óü   — t        |t        «      rf|D �cg c]  }| j                  |«      ‘Œ }}t        |t        «      r# | |j                  ||j                  «       ¬«      S  | |j                  |d¬«      S |S c c}w )NrZ   g      ð?)Ú
isinstancer   r[   r   r   rL   )ÚclsÚvalÚchildr   s       r   r[   z"ImmutableProbabilisticTree.convertc   si   € ä�cœ4Ô Ø8;Ö<¨u˜Ÿ™ EÕ*Ð<ˆHÐ<Ü˜#Ô1Ô2Ù˜3Ÿ:™: x°c·h±h³jÔAÐAá˜3Ÿ:™: x°cÔ:Ð:àˆJùò =s   •A9rA   )F)
r   rF   rG   r   rO   rS   rX   r]   Úclassmethodr[   © r"   r   rJ   rJ   M   s0   „ óCò*ò8ò<ó,ð ñó ñr"   rJ   c                   ó   — e Zd Zy)ÚImmutableParentedTreeN©r   rF   rG   rd   r"   r   rf   rf   o   ó   „ Ør"   rf   c                   ó   — e Zd Zy)ÚImmutableMultiParentedTreeNrg   rd   r"   r   rj   rj   s   rh   r"   rj   )rJ   r   rf   rj   N)Únltk.probabilityr   Únltk.tree.parentedr   r   Únltk.tree.treer   r   rJ   rf   rj   Ú__all__rd   r"   r   ú<module>ro      sQ   ðõ 0ß >Ý ô:�Dô :ôz Ð0Bô ôD	˜M¨<ô 	ô	 Ð0Aô 	ò�r"   