fL i4"UdZddlmZddlZddlmZmZmZm Z ddl m Z m Z m Z mZddlZddlmZddlmZddlmZd d lmZe r3e eedze fZd ed <e e ee zeee fzeee e fzZd ed <GddeZGddZddZy)z:Tools to provide pretty/human-readable display of objects.) annotationsN)Callable Collection GeneratorIterable) TYPE_CHECKINGAny ForwardRefcast) TypeAlias)typing_objects)is_union_origin) _typing_extrar ReprArgsRichReprResultceZdZdZddZy) PlainReprzString class where repr doesn't include quotes. Useful with Representation when you want to return a string representation of something that is valid (or pseudo-valid) python. ct|SN)strselfs ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pydantic/_internal/_repr.py__repr__zPlainRepr.__repr__s 4yNreturnr)__name__ __module__ __qualname____doc__rrrrrs rrcPeZdZdZd dZd dZd dZddZddZddZ d dZ d d Z y )Representationr#ctttj}|s&t drj j }fd|D}|Dcgc]!\}}| ||ur|nj|f#c}}Scc}}w)a-Returns the attributes to show in __str__, __repr__, and __pretty__ this is generally overridden. Can either return: * name - value pairs, e.g.: `[('foo_name', 'foo'), ('bar_name', ['b', 'a', 'r'])]` * or, just values, e.g.: `[(None, 'foo'), (None, ['b', 'a', 'r'])]` __dict__c3:K|]}|t|fywr)getattr).0srs r z/Representation.__repr_args__..1s<1!WT1%&)typerid)robjects rr0z!Representation.__repr_recursion__8s( V 5 56i6 |1MMrcN|jd|jDS)Nc3JK|]\}}| t|n|d|yw)N=)repr)r*r3r4s rr,z.Representation.__repr_str__..>s+e1 T!W!AaU|Ces!#)joinr5)rjoin_strs r __repr_str__zRepresentation.__repr_str__=s!}}ePTPbPbPdeeerc+K|jdzd|jD] \}}||dz||dd"ddyw) zRUsed by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.(rNr@,r))r8r5)rfmtkwargsnamevalues r __pretty__zRepresentation.__pretty__@sk  "S((--/ KD%Sj e* IG    sAAc#VK|jD]\}}|| ||fyw)zYUsed by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.N)r5)rrL field_reprs r __rich_repr__zRepresentation.__rich_repr__Ms9 $ 2 2 4 ' D*|  J&&  's')c$|jdS)N )rDrs r__str__zRepresentation.__str__Us  %%rcL|jd|jddS)NrF, rI)r8rDrs rrzRepresentation.__repr__Xs+$$&'q):):4)@(ACCrN)rrr)r=r rr)rCrrr)rJzCallable[[Any], Any]rKr rzGenerator[Any])rr) rr r!r-r5r8r0rDrNrQrTrr#rrr%r%s5 I l'N f '&Drr%ct|tjtjfr |jS|duryt|t r t |St|tstj|r t|St|tjtjtfs |j}t!t#j$|r8dj't)t*t#j,|}d|dSt|tjrtj.t#j$|r3dj't)t t#j,|}n2dj't)t*t#j,|} |j0d|dSt|tr |j0St |j5ddj5d dS#t2$r.t|j5ddj5d dcYSwxYw) zPretty representation of a type, should be as close as possible to the original type definition string. Takes some logic from `typing._type_repr`. .z...rVzUnion[][ztyping.ztyping_extensions.) isinstancetypes FunctionTypeBuiltinFunctionTyperr%rAr r is_typealiastyperr typing_base WithArgsTypesr;r7rtyping_extensions get_originrBmapdisplay_as_typeget_args is_literalr!AttributeErrorreplace)objargss rrere\s #**E,E,EFG||  C (Cy C $(G(G(L3x cM55}7R7RTXY Zmm(33C89yy_.?.H.H.MNOvQ C44 5  $ $%6%A%A#%F G99S'8'A'A#'FGHD99S2C2L2LS2QRSD U&&'qa0 0 C Cy  B/778LbQQ  Us8##Ir2::;OQST T UsH4II)rjr rr)r" __future__r _annotationsr\collections.abcrrrrtypingrr r r rbr typing_inspectionr typing_inspection.introspectionrrZrtuplerr__annotations__rrr%rer#rrrts@2 EE77',;"5tS#9:Hi: (uSz)9E#s(O)KeTWY\^aTaNb)b cNIc:D:Dz Rr