JL iddlmZddlmZmZddlmZGddeZGddeeZGdd eeZ Gd d eeZ gd Z y ))ProbabilisticMixIn)MultiParentedTree ParentedTree)TreecveZdZdfd ZdZdZdZdZdZdZ dZ d Z dd Z d Z d Zd ZdZdZxZS) ImmutableTreect||| t|jt |f|_y#t tf$r'}tdt|jz|d}~wwxYw)Nz-%s: node value and children must be immutable) super__init__hash_labeltuple_hash TypeError ValueErrortype__name__)selfnodechildrene __class__s Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/nltk/tree/immutable.pyr zImmutableTree.__init__sg x( t{{E$K89DJ:& BT$ZEXEXX  s%9A/"A**A/cDtdt|jzN%s may not be modifiedrrr)rindexvalues r __setitem__zImmutableTree.__setitem__1DJ4G4GGHHcDtdt|jzrr)rijrs r __setslice__zImmutableTree.__setslice__r!r"cDtdt|jzrr)rrs r __delitem__zImmutableTree.__delitem__"r!r"cDtdt|jzrr)rr$r%s r __delslice__zImmutableTree.__delslice__%r!r"cDtdt|jzrrrothers r__iadd__zImmutableTree.__iadd__(r!r"cDtdt|jzrrr,s r__imul__zImmutableTree.__imul__+r!r"cDtdt|jzrrrvs rappendzImmutableTree.append.r!r"cDtdt|jzrrr2s rextendzImmutableTree.extend1r!r"cDtdt|jzrrr2s rpopzImmutableTree.pop4r!r"cDtdt|jzrrr2s rremovezImmutableTree.remove7r!r"cDtdt|jzrrrs rreversezImmutableTree.reverse:r!r"cDtdt|jzrrr<s rsortzImmutableTree.sort=r!r"c|jSN)rr<s r__hash__zImmutableTree.__hash__@s zzr"clt|dr!tdt|jz||_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 rN)hasattrrrrr )rrs r set_labelzImmutableTree.set_labelCs0 4 "5T 8K8KKL L r"rA)r __module__ __qualname__r r r&r(r*r.r0r4r6r8r:r=r?rBrE __classcell__)rs@rrrsZ IIIIIIIIIIIIr"rc>eZdZddZdZdZdZd dZedZ y) ImmutableProbabilisticTreeNc tj|||tj|fi|t|jt ||j f|_yrA)rr rr r rprobr)rrr prob_kwargss rr z#ImmutableProbabilisticTree.__init__NsHtT84##D8K84;;d TYY[AB r"ctSrA)rJr<s r _frozen_classz(ImmutableProbabilisticTree._frozen_classTs))r"cTtj|d|jdS)N [])r__repr__rLr<s rrSz#ImmutableProbabilisticTree.__repr__Ws%--%&b Q77r"cN|jdd|jdS)N<)marginrQrR)pformatrLr<s r__str__z"ImmutableProbabilisticTree.__str__Zs',,b,)*"TYY[M;;r"c|s,t||j||jSt|j|S)NrL)rr rLconvert)rdeeps rcopyzImmutableProbabilisticTree.copy]s94:dkk4diikB B:%%d+ +r"ct|trf|Dcgc]}|j|}}t|tr#||j||j S||j|dS|Scc}w)NrZg?) isinstancerr[rr rL)clsvalchildrs rr[z"ImmutableProbabilisticTree.convertcsi c4 8;rosQ0>:D:z0BD M<  0A  r"