L i# FdZddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddl m Z ddl mZddl mZddl mZdd l mZdd l mZdd l mZdd l mZdd l mZddl mZddl mZe j0dk\Ze j0dk\Ze j0dk\Ze j0dk\Ze j0dk\Ze j0dk\Ze j0dk\Ze j0dk\Z ejBdk(Z"ejBdk(Z#e$e jJdZ&e jjOdZ(e jjOdZ)dejTjWvZ,e jZdkDZ.e$e#Z/ej`Z1edd !Z2Gd"d#e jfZ4d:d$Z5erd;d%Z6nd;d&Z6e jnse rdd'l8m9Z:nddl:Z:e jnser ejvZne?Z@dd)lAmBZBe@fd*Z>d+ZCd,ZDd=d-ZEd>d.ZFd?d/ZGd0ZHd@d1ZIdddd2iieJd3d4d5d6eIf dAd7ZKdBd8ZLdBd9ZMe&rddlNZNeNjZPyddlQZQeQjZPy)Cz1Handle Python version/platform incompatibilities.) annotationsN)Any)Callable)Dict)Iterable)List)Mapping)Optional)Sequence)Set)Tuple)Type)TypeVar)rbeta)rr)r )r )r )r )r )rPyPyCPythonPy_GIL_DISABLEDwindarwinaarchl_T_coT) covariantcTeZdZUded<ded<ded<ded<ded<d ed <d ed <y ) FullArgSpec List[str]args Optional[str]varargsvarkwzOptional[Tuple[Any, ...]]defaults kwonlyargszOptional[Dict[str, Any]]kwonlydefaultszDict[str, Any]rN)__name__ __module__ __qualname____annotations__\/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/util/compat.pyr#r#<s+ O  '',,r1r#c tj|r |j}tj|st |d|j }tj |st |d|j}|j}|j}t|d|}t||||z}||z }d}|jtjzr|j|}|dz}d}|jtjzr|j|}t||||j||j |j"S)z9Fully vendored version of getfullargspec from Python 3.3.z is not a Python functionz is not a code objectNr)inspectismethod__func__ isfunction TypeError__code__iscode co_argcount co_varnamesco_kwonlyargcountlistco_flags CO_VARARGSCO_VARKEYWORDSr# __defaults____kwdefaults__r/) funcconargsnamesnkwargsr%r*r'r(s r2inspect_getfullargspecrIFs7}}   d #4(";<== B >>" 2& 5677 NNE NNE""G fu DeEEGO45J WEG {{W'''..'  E {{W+++u%       r1c.tjdS)NF)usedforsecurityhashlibmd5r0r1r2md5_not_for_securityrOos{{511r1c*tjSNrLr0r1r2rOrOts{{}r1)metadatacH|j}|j||SrQ)copyupdateabs r2 dict_unionrYs FFH  r1) AsyncIteratorcKt|tstdt|t|j} ||d{S7#t $r|t ur|cYSwxYww)z9vendored from https://github.com/python/cpython/pull/8895z%anext expected an AsyncIterator, got N) isinstancerZr8type __anext__StopAsyncIteration _NOT_PROVIDED)async_iteratordefaultanxts r2anext_rdsu.-87^8L7MN N#-- n-- --! -'N s;=A, A A AA,AA)&A,(A))A,ctj}tjs t |dr|j |S|j |dS)Nselect)groupr0)importlib_metadata entry_pointstyping TYPE_CHECKINGhasattrrfget)rgeps r2importlib_metadata_getrosD  ( ( *B wr84yyuy%%vveR  r1c$|jdS)Nzlatin-1)encode)ss r2rXrXs 88I r1cJtj|jdSNascii)base64 b64decoderqxs r2rwrws   AHHW- ..r1cJtj|jdSrt)rv b64encodedecoderxs r2r{r{s   A  % %g ..r1c(|j|dS)Nbackslashreplace)errors)r|)textencodings r2decode_backslashreplacers ;;x(:; ;;r1c||kD||kz SrQr0rVs r2cmprs Ea!e r1ct|tr|St|dddk(r+t|j ddj ddSt|t rA|j d|fvrt|jS|j dz|jzSt|tjrt|j ddSt|j ddS) zvendored from python 3.7r-Nrjztyping.~builtins.) r\strgetattrreprreplacer]r-r.rjr) annotation base_modules r2_formatannotationrs*c"z<.(:J'' 26>>sBGG*d#  Z$= = //0 0$$s*Z-D-DDD J /J''R00   # #C ,,r1r0c d|zS)N*r0names r2rs sTzr1c d|zS)Nz**r0rs r2rrs TD[r1cdt|zS)N=)r)values r2rrscDK6Gr1cdt|zS)Nz -> )r)rs r2rrsvD 7Ir1c d |xsi}xsi fd} g}|rt|t|z }nd}t|D]6\}}| |}|r||k\r|| |||z z}|j|8||j|| |n|r|jd|r4|D]/}| |}|r||vr|| ||z }|j|1||j| | |ddj|zdz}dvr||  dz }|S)a>Copy formatargspec from python 3.7 standard library. Python 3 has deprecated formatargspec and requested that Signature be used instead, however this requires a full reimplementation of formatargspec() in terms of creating Parameter objects and such. Instead of introducing all the object-creation overhead and having to reinvent from scratch, just copy their compatibility routine. Ultimately we would need to rewrite our "decorator" routine completely which is not really worth it right now, until all Python 2.x support is dropped. cB|}|vr|d|zz }|S)Nz: r0)argresultrformatannotation formatargs r2formatargandannotationz5inspect_formatargspec..formatargandannotations33 +  d-k#.>?? ?F r1r(z, )return)len enumerateappendjoin)r%r'r(r)r*r+rr formatvarargs formatvarkw formatvalue formatreturnsrrspecs firstdefaultirspec kwonlyargrs `` ` r2inspect_formatargspecrsa:$)rN#K E4y3x=0  D/3%c* \)+hq> LL      [!7!>?@ 499U# #c )F;- 0X1F GHH Mr1cZtj|rtj|SgS)zReturn a sequence of all dataclasses.Field objects associated with a class as an already processed dataclass. The class must **already be a dataclass** for Field objects to be returned. ) dataclasses is_dataclassfields)clss r2dataclass_fieldsrs($!!#&& r1ctj|r]t}|jD]}|j t |tj |Dcgc] }||vs| c}SgScc}w)zReturn a sequence of all dataclasses.Field objects associated with an already processed dataclass, excluding those that originate from a superclass. The class must **already be a dataclass** for Field objects to be returned. )rrset __bases__rUrr)r super_fieldssupfs r2local_dataclass_fieldsr"sn$47E == 7C    0 5 6 7&--c2Laa|6KLL Ms " A5,A5)rDzCallable[..., Any]rr#)rr)rWdictrXrrr)ryrrbytes)ryrrr)rrrrrrrQ)r%r$r'r&r(r&r)zOptional[Sequence[Any]]r*zOptional[Sequence[str]]r+zOptional[Mapping[str, Any]]rzMapping[str, Any]rCallable[[str], str]rrrrrCallable[[Any], str]rrrrrr)rz Type[Any]rz Iterable[dataclasses.Field[Any]])S__doc__ __future__rrvrrMr4operatorplatformsys sysconfigrjrrrrrr r r r r rr version_infopy314b1py314py313py312py311py310py39py38python_implementationpypycpythonboolget_config_var freethreading startswithwin32osxmachinelowerarmmaxsizeis64bithas_refcount_gc attrgetter dottedgetterr NamedTupler#rIrOrk importlibrRrhor_rYanextrdobjectr`collections.abcrZrorXrwr{rrrrrrr threadingRLockmini_gil contextlib nullcontextr0r1r2rs8"      3 3 G# G# G# G# G# 6! 6!%x%%'61 (( ( ( *i 7-Y--.?@A  & llh' !!!#))++ ++ w-"" 4( &## #L2  48 4J  FHM--:  !//<-&"(,*,24%'&)*A(@(G*I->E E E E& E ( E 0 E#E$E(E&E&E(E+E EP $y HE%z%%'Hr1