K iVdZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z m Z mZmZmZmZedZedZedZGddeeZej,jj/eGd d eee eZGd d eee eZGd de eefZGdde eefZGddZGddZGddZy)aContains container classes to represent different protocol buffer types. This file defines container classes which represent categories of protocol buffer field types which need extra maintenance. Currently these categories are: - Repeated scalar fields - These are all repeated fields which aren't composite (e.g. they are of simple types like int32, string, etc). - Repeated composite fields - Repeated fields which are composite. This includes groups and nested messages. N) AnyIterableIteratorListMutableMappingMutableSequenceNoReturnOptionalSequenceTypeVarUnionoverload_T_K_VceZdZdZddgZdeddfdZedede fd Z ede de e fd Z d Z defd Z d edefdZdZdefdZddZddZy) BaseContainerzBase container class._message_listener_valuesmessage_listenerreturnNc ||_g|_y)z Args: message_listener: A MessageListener implementation. The RepeatedScalarFieldContainer will call this object's Modified() method when it is modified. N)rr)selfrs i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/google/protobuf/internal/containers.py__init__zBaseContainer.__init__2s.DDLkeycyNrrs r __getitem__zBaseContainer.__getitem__<rcyrr r!s rr"zBaseContainer.__getitem__@r#rc |j|S)z$Retrieves item by the specified key.rr!s rr"zBaseContainer.__getitem__Ds << rc,t|jS)z0Returns the number of elements in the container.lenrrs r__len__zBaseContainer.__len__Hs t|| rotherc||k( S)z3Checks if another instance isn't equal to this one.r rr,s r__ne__zBaseContainer.__ne__Lsu} rc,t|jSrreprrr*s r__repr__zBaseContainer.__repr__S  rcld|vr|jd|d<|jj|i|y)N sort_functioncmp)poprsort)rargskwargss rr9zBaseContainer.sortVs7& jj1fUmDLLt&v&rc8|jjyr)rreverser*s rr=zBaseContainer.reverse^sLLrrN)__name__ __module__ __qualname____doc__ __slots__rrrintrr"slicerr+boolr/__hash__strr3r9r=r rrrr,s#I.)st SR  UtBx s#$ ('rrcHeZdZdZdgZdededdffd Zdeddfd Zd e deddfd Z d e eddfd Z de de efddfdZdefdZdd ee defdZed e deddfdZed ede eddfdZddZd e e efddfdZdedefdZ ddeddfdZdefdZxZS)RepeatedScalarFieldContainerzGSimple, type-checked, list-like container for holding repeated scalars. _type_checkerr type_checkerrNc2t||||_y)a"Args: message_listener: A MessageListener implementation. The RepeatedScalarFieldContainer will call this object's Modified() method when it is modified. type_checker: A type_checkers.ValueChecker instance to run on elements inserted into this container. N)superrrK)rrrL __class__s rrz%RepeatedScalarFieldContainer.__init__ms G%&%Drvaluec|jj|jj||jj s|jj yy)z6Appends an item to the list. Similar to list.append().N)rappendrK CheckValuerdirtyModifiedrrPs rrRz#RepeatedScalarFieldContainer.append}sKLL**55e<=  ! ! ' ' %%' (rrc|jj||jj||jj s|jj yy)zEInserts the item at the specified position. Similar to list.insert().N)rinsertrKrSrrTrUrrrPs rrXz#RepeatedScalarFieldContainer.insertsMLLT//::5AB  ! ! ' ' %%' (relem_seqct|}|Dcgc]}|jj|}}|r|jj ||j j ycc}w)zBExtends by appending the given iterable. Similar to list.extend().N)iterrKrSrextendrrU)rrZ elem_seq_iterelem new_valuess rr]z#RepeatedScalarFieldContainer.extends\NMBOP$$$$//5PJP ll*%##%Qs"A,r,z RepeatedScalarFieldContainer[_T]cn|jj||jjy)zAppends the contents of another repeated field of the same type to this one. We do not check the types of the individual fields. N)rr]rrUr.s r MergeFromz&RepeatedScalarFieldContainer.MergeFroms( LL##%rr_cn|jj||jjyz8Removes an item from the list. Similar to list.remove().NrremoverrUrr_s rrfz#RepeatedScalarFieldContainer.remove&LL##%rcF|j|}|j||SzDRemoves and returns an item at a given index. Similar to list.pop().r __delitem__rYs rr8z RepeatedScalarFieldContainer.pop# LL ES Lrcyrr rYs r __setitem__z(RepeatedScalarFieldContainer.__setitem__r#rcyrr rYs rroz(RepeatedScalarFieldContainer.__setitem__r#rcft|tr_|j tdt |j j ||j|<|jjy|j j ||j|<|jjy)z(Sets the item on the specified position.NzExtended slices not supported) isinstancerEstep ValueErrormaprKrSrrrUrYs rroz(RepeatedScalarFieldContainer.__setitem__s#u  899d00;;UCdll3 %%',,77>dll3 %%'rcR|j|=|jjyz+Deletes the item at the specified position.NrrrUr!s rrlz(RepeatedScalarFieldContainer.__delitem__  S##%rc||uryt||jr|j|jk(S||jk(S)/Compares the current instance with another one.T)rrrOrr.s r__eq__z#RepeatedScalarFieldContainer.__eq__s< u} %( ]]dll ** DLL  r unused_memocttj|j|j}|j ||Sr)rJcopydeepcopyrrKrb)rr}clones r __deepcopy__z)RepeatedScalarFieldContainer.__deepcopy__s: ) d,,-t/A/A CE OOD Lrc ,tjd)Nz:Can't pickle repeated scalar fields, convert to list first)pickle PickleError)rr;s r __reduce__z'RepeatedScalarFieldContainer.__reduce__s   D FFrr>r)r?r@rArBrCrrrrRrDrXrr]r rbrfr r8rrorErlrFr|rr r __classcell__rOs@rrJrJgsrO)&&& & ("(( ((B(4( &Xb\&d&& 5x|C D& &&& Xc]B  S  U8B<D  (&U3:.&4& !#!$!*FHFrrJc:eZdZdZdgZdededdffd Zdedefd Zd eddfd Z d e d eddfd Z de eddfdZ dede efddfdZdeddfdZdd ee defdZed e d eddfdZed ed e eddfdZdZd ee efddfdZdedefdZxZS)RepeatedCompositeFieldContainerzBSimple, list-like container for holding repeated composite fields._message_descriptorrmessage_descriptorrNc2t||||_y)a Note that we pass in a descriptor instead of the generated directly, since at the time we construct a _RepeatedCompositeFieldContainer we haven't yet necessarily initialized the type that will be contained in the container. Args: message_listener: A MessageListener implementation. The RepeatedCompositeFieldContainer will call this object's Modified() method when it is modified. message_descriptor: A Descriptor instance describing the protocol type that should be present in this container. We'll use the _concrete_class field of this descriptor when the client calls add(). N)rNrr)rrrrOs rrz(RepeatedCompositeFieldContainer.__init__s G%&1Drr;c |jjdi|}|j|j|jj ||jj s|jj|S)z{Adds a new element at the end of the list and returns it. Keyword arguments may be used to initialize the element. r )r_concrete_class _SetListenerrrrRrTrU)rr; new_elements raddz#RepeatedCompositeFieldContainer.addsl;$**::DVDKT334LL $  ! ! ' ' %%' rrPc(|jj}|j|j|j ||j j ||jjs|jjyy)z+Appends one element by copying the message.N) rrrrCopyFromrrRrTrU)rrPrs rrRz&RepeatedCompositeFieldContainer.appendsp**::|jy)z|Extends by appending the given sequence of elements of the same type as this one, copying each individual message. N)rrrrrrbrRrU)rrZ message_classlistenervaluesmessagers rr]z&RepeatedCompositeFieldContainer.extend su ,,<> " " ##KL NNrcR|j|=|jjyrwrxr!s rrlz+RepeatedCompositeFieldContainer.__delitem__>ryrc||uryt||js td|j|jk(S)r{TzSCan only compare repeated composite fields against other repeated composite fields.)rrrOrrr.s rr|z&RepeatedCompositeFieldContainer.__eq__Cs? u}  eT^^ , 9 :: <<5== ((rr)r?r@rArBrCrrrrrRrDrXrr]r rbrfr r8rrorErlrFr|rrs@rrrs\J%%)2s222$ # " ("((((B(4( Xb\ d  8(2,F G &&& Xc]B  S  U8B<D N&U3:.&4& )#)$)rrc 2eZdZdZgdZdededededdf d Zd edefd Z d ede fd Z e d ede efdZe d ededeeeffdZddZd ededefdZd eddfdZdefdZdeefdZdefdZdd ede edefdZddZddZddZdefdZy) ScalarMapzGSimple, type-checked, dict-like container for holding repeated scalars.) _key_checker_value_checkerrr_entry_descriptorr key_checker value_checkerentry_descriptorrNcJ||_||_||_||_i|_ya Args: message_listener: A MessageListener implementation. The ScalarMap will call this object's Modified() method when it is modified. key_checker: A type_checkers.ValueChecker instance to run on keys inserted into this container. value_checker: A type_checkers.ValueChecker instance to run on values inserted into this container. entry_descriptor: The MessageDescriptor of a map entry: key and value. N)rrrrr)rrrrrs rrzScalarMap.__init__Ts+$.D#D'D-DDLrrc |j|S#t$rI|jj|}|jj }||j|<|cYSwxYwr)rKeyErrorrrSr DefaultValue)rrvals rr"zScalarMap.__getitem__lsb \\#      ( ( -c    , , .cdll3 j sAA#"A#itemcT|jj|||jvSrrrSrrrs r __contains__zScalarMap.__contains__us'   & 4<< rcyrr r!s rgetz ScalarMap.get{r#rdefaultcyrr rrrs rrz ScalarMap.getr#rc||vr||S|Srr rs rrz ScalarMap.get d{ #Y nrrPc|jj|}|jj|}||j|<|jj yr)rrSrrrrU)rrrP checked_key checked_values rrozScalarMap.__setitem__sN##..s3K''2259M -DLL##%rcR|j|=|jjyrrxr!s rrlzScalarMap.__delitem__s  S##%rc,t|jSrr(r*s rr+zScalarMap.__len__ t|| rc,t|jSrr\rr*s r__iter__zScalarMap.__iter__r4rc,t|jSrr1r*s rr3zScalarMap.__repr__r4rcl|dk(r td||jvr|j||||S)Nz0The value for scalar map setdefault must be set.)rtrrorYs r setdefaultzScalarMap.setdefaults; } I JJ $,, sE" 9rc|jj|j|jjyr)rupdaterrUr.s rrbzScalarMap.MergeFroms*LL &##%rcP|j}|j|_d|d<yrrrroriginals rInvalidateIteratorszScalarMap.InvalidateIterators#||H==?DLHTNrcl|jj|jjyrrclearrrUr*s rrzScalarMap.clear$LL##%rc.|jjSrrrr*s r GetEntryClasszScalarMap.GetEntryClass  ! ! 1 11rr)r,zScalarMap[_K, _V]rNr>)r?r@rArBrCrrrrr"rFrrr rrr rorlrDr+rrrHr3rrbrrrr rrrrMsQO$)     0RB r d  RHRL  R"r2v   &R&&r& &R&D&s Bx|r&&2S2rrc BeZdZdZgdZdededededdf d Zd edefd Z d edefd Z e d ede efd Z e d ededeeeffdZ ddZ dedefdZd ededefdZd eddfdZdefdZdeefdZdefdZdd ede edefdZddZd dZd dZdefdZy)! MessageMapzESimple, type-checked, dict-like container for with submessage values.)rrrrrrrrrrNcJ||_||_||_||_i|_yr)rrrrr)rrrrrs rrzMessageMap.__init__s+$.D1D#D-DDLrrc6|jj|} |j|S#t$rc|jj }|j |j||j|<|jj|cYSwxYwr) rrSrrrrrrrU)rrrs rr"zMessageMap.__getitem__s    & &s +C \\#  ,,<<>kt556%dll3 %%'  s,A)BBc ||S)aaget_or_create() is an alias for getitem (ie. map[key]). Args: key: The key to get or create in the map. This is useful in cases where you want to be explicit that the call is mutating the map. This can avoid lint errors for statements like this that otherwise would appear to be pointless statements: msg.my_map[key] r r!s r get_or_createzMessageMap.get_or_creates 9rcyrr r!s rrzMessageMap.getr#rrcyrr rs rrzMessageMap.getr#rc||vr||S|Srr rs rrzMessageMap.getrrrcT|jj|}||jvSrrrs rrzMessageMap.__contains__s'    ' ' -D 4<< rrPctd)Nz5May not set values directly, call my_map[key].foo = 5)rtrYs rrozMessageMap.__setitem__s L MMrc|jj|}|j|=|jj yr)rrSrrrUr!s rrlzMessageMap.__delitem__ s6    & &s +C S##%rc,t|jSrr(r*s rr+zMessageMap.__len__rrc,t|jSrrr*s rrzMessageMap.__iter__r4rc,t|jSrr1r*s rr3zMessageMap.__repr__r4rctd)NzISet message map value directly is not supported, call my_map[key].foo = 5)NotImplementedErrorrYs rrzMessageMap.setdefaults   rcb|jD] }||vr||=||j||"yr)rr)rr,rs rrbzMessageMap.MergeFroms;}}%  I 3is$ %rcP|j}|j|_d|d<yrrrs rrzMessageMap.InvalidateIterators)rrcl|jj|jjyrrr*s rrzMessageMap.clear1rrc.|jjSrrr*s rrzMessageMap.GetEntryClass5rrr)r,zMessageMap[_K, _V]rNr>) r?r@rArBrCrrrrr"rrr rrr rFrr rorlrDr+rrrHr3rrbrrrr rrrrshM;)     0 R B  r b  RHRL  R"r2v    r d NRNNxN&R&D& s Bx|r %&2S2rrc*eZdZdZgdZdZdZdZy) _UnknownFieldzA parsed unknown field. _field_number _wire_type_datac.||_||_||_yrr)r field_number wire_typedatas rrz_UnknownField.__init__?s%DDODJ rc4|j|jkSr)rr.s r__lt__z_UnknownField.__lt__Es    3 3 33rc||ury|j|jk(xr4|j|jk(xr|j|jk(SNTrr.s rr|z_UnknownField.__eq__IsQ u}    %"5"5 5 & OOu// / & JJ%++ %'rN)r?r@rArBrCrrr|r rrrr9s7) 4'rrcHeZdZdZdZedZedZedZy)UnknownFieldRefc ||_||_yr)_parent_index)rparentindexs rrzUnknownFieldRef.__init__TsDLDKrc|js td|jt|jk\r tdy)NzAUnknownField does not exist. The parent message might be cleared.)rrtrr)r*s r _check_validzUnknownFieldRef._check_validXsG << > ?? {{c$,,'' > ??(rc|j|jj|jjSr)rr _internal_getrrr*s rrzUnknownFieldRef.field_number`s- << % %dkk 2 @ @@rc|j|jj|jjSr)rrr rrr*s rrzUnknownFieldRef.wire_typefs- << % %dkk 2 = ==rc|j|jj|jjSr)rrr rrr*s rrzUnknownFieldRef.datals- << % %dkk 2 8 88rN) r?r@rArrpropertyrrrr rrrrRsJ? A A  > >  9 9rrcLeZdZdZdgZdZdZdZdZdZ dZ d Z d Z d Z y ) UnknownFieldSetzUnknownField containerrcg|_yrr&r*s rrzUnknownFieldSet.__init__ys DLrc|j tdt|j}|dkr||z }|dks||k\rtdjt ||S)NBUnknownFields does not exist. The parent message might be cleared.rzindex %d out of range)rrtr) IndexErrorrr)rrsizes rr"zUnknownFieldSet.__getitem__|sh || > ?? t|| D qy tme qyETM .44 55 4 ''rc |j|Srr&)rrs rr zUnknownFieldSet._internal_gets << rcZ|j tdt|jS)Nr)rrtr)r*s rr+zUnknownFieldSet.__len__s- || > ?? t|| rcVt|||}|jj||Sr)rrrR)rrrr unknown_fields r_addzUnknownFieldSet._adds(!, 4@MLL & rc#ZKtt|D]}t||ywr)ranger)r)ris rrzUnknownFieldSet.__iter__s+ 3t9 % D! $$%s)+cT|y|jj|jyr)rr]r.s r_extendzUnknownFieldSet._extends  } LL &rc||uryt|j}|| S|jt|j}||k(Sr)listrr9sorted)rr,r other_valuess rr|zUnknownFieldSet.__eq__sK u} $,, F }Z KKM%--(L \ !!rc|jD]7}t|jts|jj 9d|_yr)rrrrr_clearrVs rr#zUnknownFieldSet._clears< EKK 1 DLrN)r?r@rArBrCrr"r r+rrrr|r#r rrrrss;k) (  %' "rr)rBcollections.abc collectionsrrtypingrrrrrrr r r r r rrrrrabcregisterrJrrrrrrr rrr)s        T] T] T]3HRL3p ((7lF=#4ob6IlF`s)mB&79Ls)lj2r2v&j2Z|2B'|2~''299B??r