a `§»eã@sFddlZddlmZddlmZddlZddlZddlZddd„ZdS)éN)Údownload)Úlogú model.onnxc s°| dd¡}tj tj t¡d¡}tjdkr@tj t d¡d¡}tj tj  |¡dd¡}tj ||¡}tj ||¡}tj  |¡sŽtj |d d tj ||¡}tj  |¡s¨t  d |¡d ‰‡fd d„}zt|||d} Wn>ty} z$t  d|t| ƒf¡WYd} ~ dSd} ~ 00tj | ¡ ¡ d¡r‚t  d| ¡t | d¡} |  |¡Wdƒn1sn0Yt | ¡tj  |¡s¢t  d|¡dS|Sn|SdS)NÚ.Ú_z..Úwin32Z PROGRAMDATAZODMÚstorageÚmodelsT)Úexist_okz Downloading AI model from %s ...rcs>t ¡ˆdk}|s t|ƒdkr:t dt|ƒ¡t ¡‰dS)NéédzDownloading: %s%%)ÚtimeÚintrÚODM_INFO)ÚprogressZtime_has_elapsed©Z last_update©ú/code/opendm/ai.pyÚcallbackszget_model..callback)Úprogress_callbackzCannot download %s: %sz.zipzExtracting %s ...Úrz4Cannot find %s (is the URL to the AI model correct?))ÚreplaceÚosÚpathÚjoinÚdirnameÚ__file__ÚsysÚplatformÚgetenvÚabspathÚisdirÚmakedirsÚisfilerrrÚ ExceptionÚ ODM_WARNINGÚstrÚbasenameÚlowerÚendswithÚzipfileÚZipFileÚ extractallÚremove) Ú namespaceÚurlÚversionÚnameÚbase_dirZ namespace_dirZ versioned_dirZ model_filerZdownloaded_fileÚeÚzrrrÚ get_models:    * r5)r) rZ opendm.netrÚopendmrr*r rr5rrrrÚs