;iUddlZddlZddlmZddlmZmZmZmZddl m Z m Z ddl m Z m Z mZddlmZmZdgZdaeed <daeed <Gd de ZGd d ZGddZ d!deededeeedeedeedeedeededeedeedefdZd"dZdededdfd ZdS)#N)Path)AnyDictOptionalSequence)ffi load_mono)Runtime RuntimeInfo StrOrPath)optional_path_as_stringpath_as_stringMono_MONO _ROOT_DOMAINceZdZddddddddddd deedeededeeedeed eed eed eed ed eedeefdZde dededdfdZ de fdZ ddZ dS)rNF) domaindebug jit_options config_fileglobal_config_file assembly_dir config_dirset_signal_chaining trace_mask trace_levellibmonorrrrrrrrrrc i|_tt|||t||||| | |  |_|t|_dSt )N) rrrrrrrrrr) _assemblies initializer_versionr_domainNotImplementedError) selfrrrrrrrrrrrs CC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\clr_loader/mono.py__init__z Mono.__init__si-/'/ <<#67IJJ%! 3!#      >'DLLL% % assembly_pathtypenamefunctionreturn MonoMethodct|}|j|}|s]t|jt |d}t|d|||j|<t |}t|dt||}| |}t|d|d|dt|S)Nutf8zUnable to load assembly z"Unable to load image from assemblyzCould not find method .z in assembly) rr getrmono_domain_assembly_openr#rencode _check_resultmono_assembly_get_image MethodDescsearchr-)r%r)r*r+assemblyimagedescmethods r& _get_callablezMono._get_callable5s]++ #'' 66 766 n];;BB6JJH ($N}$N$N O O O.6D ] +--h77eABBB(H--U## NXNNNNN   &!!!r(cBtd|jdtduiS)NrT)kindversion initializedshutdown properties)r r"rr%s r&infoz Mono.infoLs.Md]     r(cdSNrCs r&rAz Mono.shutdownUs  r(r,N)__name__ __module__ __qualname__rrstrboolrr'r r<r rDrArGr(r&rrsK !%/3&*-1&*$($)$(%)!&!&!&$!& !&  !& hsm, !&d^!&%TN!&sm!&SM!&"!&SM!&c]!&!&!&!&F"&"25"AD" """". k          r(c0eZdZdedefdZdefdZdZdS)r6r*r+c|d||_t|jdd|_dS)N:r/r)_descrmono_method_desc_newr3_ptr)r%r*r+s r&r'zMethodDesc.__init__\sH --8-- .. J  f % %    r(r9cBt|j|SrF)r mono_method_desc_search_in_imagerS)r%r9s r&r7zMethodDesc.searchcs55diGGGr(cVtr!t|jdSdSrF)rmono_method_desc_freerSrCs r&__del__zMethodDesc.__del__fs0  3  ' ' 2 2 2 2 2 3 3r(N)rIrJrKrLr'r7rXrGr(r&r6r6[se      HCHHHH33333r(r6ceZdZdZdZdS)r-c||_dSrF)rS)r%ptrs r&r'zMonoMethod.__init__ls  r(ctjd}tjd}tjd|}tjd|}||d<||d<t|jtj||}t |dtjdt|}t |d|dS) Nz MonoObject**zvoid*[2]zvoid**zint32_t*rrzFailed to call methodzFailed to convert result to int) r newrmono_runtime_invokerSNULLr4castmono_object_unbox) r%r[size exceptionparamsptr_ptrsize_ptrresunboxeds r&__call__zMonoMethod.__call__osGN++ $$'(C((7:t,,q q '' 38VYOOc2333(:u'>'>s'C'CDDg@AAAqzr(N)rIrJrKr'rirGr(r&r-r-ks2r(r-Frrrrrrrrrrr,c ptt|a|-t|d| -t| d|C|At|d|d|p t j} t| |d}|d} |r5d|D} t t| | ng} |rt d|r$t tj tdattd| t#tdt} t#| dt j| d}t+jd |}|ot/|d }t/|d }|d ks |d kr|d krddl}|dt7jt:|S)Nr/c^g|]*}tjd|d+S)zchar[]r/)r r]r3).0os r& zinitialize..s0PPPqswx&)9)9::PPPr(Ts clr_loader.zFailed to initialize MonozFailed to get Mono versionz'^(?P\d+)\.(?P\d+)\.[\d.]+majorminor rzHosting Mono versions before v6.12 is known to be problematic. If the process crashes shortly after you see this message, try updating Mono to at least v6.12.)rr mono_trace_set_mask_stringr3mono_trace_set_level_string mono_set_dirsr r_mono_config_parsemono_jit_parse_optionslenmono_set_signal_chainingmono_debug_initMONO_DEBUG_FORMAT_MONO mono_jit_initrmono_domain_set_configr4mono_get_runtime_build_infostringdecoderematchintgroupwarningswarnatexitregister_release)rrrrrrrrrrglobal_encodedconfig_encodedoptionsbuildver_strverrqrrrs r&r!r!sx }'""  !  , ,Z->->v-F-F G G G  "  - -k.@.@.H.H I I I  # (>    3 3F ; ;Z=N=Nv=V=V W W W,7sx ///  K$++F33  PPKPPPG  ( (Ww ? ? ? ?G  1  * *4 0 0 0  @  ! !%"> ? ? ?**=99  $$\4HHHl$?@@@  - - / /E%5666j&&v..G (=w G GC CIIg&&''CIIg&&'' 199! OOO MM3     OH Nr(cpt,t'ttdadadSdSdSrF)rrmono_jit_cleanuprGr(r&rrs=E$5 |,,,  $5$5r(rgmsgcH|tjks|st|dSrF)r r_ RuntimeError)rgrs r&r4r4s& chc3r() FNNNNNFNNrH)rrpathlibrtypingrrrrr r typesr r r utilrr__all__r__annotations__rrr6r-rMrLr!rr4rGr(r&rsf 000000000000222222222299999999 (s cG G G G G 7G G G T 3 3 3 3 3 3 3 3 4+/!%(,"& $ % $!%GG d^G G(3-(G# G ! G 3- G GG G#G GGGGT s        r(