
    mi                         d Z ddlZddlmZ ddlZddlZddlmZ ddl	m
Z
 ddlmZ defd	Zddej                  e   d
ej                  e   fdZy)z=Internal utilities, likely shouldn't be called from outside.
    N)Path   )fatal)DecoratedMain)import_or_fatalmain_modulec                    t        d      }g }|j                         D ]Y  }|j                         s|dz  j                         s(||  dz  j                         s?|j	                  |j
                         [ t        |      dk(  rt        d       y t        |      dk(  r|d   S t        ddj                  |       d	       y )
N.z__init__.pyz.pyr   zCould not find a training package. Use -P, or set DORA_PACKAGE to set the package. Use --main_module or set DORA_MAIN_MODULE to set the module to be excecuted inside the defined package.r   zFound multiple candidates: z, z. Use -P, or set DORA_PACKAGE to set package being searched. Use --main_module or set DORA_MAIN_MODULE to set the module being searched inside the package.)	r   iterdiris_direxistsappendnamelenr   join)r   cwd
candidateschilds       E/var/www/stems/demucs_env/lib/python3.12/site-packages/dora/_utils.py_find_packager      s    
s)CJ .<<>u}4<<>;-s++335!!%**-. :! 9 	: 
ZA	!}+DIIj,A+B C$ $ 	%    packagec                    | #t         j                  j                  d      xs d} |,t         j                  j                  d      }|t        |       }|dz   | z   }t        j
                  j                  dt        t        d      j                                      t        |      }	 |j                  }t        t              st        | d       |S # t        $ r t        d| d       Y :w xY w)NDORA_MAIN_MODULEtrainDORA_PACKAGEr
   r   z"Could not find function `main` in z).main was not decorated with `dora.main`.)osenvirongetr   syspathinsertstrr   resolver   mainAttributeErrorr   
isinstancer   )r   r   module_namemoduler%   s        r   get_mainr*   '   s    jjnn%78CG**..0?#K0GC-+-KHHOOAs49,,./0[)FC{{ dM*FGHK  C2;-qABCs   (C C/.C/)NN)__doc__r   pathlibr   r    typingtplogr   r%   r   utilsr   r#   r   Optionalr*    r   r   <module>r3      sP    	  
    "%s %("++c* BKK<L r   