
    i`W                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
JrJrJrJr  S SKJrJr  S SKJrJrJrJrJr  S SKJr  S SKJr  S SKJrJr  S S	KJ r J!r!  S S
K"J#r#J$r$J%r%  S SK&J'r'J(r(  \RR                  " \*5      r+S\\,   4S jr-S\S\\\,   \\,   4   4S jr.S\/S\\\,   \\,   4   4S jr0S\14S jr2S\\,   S\\,   S\,4S jr3S\\,   S\\,   S\\,   S\\,   4S jr4S\14S jr5S\\,   S\\,   S\\,   S\4S jr6S\\,   S\4S jr7S\,S\14S jr8S\S\4S jr9 S6S \ Rt                  S!\ Rv                  S\(S\\,   S"\\,   S#\/SS4S$ jjr<S%\1S&\1S'\\'   S(\S"\\,   S\(S)\\,   SS4S* jr=S\,4S+ jr>S\,4S, jr?S\ Rv                  4S- jr@S7S \\\,      S\4S. jjrAS/\\\,      S\\/   4S0 jrBS1\,S\4S2 jrCS8S3\S4\1S\,4S5 jjrDg)9    N)	dataclass)dirnamejoinnormpathrealpath)	FrameTypeTracebackType)AnyListOptionalSequenceTuple)OmegaConfBaseException)ConfigSearchPathImpl)ConfigSearchPathSearchPathQuery)get_valid_filenamevalidate_config_path)CompactHydraExceptionInstantiationExceptionSearchPathException)RunModeTaskFunctionreturnc                  p    / SQn U  H,  nU[         R                  ;   d  M  [         R                  U   s  $    g )N)HYDRA_MAIN_MODULEFB_PAR_MAIN_MODULEFB_XAR_MAIN_MODULEosenviron)module_envs
module_envs     T/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/hydra/_internal/utils.py_get_module_name_overrider%      s1    SK!
#::j)) "     task_functionc                    [        U S5      (       a  U R                  n [        U S5      (       a  M  U R                  n[        5       nUb  UnUS;  a  S nUnX44$  [        R
                  " U 5      nS nX44$ ! [         a    S n Nf = f)N__wrapped__)N__main__)hasattrr)   
__module__r%   inspectgetfile	TypeError)r'   mdloverridecalling_filecalling_modules        r$   0detect_calling_file_or_module_from_task_functionr4   %   s     -
/
/%11 -
/
/ 
"
"C(*H $$ ''	 "??=9L ''	  	 L	 s   A5 5BBstack_depthc                    [         R                  " 5       nX   n[        5       (       a8  SUS   R                  ;   a%  US   R                  S   S   n[	        US5      nUS 4$ UR
                  nS n [        5       nUc  US   R                  US      R                  nXE4$ ! [         a5     US   R                  S   R                  n XE4$ ! [         a      XE4$ f = ff = f)N_dhr   znotebook.ipynb   self)
r-   stackis_notebook	f_globalsr   filenamer%   r,   KeyErrorf_locals)r5   r:   framepynb_dirr2   r3   s         r$   .detect_calling_file_or_module_from_stack_framerB   @   s    MMOEE}}%("4"448%%e,Q/H&67T!!>>LN24!"1X//a9DDN ''  	"1X..v6AAN ''  	''	s*   0,B 
C*C


CCCCc                  ~     [        5       R                  R                  n U S:X  a  gU S:X  a  gg! [         a     gf = f)NZMQInteractiveShellTTerminalInteractiveShellF)get_ipython	__class____name__	NameError)shells    r$   r;   r;   Y   sG    	''00))00 s   $/ / 
<<r2   r3   c                    U bL  [         R                  R                  U 5      n[        [         R                  R	                  U5      S   5      nU$ Ub%  UR                  S5      nUS:w  a	  XS-   S  nU$ Un U$ [        5       e)Nr   .   )r    pathbasenamer   splitextrfind
ValueError)r2   r3   target_file	task_namelast_dots        r$   detect_task_namerW   f   s    gg&&|4&rww'7'7'DQ'GH	  
	#!'',r>&!|~6I 	 'I  lr&   config_pathc                    Ub>  [         R                  R                  U5      (       a  U$ UR                  S5      (       a  U$ U b1  [	        [        U 5      5      nUb  [        X25      nOg [        U5      nU$ Ub  UR                  S5      nUS:w  a  USU nOSnUb  UR                  [         R                  R                  S5      n[        R                  US5      (       aJ  U[        S5      S  nUR                  S5      nUS:w  a  USU nOSn[        R                  US5      (       a  MJ  SU-   nUb  US:w  a
  US-   U-   nU$ XB-   nU$ [        5       e)Nzpkg://rL   rM   r    /z../)r    rO   isabs
startswithr   r   r   r   rR   replacesepstrlenrS   )r2   r3   rX   abs_base_dirsearch_path_dirrV   s         r$   compute_search_path_dirrd   v   sm   
 77==%%!!(++ 56""<=O"?38 7 
	#!'',r>+Ah7NN"%--bggkk3?K..e44)#e*,7)//4r>%3Ah%?N%'N ..e44 #^3"#"1C"7+"E 	 #2"?  lr&   c                      [         R                  " 5       n [        U 5      S:  a=  U S   R                  nUR	                  S5      (       a  gUR	                  S5      (       a  g[
        R                  " 5       SL$ )z0
Attempts to detect if running under a debugger
r8   z/pdb.pyTz
/pydevd.pyN)r-   r:   ra   r=   endswithsysgettrace)framesr=   s     r$   is_under_debuggerrk      se     ]]_F
6{a":&&Y''|,, <<>%%r&   c                 0    [        XU5      n[        U5      $ N)rd   create_config_search_path)r2   r3   rX   rc   s       r$   #create_automatic_config_search_pathro      s    
 .lKXO$_55r&   rc   c                 H   SSK Jn  SSKJn  [	        5       nUR                  SS5        U b  UR                  SU 5        UR                  5       R                  U5      nU H-  nU" 5       n[        Xb5      (       d   eUR                  U5        M/     UR                  SS5        U$ )	Nr   Plugins)SearchPathPluginhydrazpkg://hydra.confmainschemazstructured://)
hydra.core.pluginsrr    hydra.plugins.search_path_pluginrs   r   appendinstancediscover
isinstancemanipulate_search_path)rc   rr   rs   search_pathsearch_path_pluginssppplugins          r$   rn   rn      s    *A&(Kw 23"6?3!**,556FG"&3333%%k2 #
 x1r&   namec                 b    U [         R                  ;   =(       a    [         R                  U    S:H  $ )N1r   )r   s    r$   _is_env_setr      s$    2::9"**T"2c"99r&   funcc                 j    U " 5       $ ! [          Ga  n[        S5      (       d  [        5       (       a  Ue [        U[        5      (       a  [
        R                  R                  [        U5      [        R                  -   5        [        UR                  [        5      (       aC  [
        R                  R                  [        UR                  5      [        R                  -   5        GOUR                  nSnUS:  aN  Uc  OJUR                  nUR                  nUS-
  n[         R"                  " U5      R$                  S:X  a  OUS:  a  MN  US:X  d  Uc+  [&        R(                  " 5         [
        R*                  " S5        UnSnUb`  UR                  n[         R,                  " U5      nUb  UR.                  OSnUR1                  S5      (       a  OUR                  nUS-   nUb  M`  [2         " S S	5      5       n	Un
U	" 5       nUnSn U
R4                  Ul        U
R6                  Ul        U
R                  Ul        XS-
  :X  a  O:US-   nU	" 5       Ul        UR                  nU
R                  c   eU
R                  n
Mv  [&        R8                  " S XS
9  [
        R                  R                  S5        Oa! [          aT  n[
        R                  R                  S[        R                  -   [;        U5      -   [        R                  -   5        UeS nAff = f[
        R*                  " S5         S nAg S nAff = f)NHYDRA_FULL_ERROR
   r   rN   run_jobrZ   z
omegaconf.c                   `    \ rS rSr% Sr\\S'   Sr\\	   \S'   Sr
\\   \S'   Sr\\   \S'   Srg))run_and_report.<locals>.FakeTracebackTypei  Ntb_nexttb_frametb_lasti	tb_lineno )rH   r,   __qualname____firstlineno__r   r
   __annotations__r   r   r   r   intr   __static_attributes__r   r&   r$   FakeTracebackTyper     s7    '++8<(9"5<26(3-637	8C=7r&   r   )valuetbzM
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
z6An error occurred during Hydra's exception formatting:)	Exceptionr   rk   r|   r   rh   stderrwriter`   r    linesep	__cause__r   __traceback__r   r   r-   getframeinfofunction	traceback	print_excexit	getmodulerH   r]   r   r   r   print_exceptionrepr)r   exr   
search_maxr@   end
num_framesr0   r   r   iter_tbfinal_tbcuraddedex2s                  r$   run_and_reportr      s   Tv R)**.?.A.AHMb"788JJ$$SWrzz%9:!",,0FGG

((R\\):RZZ)GH ))B!#J %q.:! "ZZ%/!^
"//6??9L! %q. "Q"* "++- 46C!"J/ #%//6/2s||B??<88!!kk%/!^
 / 8 8 8 !G02H"CE'.'7'7(/(9(9'.'7'7 N2! %	&7&9!kk&:::")//  --d"J

  e  

  Ljj!3i  jj!  	eRsG   	 L2!L-DJ1
BJ1%CJ10L-1
L;AL

LL--L2argsargs_parserconfig_namecaller_stack_depthc           
         ^ ^^^^^ SSK Jn  SSKJm  T R                  b  T R                  mT R
                  b  T R
                  n[        U5      u  nnUc  Uc  [        US-   5      u  nn[        Xx5      m[        U5        [        XxU5      mSU U4S jjn	[        U	5        [        UUU4S j5      m T R                  (       a'  TR                  TUT S9  [        R                  " S5        T R                   S Ln
T R"                  (       a#  U
(       d  T R                  (       d  [%        S5      eT R&                  (       a'  TR'                  TUT S9  [        R                  " S5        T R(                  U
-   T R*                  -   T R,                  -   T R.                  S L-   nUS:  a  [%        S	5      eUS:X  a  S
T l        T R0                  nT R(                  (       d  T R*                  (       a4  TR3                  TUS9n[5        T R(                  T R*                  UTTUUS9  OT R                   (       a  [        U UU4S j5        OT R,                  (       a  [        U UU4S j5        OlT R.                  (       a&  TR7                  T R.                  TT R0                  S9  O5[        R8                  R;                  S5        [        R                  " S5        UR=                  5       R?                  5         g ! UR=                  5       R?                  5         f = f)Nr   )GlobalHydrarN   )Hydrac                    > TR                   bx  [        R                  R                  TR                   5      n [        R                  R	                  U 5      (       d  [        SU  S35      eTR                  SSU  3[        SS9S9  g g )NzAdditional config directory 'z' not foundzcommand-linezfile://rv   )provider)r   rO   anchor)
config_dirr    rO   abspathisdirr   prependr   )abs_config_dirr   r~   s    r$   add_conf_dir _run_hydra.<locals>.add_conf_dirU  s    ??&WW__T__=N77==00)3N3C;O  '~./&9    'r&   c                  $   > T R                  TTS9$ )N)rU   config_search_path)create_main_hydra2)r   r~   rU   s   r$   <lambda>_run_hydra.<locals>.<lambda>d  s    ((K ) 
r&   )r   r   r   zGThe --resolve flag can only be used in conjunction with --cfg or --helpzTOnly one of --run, --multirun, --cfg, --info and --shell_completion can be specifiedTr   	overridesrunmultirunmodert   r   r'   r   c                  z   > TR                  TT R                  T R                  T R                  T R                  S9$ )N)r   r   cfg_typepackageresolve)show_cfgr   cfgr   r   r   r   rt   s   r$   r   r     s2     +"nn!XX LL LL ' r&   c                  8   > TR                  TT R                  S9$ )Nr   )shell_completionr   r   s   r$   r   r     s    .. +t~~ / r&   zCommand not specified
)r   N) hydra.core.global_hydrar   rt   r   r   rX   r4   rB   rW   r   ro   r   helpapp_helprh   r   r   r   rS   
hydra_helpr   r   r   infor   get_mode_run_app	show_infor   r   rz   clear)r   r   r'   rX   r   r   r   r2   r3   r   has_show_cfgnum_commandsr   run_moder   rt   r~   rU   s   `   `         @@@@r$   
_run_hydrar   2  s    4#&&#&&
 	9G 6 ;;MPQ;QR	
 >I%5kK  < 	
EB'99NN{RVNWHHQKxxt+<<diiY  ??'[t   HHQK HHmm ##$ yy$	& 	 !f  1DHNN	88t}}~~+~SHHH'+# XX ""
 YYOO		{dnn   JJ67HHQK$$&$$&s   2HK- - Lr   r   r   rt   r   c                   ^^^^ UcM  U (       a#  [         R                  nTR                  S/5        Oy[         R                  nTR                  S/5        OVU(       aO  U[         R                  :X  a;  [        R
                  " S[        S9  [         R                  nTR                  S/5        U[         R                  :X  a  [        UUUU4S j5        g [        UUUU4S j5        g )Nzhydra.mode=RUNzhydra.mode=MULTIRUNzK
	Running Hydra app with --multirun, overriding with `hydra.mode=MULTIRUN`.)messagecategoryc                  &   > TR                  T TTS9$ N)r   r'   r   )r   r   rt   r   r'   s   r$   r   _run_app.<locals>.<lambda>  s    EII'+#  r&   c                  &   > TR                  T TTS9$ r   )r   r   s   r$   r   r     s    ENN'+# # r&   )r   RUNextendMULTIRUNwarningswarnUserWarningr   r   s      ````r$   r   r     s     |;;D./0##D345+MM^$
 ##D345w{{	
 		
r&   c                      [         R                  S   R                  S5      (       a  S[         R                  S    3$ [        R                  R                  [         R                  S   5      n U $ )Nr   z.pyzpython )rh   argvrg   r    rO   rP   )
executables    r$   _get_exec_commandr     sT    
xx{E""!&& WW%%chhqk2
r&   c                  "   SSK Jn   SSKJn  U R	                  5       R                  U5      n/ nU H  n[        XA5      (       d   eS H}  nUR                  5       R                  5        SUR                  5        S3nUR                  U5        UR                  UR                  U5      R                  [        5       5      5        M     UR                  S5        M     SR                  U Vs/ s H  ow(       a  S	U 3OUPM     sn5      nU$ s  snf )
Nr   rq   )CompletionPlugin)install	uninstallz - :rZ   
z    )rw   rr   hydra.plugins.completion_pluginr   rz   r{   
issubclassprovides
capitalizery   r   formatr   r   )	rr   r   completion_pluginscompletion_info
plugin_clscmdheadxcompletion_helps	            r$   _get_completion_helpr    s    *@ ))+445EF!#O(
*7777+C ))+6689S^^=M<NaPD""4("":??3#7#>#>?P?R#ST , 	r" ) ii QAq4sa!7 QRO !Rs   ,Dc                     SSK Jn   [        R                  " SSS9nUR	                  SSSS	S
9  UR	                  SSSS
9  UR	                  SSSSU  3S9  UR	                  SSSS9  UR	                  SS/ SQSS9  UR	                  SSSS
9  UR	                  SSSS 9  UR	                  S!S"SS#S
9  UR	                  S$S%SS&S
9   " S' S(5      nUR	                  S)S*SU" 5       S
9  UR	                  S+S,S-S 9  UR	                  S.S/S0S 9  UR	                  S1S2S3S 9  UR	                  S4S5S 9  / S6QnUR	                  S7S8S9S:S;US<S=R                  U5       S>3S?9  U$ )@N   )__version__Fr   )add_helpdescriptionz--helpz-h
store_truezApplication's help)actionr   z--hydra-helpzHydra's helpz	--versionversionzShow Hydra's version and exitzHydra )r  r   r  r   *zQAny key=value arguments to override config values (use dots for.nested=overrides))nargsr   z--cfgz-c)jobrt   allz.Show config instead of running [job|hydra|all])choicesr   z	--resolvezNUsed in conjunction with --cfg, resolve config interpolations before printing.z	--packagez-pzConfig package to show)r   z--runz-rz	Run a jobz
--multirunz-mz:Run multiple jobs with the configured launcher and sweeperc                   "    \ rS rSrS\4S jrSrg)+get_args_parser.<locals>.LazyCompletionHelpi  r   c                     S[        5        3$ )Nz'Install or Uninstall shell completion:
)r  )r9   s    r$   __repr__4get_args_parser.<locals>.LazyCompletionHelp.__repr__   s    =>R>T=UVVr&   r   N)rH   r,   r   r   r`   r  r   r   r&   r$   LazyCompletionHelpr    s    	Wc 	Wr&   r  z--shell-completionz-scz--config-pathz-cpzOverrides the config_path specified in hydra.main().
                    The config_path is absolute or relative to the Python file declaring @hydra.main()z--config-namez-cnz3Overrides the config_name specified in hydra.main()z--config-dirz-cdz7Adds an additional config dir to the config search pathz--experimental-rerunz)Rerun a job from a previous config pickle)r  configdefaultszdefaults-treeplugins
searchpathz--infoz-ir  ?storezPrint Hydra information [|])constr  r  r  r   )rZ   r  argparseArgumentParseradd_argumentr   )r  parserr  info_choicess       r$   get_args_parserr*    s   $$eIF
$|BVW
|.Q
,&	   `   '=	   ]   T0HI
lM
I	  W W !	   j   B   F   8  
L (,)?(@B   Mr&   c                 0    [        5       R                  U S9$ )Nr   )r*  
parse_argsr,  s    r$   get_argsr.  V  s    ''T'22r&   matrixc                     SnU  H  n[        U[        U5      5      nM     S/U-  nU  H0  n[        U5       H  u  pE[        X4   [        U5      5      X4'   M      M2     U$ )Nr   )maxra   	enumerate)r/  num_colsrowwidthsidxcols         r$   get_column_widthsr8  Z  sa    HxS* hF!#HCfk3s84FK '  Mr&   rO   c                    U S:X  a  [        S5      eSSKJn  SSKJn  U R                  S5       Vs/ s H  o3PM     nnU H%  n[        U5      (       a  M  [        SU  S3S	-   5      e   [        U5      S:  d   eUS   n U" U5      n[        S[        U5      5       H  nXH   n [        Xc5      nM     U$ s  snf ! [         a'  n[        SU  S
[        U5       3SU S3-   5      UeSnAff = f! [         a  n	SR                  USU 5      n
[        Xb5      (       a  SR                  USUS-    5      n U" U5      n Sn	A	M  ! [         a*  n[        SU  S
[        U5       3SU SU
 S3-   5      UeSnAf[         a   n[        SU  S
[        U5       35      UeSnAff = f[        SU  S
[        U	5       3SU SU
 S3-   5      U	eSn	A	ff = f)z
Locate an object by name or dotted path, importing as necessary.
This is similar to the pydoc function `locate`, except that it checks for
the module from the given path from back to front.
rZ   z
Empty pathr   )import_module)
ModuleTyperL   zError loading 'z': invalid dotstring.z$
Relative imports are not supported.z':
z
Are you sure that module 'z' is installed?NrN   z
Are you sure that 'z' is importable from module 'z'?z' is an attribute of ')ImportError	importlibr:  typesr;  splitra   rS   r   r   rangegetattrAttributeErrorr   r|   ModuleNotFoundError)rO   r:  r;  partpartspart0obj
exc_importmexc_attrparent_dotpathmods               r$   _locaterM  f  s@    rz,''' "jjo.odToE.4yy!$'<=9:   u:>>!HEE" 1c%j!x	#$C "0 JQ /  dV4Z(8'9:,UG?CD
 	  	 XXeBQi0N#**hhuWq1u~.&',C* &%)$tD4D3EF1$7TUcTddfgh && ! &%)$tD4D3EF%&& !$tDN+;<)$/EnEUUWXY !	s_   B6 B; %C/;
C,"C''C,/
G9;G5E
F%E22F?FF(GGr  popc                     SU ;  a  [        S5      eU(       a  U R                  S5      nOU S   n[        U[        5      (       d  [        S5      eU$ )N_target_z-Input config does not have a `_target_` fieldz$_target_ field type must be a string)r   rN  r|   r`   )r  rN  	classnames      r$   _get_cls_namerR    sP    $%TUU
JJz*	:&	i%%$%KLLr&   )r
  rm   )T)Er%  r-   logging.configloggingr    rh   r   r   dataclassesr   os.pathr   r   r   r   r>  r   r	   typingr
   r   r   r   r   omegaconf.errorsr   'hydra._internal.config_search_path_implr   hydra.core.config_search_pathr   r   hydra.core.utilsr   r   hydra.errorsr   r   r   hydra.typesr   r   	getLoggerrH   logr`   r%   r4   r   rB   boolr;   rW   rd   rk   ro   rn   r   r   	Namespacer&  r   r   r   r  r*  r.  r8  rM  rR  r   r&   r$   <module>rb     s      	 
   ! 5 5 * 7 7 3 H K E 
 .!8C= ((
8C=(3-'((6((
8C=(3-'((2
T 
8C= (3- TW  /3-/SM/ #/ c]	/d&4 & 63-6SM6 #6 	6x} AQ *:c :d :U U U|  y'


y'((y'  y' #	y'
 #y' y' 
y'x)
	)
)
 7
)
 	)

 #)
  )
 Cy)
 
)
X3 c $^00 ^B38HSM* 3c 3	d49o 	$s) 	3# 3# 3l
# 
D 
C 
r&   