L iddlmZddlmZddlmZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZddlmZmZmZmZmZmZmZmZm Z d dZ!ddZ"ddZ#dd Z$dd Z%dd Z&y )) annotations) assert_never)cpp)ArgName ArrayRefCType BaseCTypeBinding ConstRefCType dimnameListT intArrayRefTiOptTensorListRefTiTensorListRefT NamedCType OptionalCTypeoptionalIntArrayRefToptionalScalarRefToptionalTensorRefTscalarTtensorT) ArgumentBaseTyBaseTypeListTypeNativeFunctionsGroup OptionalType SelfArgumentTensorOptionsArgumentsTypecLtj|d||}||St|tr|jt j k(r"t|tttS|jt jk(r"t|tttStd|t|tr |jtt j k(rt|tt S|jtt jk(rt|tt"St|jt$r;t'|jjdk(rt|tt(St+|j||}t|t-|j.St|t$r)|jtt j k(r"t|ttt0S|jttt j k(rt|tt2St'|jdk(rt|tt4St'|jdk(rt|tt6St+|j||}t|t9|j.Stdt;|)NF)symintbindsmutablez&base type should have been value type intr"r!Dimnamezunrecognized type )rvaluetype_type isinstancernamerTensorrr rrScalarrAssertionErrorrelemrrrstrrargumenttype_typertyperr r r rrepr)tr"r!rr,s ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torchgen/api/structured.pyr.r.-s. 1U%IA}!X 66V]] "e]9W3E%FG G VVv}} $e]9W3E%FG G #I!!MN N A| $ 66Xfmm, ,eY/A%BC C VVx . .eY/A%BC C  )c!&&++.>%.GeY/C%DE E F%tyy!9:: Ax 66Xfmm, ,e]9_3M%NO O VV|HV]]$;< <eY/A%BC C[E !eY|%<= = [I %eY|%<= = F%tyy!9::1$q';<<cFt|j|j|S)Nr$)r.r/is_write)ar!s r3 argument_typer8Zs QVVQZZu EEr4ct|tr/tt||j|jd|gSt|t rt |j St|tr tdt|y)N)r!)nctyper(defaultargumentz2structured kernels don't support TensorOptions yet) r'rr r8r(rr<rr+r)r7s r3r<r<esr!X $Qaff5VV     A| $ ## A- .QRRQr4c^g}|jjrg}|jjjjD]}t |t ri|j|jjjvr=|j|jjj|j||j||j||j|jjjn9|j|jjjj|j|jjjj|Dcgc]}t|D]}|c}}Scc}}wN) out precomputedfunc argumentsnon_outr'rr(replaceextendappendaddr<)gargsnon_out_args_replacedr7argr2s r3impl_argumentsrLws2CEDuu  %%-- 0A!X&166QUU5F5F5N5N+N&,,QUU->->-F-Fqvv-NO&,,Q/ 0 )* AEE%%))* AEEJJ((001KK $$(() 5#x} 5!A 5A 55 5s F)cg}|j|jjjj|Dcgc]}t |D]}|c}}Scc}}wr>)rE functionalrArBrCr<rHrIrKr2s r3meta_argumentsrPsMCEDKK !!++334 5#x} 5!A 5A 55 5Acg}|j|jjjj|Dcgc]}t |D]}|c}}Scc}}wr>)rEr?rArBr<rOs r3 out_argumentsrSsKCEDKK $$(() 5#x} 5!A 5A 55 5rQN)r1rr"boolr!rreturnr)r7rr!rrUr)r7z0Argument | SelfArgument | TensorOptionsArgumentsrU list[Binding])rHrrUrV)' __future__rtyping_extensionsr torchgen.apirtorchgen.api.typesrrrr r r r r rrrrrrrrtorchgen.modelrrrrrrrrrr.r8r<rLrPrSr4r3r]sV"*$   **=ZF$6<6 6r4