L iUddlmZddlmZddlmZddlmZddlm Z ddl m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZddlmZmZmZmZmZm Z erddl!m"Z"dd Z# dd Z$dd Z%dd Z& dd Z'ddZ(y)) annotations) TYPE_CHECKING) assert_never)local)cpp)ArgName BaseCTypeBindingboolT ConstRefCTypeCTypedeviceTlayoutT ListCType MutRefCType NamedCType OptionalCTypescalarT scalarTypeTtensorT)ArgumentFunctionSchemaReturn SelfArgumentTensorOptionsArgumentsType)Sequencect|jj}|jr|dz }|jjr|d|jjz }|S)N_out_)strname is_out_fn overload_name)funcr"s Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torchgen/api/native.pyr"r"3sU tyy~~ D ~~  yy !DII++,-- Kc Vt|dk(rXttt}|r)t j st |t|St |t|St|dk(r4t |tttttSt|dk(r"t |tttSt|dk(r+t |ttttStj||||S)NzTensor?z Tensor?[]ScalarzScalar?mutablebindssymint) r!rr rr!use_const_ref_for_mutable_tensorsrrr rrrargumenttype_type)tr+r,r- tensor_types r&r/r/=s 1v%29W3E%F 5BBDe[%=> >e];%?@ @ Q;  ==79K+L!MN   Q8 %y/A!BCC Q9 %}Yw=O/P!QRR  G5 PPr'c0tj||S)Nr-)r returns_type)rsr-s r&r4r4Qs   Bv ..r'cHt|j|j||S)Nr*)r/typeis_write)ar,r-s r& argument_typer:Us QVVQZZuV TTr'c | }t|trld}|r8|j,tj|j|j |}t t||j||j||gSt|trt|j||St|trd}|rd}t tdtttd||t tdttt d||t tdttt"d||t td ttt$d ||gSt'|y) Nr3)r,r-)nctyper"defaultargument)is_outr-z{}dtypelayoutdevice pin_memory) isinstancerr=r default_exprr7r r:r"rr>rrrr rrrr r)r9r?r-should_defaultr=s r&r>r>YsW ZN!X" aii3&&qyy!&&HG $QaffVDVV     A| $ 6&AA A- . G !'=;9O+PQ   !(M)G:L,MN   !(M)G:L,MN   !, i>N0OP!  '  6 Qr'c  g}|j|jj|j|jj|Dcgc]%}t |||j D]}|'c}}Scc}}w)N)r-r?)extend argumentsnon_outoutr>r#)r%r-argsargrs r&rIrIsrCEDKK&&'KK""# 8Ct~~GW#X     s*BN)r%rreturnr!) r0rr+boolr,rr-rPrOr)r5zSequence[Return]r-rPrOr )r9rr,rr-rPrOr)r9z0Argument | SelfArgument | TensorOptionsArgumentsr?rPr-rPrO list[Binding])r%rr-rPrOrQ)) __future__rtypingrtyping_extensionsrtorchgenr torchgen.apirtorchgen.api.typesrr r r r r rrrrrrrrrtorchgen.modelrrrrrrcollections.abcrr"r/r4r:r>rIr'r&r[s" *"(Q QQ&-Q7;QQ(/U=7= =  =  =@r'