
    i                        d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ ddl	m
Z
 ddZddZddZdd	Zdd
ZddZdddZedk(  r e e             y)    )annotationsN)Sequence   )remediation_textc                 X    t        j                  t        j                  dddgddd      S )Nz-mzmlx_audio_io.doctor--childTF)capture_outputtextcheck)
subprocessrunsys
executable     h/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/mlx_audio_io/doctor.py_run_child_processr      s-    >>	4i@	 r   c                 |    ddl m}  	  |         t        d       y# t        $ r t        j                          Y yw xY w)Nr   load_native_modulezNative import check: OKr   )_native_loaderr   	Exception	traceback	print_excprintr   s    r   _child_mainr      s>    2
 

#$  s    ;;c                &   | j                   j                         r.t        d       t        | j                   j                                | j                  j                         r/t        d       t        | j                  j                                y y )NzChild stdout:zChild stderr:)stdoutstripr   stderr)procs    r   _print_child_outputr"   #   sa    {{odkk!"{{odkk!" r   c                 F    t        d       t        d       t        d       y )Nz5Likely cause: code-sign failure or binary corruption.zCReinstall the environment and do not copy `.venv` between machines.z5Fix: rm -rf .venv && uv venv --python 3.11 && uv sync)r   r   r   r   _print_corruption_guidancer$   ,   s    	
AB	
OP	
ABr   c                   | j                   dk(  rt        d       t        |        y| j                   dk(  s| j                   dk  rx| j                   dk  rHt        j                  | j                          j
                  }t        d| d| j                     d       nt        d       t                t        |        yt        d	| j                    d
       t        t                      t        |        y)Nr   zDoctor check passed.   z0Doctor check failed: child terminated by signal z (z).z2Doctor check failed: child exited with status 137.r   z.Doctor check failed: child exited with status .)
returncoder   r"   signalSignalsnamer$   r   )r!   sigs     r   _handle_child_resultr-   2   s    !$%D!#1!4??Q..$//!1277CDSET__L\K]]_`aFG"$D!	:4??:K1
MN	

r   c                     ddl m}   |        }t        d       dD ]!  }t        | d|j                  |              # y )Nr   )show_build_infozmlx-audio-io doctor)native_pathbuild_os_namebuild_os_versionbuild_deployment_target
build_archbuild_python_tagbuild_mlx_versionruntime_os_nameruntime_os_versionruntime_archruntime_python_tagruntime_mlx_versionmlx_version_matchesz: ) r/   r   get)r/   infokeys      r   _print_summaryrA   I   s?    !D	
  	R'(r   c                    t        j                  d      }|j                  ddt         j                         |j	                  |       }|j
                  r
t               S t                t               }t        |      S )Nzmlx-audio-io native diagnostics)descriptionr   
store_true)actionhelp)
argparseArgumentParseradd_argumentSUPPRESS
parse_argschildr   rA   r   r-   )argvparserargsr!   s       r   mainrP   `   sf    $$1RSF
	,X=N=NOT"Dzz}D%%r   __main__)return subprocess.CompletedProcess[str])rR   int)r!   rS   rR   None)rR   rU   )r!   rS   rR   rT   )N)rM   zSequence[str] | NonerR   rT   )
__future__r   rG   r)   r   r   r   typingr   r   r   r   r   r"   r$   r-   rA   rP   __name__
SystemExitr   r   r   <module>rZ      s]    "    
   ,
#C.).
& z
TV
 r   