§
    kÍâh¯2  ã                   óÎ   — 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l	m
Z
 d dlmZ d dlmZ d dlmZ  G d„ d	¦  «        Zd
„ Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    N)ÚArgumentTypeError)Úapps)Úsettings)ÚCommandError)ÚEmailNotificationCommand)Úsignalcommandc                   ó   — e Zd ZdZdZdZdS )ÚDirPolicyChoicesÚnoneÚeachÚrootN)Ú__name__Ú
__module__Ú__qualname__ÚNONEÚEACHÚROOT© ó    úf/var/www/histauto/venv/lib/python3.11/site-packages/django_extensions/management/commands/runscript.pyr
   r
      s   € € € € € Ø€DØ€DØ€D€D€Dr   r
   c                 ól   — | �t           j                             | ¦  «        st          d| z  ¦  «        ‚| S )Nz%s is not a directory!)ÚosÚpathÚisdirr   )Úvalues    r   Úcheck_is_directoryr      s2   € Ø€}�BœGŸMšM¨%Ñ0Ô0€}ÝÐ 8¸5Ñ @ÑAÔAÐAØ€Lr   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚBadCustomDirectoryExceptionc                 ó   — |dz   | _         d S )Nzm If --dir-policy is custom than you must set correct directory in --dir option or in settings.RUNSCRIPT_CHDIR©Úmessage)Úselfr   s     r   Ú__init__z$BadCustomDirectoryException.__init__   s   € àð :ñ :ð 	Œˆˆr   c                 ó   — | j         S )Nr    )r"   s    r   Ú__str__z#BadCustomDirectoryException.__str__%   s
   € ØŒ|Ðr   N)r   r   r   r#   r%   r   r   r   r   r      s2   € € € € € ð
ð 
ð 
ðð ð ð ð r   r   c                   óB   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zed„ ¦   «         Zˆ xZS )ÚCommandz Runs a script in django context.c                 óx   •—  t          ¦   «         j        |i |¤Ž t          j        ¦   «         | _        d| _        d S )Nr   )Úsuperr#   r   ÚgetcwdÚcurrent_directoryÚlast_exit_code)r"   ÚargsÚkwargsÚ	__class__s      €r   r#   zCommand.__init__,   s;   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ý!#¤¡¤ˆÔØˆÔÐÐr   c                 ót  •— t          ¦   «                              |¦  «         |                     dd¬¦  «         |                     ddddd¬	¦  «         |                     d
dddd¬	¦  «         |                     dddddd¬	¦  «         |                     dddddd¬	¦  «         |                     ddddd¬	¦  «         |                     ddt          d¬¦  «         |                     dt          t          j        t          j        t          j        gd¬¦  «         |                     dt          d ¬!¦  «         d S )"NÚscriptú+)Únargsz
--fixturesÚ
store_trueÚ
infixturesFz Also look in app.fixtures subdir)ÚactionÚdestÚdefaultÚhelpz--noscriptsÚ	noscriptsz!Do not look in app.scripts subdirz-sz--silentÚsilentzRRun silently, do not show errors and tracebacks. Also implies --continue-on-error.z-cz--continue-on-errorÚcontinue_on_errorz¸Continue executing other scripts even though one has failed. It will print a traceback unless --no-traceback or --silent are given The exit code used when terminating will always be 1.z--no-tracebackÚno_tracebackzDo not show tracebacksz--script-argsÚ*z|Space-separated argument list to be passed to the scripts. Note that the same arguments will be passed to all named scripts.)r3   Útyper9   z--dir-policyz¼Policy of selecting scripts execution directory: none - start all scripts in current directory each - start all scripts in their directories root - start all scripts in BASE_DIR directory )r?   Úchoicesr9   z--chdirz^If dir-policy option is set to custom, than this option determines script execution directory.)r?   r9   )	r)   Úadd_argumentsÚadd_argumentÚstrr
   r   r   r   r   )r"   Úparserr/   s     €r   rA   zCommand.add_arguments1   sÆ  ø€ Ý‰Œ×Ò˜fÑ%Ô%Ð%Ø×Ò˜H¨CÐÑ0Ô0Ð0Ø×ÒØØØØØ3ð 	ñ 	
ô 	
ð 	
ð 	×ÒØØØØØ4ð 	ñ 	
ô 	
ð 	
ð 	×ÒØØØØØð1ð 	ñ 	
ô 	
ð 	
ð 	×ÒØØ!ØØ$ØðDð 	ñ 		
ô 		
ð 		
ð 	×ÒØØØØØ)ð 	ñ 	
ô 	
ð 	
ð 	×ÒØØÝðFð	 	ñ 	
ô 	
ð 	
ð 	×ÒØÝå Ô%Ý Ô%Ý Ô%ðð
>ð 	ñ 	
ô 	
ð 	
ð 	×ÒØÝ#ð*ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c           	      óÎ  ‡ ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡— ‰ j         j        Š‰ j         j        Š‰ j         j        Š‰ j         j        Šg Š‰d         }‰d         s)‰                     t          t          dd¦  «        ¦  «         ‰d         r‰                     d¦  «         ‰d         Š‰d         Š‰d	         Š‰d
         Š‰rdŠndŠ‰d         Š‰rdŠdŠ‰d         Št          ‰¦  «        dk     rt           ‰d¦  «        ¦  «         d S t          |¦  «        dk     rt           ‰d¦  «        ¦  «         d S ˆfd„Šˆˆ fd„Šˆˆˆfd„Šˆˆˆˆˆ ˆˆˆˆf	d„}ˆˆˆˆˆˆˆfd„Šˆˆfd„}‰d         r	‰d         }ng }g }|D ]O} ||¦  «        }	|	s+d‰ _
        ‰dk    r‰st           ‰d|z  ¦  «        ¦  «         Œ:|                     |	¦  «         ŒP‰ j
        r$‰dk     r‰st           ‰d¦  «        ¦  «         ‰sg }|D ]1}
‰dk    r t           ‰d|
j        z  ¦  «        ¦  «          ||
g|¢R Ž  Œ2‰ j
        dk    r³‰r+t          ‰ d¦  «        rd S t          j        ‰ j
        ¦  «         	 t!          d‰ j
        ¬ ¦  «        ‚# t"          $ rb ‰ j
        dk    rt!          d¦  «        ‚t           ‰d¦  «        ¦  «         t          ‰ d¦  «        rY d S t          j        ‰ j
        ¦  «         Y d S w xY wd S )!Nr1   r:   ÚRUNSCRIPT_SCRIPT_DIRÚscriptsr5   ÚfixturesÚ	verbosityÚ	tracebackr=   r<   FTr;   r   Úemail_notificationsé   zNo subdirs to run left.zScript name required.c                  óÂ   •— ‰d         pt          t          dd ¦  «        } 	 t          | ¦  «         n.# t          $ r!}t	          t          |¦  «        ¦  «        ‚d }~ww xY w| S )NÚchdirÚRUNSCRIPT_CHDIR)Úgetattrr   r   r   r   rC   )Ú	directoryÚeÚoptionss     €r   Úget_directory_from_chdirz0Command.handle.<locals>.get_directory_from_chdir›   so   ø€ Ø Ô(ÐV­GµHÐ>OÐQUÑ,VÔ,VˆIð:Ý" 9Ñ-Ô-Ð-Ð-øÝ$ð :ð :ð :Ý1µ#°a±&´&Ñ9Ô9Ð9øøøøð:øøøàÐs   ¡1 ±
A»AÁAc                 ó  •— ‰d         pt          t          dt          j        ¦  «        }|t          j        k    rt          j        S |t          j        k    r1t          j         	                    t          j        | ¦  «        ¦  «        S ‰j        S )NÚ
dir_policyÚRUNSCRIPT_CHDIR_POLICY)rP   r   r
   r   r   ÚBASE_DIRr   r   r   ÚdirnameÚinspectÚgetfiler+   )Úscript_moduleÚpolicyrS   r"   s     €€r   Úget_directory_basing_on_policyz6Command.handle.<locals>.get_directory_basing_on_policy£   sz   ø€ Ø˜\Ô*ð ­gÝÐ2Õ4DÔ4Iñ/ô /ˆFð Õ)Ô.Ò.Ð.ÝÔ(Ð(ØÕ+Ô0Ò0Ð0Ý”w—’¥w¤°}Ñ'EÔ'EÑFÔFÐFàÔ-Ð-r   c                 ó  •— ‰d         r ‰¦   «         }n@‰d         r ‰| ¦  «        }n,t          t          dd ¦  «        r ‰¦   «         }n ‰| ¦  «        }t          j        t          j                             |¦  «        ¦  «         d S )NrN   rV   rO   )rP   r   r   rN   r   Úabspath)r\   rQ   r^   rT   rS   s     €€€r   Úset_directoryz%Command.handle.<locals>.set_directory®   s›   ø€ Ø�wÔð JØ4Ð4Ñ6Ô6�	�	Ø˜Ô&ð JØ:Ð:¸=ÑIÔI�	�	Ý�Ð#4°dÑ;Ô;ð JØ4Ð4Ñ6Ô6�	�	à:Ð:¸=ÑIÔI�	ÝŒH•R”W—_’_ YÑ/Ô/Ñ0Ô0Ð0Ð0Ð0r   c                 ó4  •	— d }	  ‰	| ¦  «          | j         |Ž }t          |t          ¦  «        r|rdnd}t          |t          ¦  «        rK|dk    rE	 t	          d| j        ›d|›�|¬¦  «        ‚# t          $ r t	          d| j        ›d|›�¦  «        ‚w xY w‰r‰                     | j        ¬¦  «         d S d S # t          $ r×}t          |t          ¦  «        rt          |d¦  «        r|j
        }t          |t          ¦  «        r|nd‰_        ‰rY d }~d S ‰dk    r t           ‰d| j        z  ¦  «        ¦  «         ‰r‰
rt          j        ¦   «          Y d }~d S ‰r‰                     | j        d	¬
¦  «         ‰rt	          t          |¦  «        ¦  «        ‚‚ d }~ww xY w)NrL   r   ú'z' failed with exit code ©Ú
returncode)Únotification_idre   z%Exception while running run() in '%s'T)rf   Úinclude_traceback)ÚrunÚ
isinstanceÚboolÚintr   r   Ú	TypeErrorÚsend_email_notificationÚ	ExceptionÚhasattrre   r,   ÚprintrJ   Ú	print_excÚrepr)ÚmodÚscript_argsÚ	exit_coderR   ÚERRORr<   rK   r=   r"   ra   Úshow_tracebackr;   rI   s       €€€€€€€€€r   Ú
run_scriptz"Command.handle.<locals>.run_script¹   s.  ø€ ØˆIð)Ø�˜cÑ"Ô"Ð"Ø#˜CœG [Ð1�	Ý˜i­Ñ.Ô.ð 6à%.Ð 5  °A�IÝ˜i­Ñ-Ô-ð Ø  A’~�~ð
Ý". ,à#&¤< < <°°ð!<à+4ð#ñ #ô #ð øõ
  )ð ð ð Ý". ,à#&¤< < <°°ð!<ñ#ô #ð ðøøøð
 'ð OØ×0Ò0ÀÄÐ0ÑNÔNÐNÐNÐNðOð Oøåð ð ð Ý˜a¥Ñ.Ô.ð -µ7¸1¸lÑ3KÔ3Kð -Ø !¤�IÝ3=¸iÍÑ3MÔ3MÐ&T i iÐST�Ô#Øð Ø�F�F�F�F�FØ˜q’=�=Ý˜%˜%Ð GÈ#Ì,Ñ VÑWÔWÑXÔXÐXØ$ð Ø%ð .Ý!Ô+Ñ-Ô-Ð-Ø�F�F�F�F�FØ&ð Ø×0Ò0Ø(+¬Èð 1ñ ô ð ð  ð 0Ý&¥t¨A¡w¤wÑ/Ô/Ð/àøøøøð)øøøs7   …AB6 ÁA- Á-%BÂ B6 Â6
FÃ AFÄ=FÅ=FÆFc           
      ó¶  •— | ›d|›�}‰dk    rt           ‰d|z  ¦  «        ¦  «         	 t          j        | ¦  «         n?# t          $ r2}t	          |¦  «                             d¦  «        rY d }~dS Y d }~nd }~ww xY w	 t          j        |¦  «        }nî# t          $ rá}	 t          j                             |¦  «        €Y d }~dS nm# t          $ r` t          j
        j        t          j        g|                     d¦  «        ¢R Ž dz   }t          j
                             |¦  «        sY Y d }~dS Y nw xY w‰rY d }~dS ‰
rt!          j        ¦   «          ‰dk    rt           ‰d|›d	|›d�¦  «        ¦  «         Y d }~dS d }~ww xY wt%          |d
¦  «        r#‰dk    rt           ‰	d|z  ¦  «        ¦  «         |S ‰dk    rt           ‰d|z  ¦  «        ¦  «         d S d S )Nú.rL   zCheck for %szNo module namedFz.pyr   zCannot import module 'z': rh   zFound script '%s' ...z.Found script '%s' but no run() function found.)rp   Ú	importlibÚimport_moduleÚImportErrorrC   Ú
startswithÚutilÚ	find_specrn   r   r   Újoinr   rX   ÚsplitÚisfilerJ   rq   ro   )Úparent_packageÚmodule_nameÚfull_module_pathrR   ÚtÚmodule_filerv   ÚERROR2ÚNOTICEÚNOTICE2rw   r;   rI   s         €€€€€€€r   Ú	my_importz!Command.handle.<locals>.my_importæ   s   ø€ Ø*8¨.¨.¸+¸+ÐFÐØ˜1Š}ˆ}Ý�f�f˜^Ð.>Ñ>Ñ?Ô?Ñ@Ô@Ð@ð!ÝÔ'¨Ñ7Ô7Ð7Ð7øÝð !ð !ð !Ý�q‘6”6×$Ò$Ð%6Ñ7Ô7ð !à ˜5˜5˜5˜5˜5ð!ð !ð !ð !ð !øøøøð!øøøð
ÝÔ+Ð,<Ñ=Ô=��øÝð ð ð ð	%Ý ”~×/Ò/Ð0@ÑAÔAÐIØ$˜u˜u˜u˜u˜uð Jøå ð %ð %ð %åœœ¥XÔ%6ÐUÐ9I×9OÒ9OÐPSÑ9TÔ9TÐUÐUÐUØñ ð  õ œ7Ÿ>š>¨+Ñ6Ô6ð %Ø$˜u˜u˜u˜u˜u˜uð%ð %ð%øøøð ð !Ø ˜5˜5˜5˜5˜5Ø!ð *ÝÔ'Ñ)Ô)Ð)Ø˜q’=�=ÝØ˜˜ÐBRÐBRÐBRÐTUÐTUÐTUÐVÑWÔWñô ð ð �u�u�u�u�uøøøøð-øøøõ0 �q˜%Ñ Ô ð Ø˜q’=�=Ý˜'˜'Ð"9Ð<LÑ"LÑMÔMÑNÔNÐNØ�à˜q’=�=ÝØ˜ØLØ.ñ/ñô ñô ð ð ð ð !�=sZ   «A  Á 
A<Á
"A7Á7A<Â B Â
F Â CÃE;ÃA D0Ä&E;Ä-E;Ä/D0Ä0E;Ä;:E;Å;F c                 ó˜  •— g }t          j        ¦   «         D ]4}‰D ]/} ‰|j        ›d|›�| ¦  «        }|r|                     |¦  «         Œ0Œ5|                      d¦  «        dk    r=|                      dd¦  «        \  }} ‰||¦  «        }|r|                     |¦  «         n(‰D ]%} ‰|| ¦  «        }|r|                     |¦  «         Œ&|S )z1Find script module which contains 'run' attributerz   éÿÿÿÿrL   )r   Úget_app_configsÚnameÚappendÚfindÚrsplit)	r1   ÚmodulesÚappÚsubdirrs   ÚparentÚmod_namerŒ   Úsubdirss	          €€r   Úfind_modules_for_scriptz/Command.handle.<locals>.find_modules_for_script  s  ø€ àˆGåÔ+Ñ-Ô-ð ,ð ,�Ø%ð ,ð ,�FØ#˜)¨s¬x¨x¨x¸¸Ð$@À&ÑIÔI�CØð ,ØŸš sÑ+Ô+Ð+øð,ð
 �{Š{˜3ÑÔ 2Ò%Ð%Ø#)§=¢=°°aÑ#8Ô#8Ñ �˜Ø�i ¨Ñ1Ô1�Øð (Ø—N’N 3Ñ'Ô'Ð'øð &ð ,ð ,�FØ#˜) F¨FÑ3Ô3�CØð ,ØŸš sÑ+Ô+Ð+øàˆNr   rt   z'No (valid) module for script '%s' foundé   z:Try running with a higher verbosity level like: -v2 or -v3zRunning script '%s' ...Úrunning_testsz8An error has occurred running scripts. See errors above.rd   )ÚstyleÚ	SQL_TABLEÚ	SQL_FIELDrv   rŠ   r‘   rP   r   Úlenrp   r,   Úextendr   ro   ÚsysÚexitr   rl   )r"   r-   rS   rG   rx   rš   rt   Úscript_to_runr1   Úscript_modulesÚ
script_modrv   r‰   rŠ   r‹   r<   rK   r^   rT   rŒ   r=   ra   rw   r;   r™   rI   s   ` `        @@@@@@@@@@@@@@@r   ÚhandlezCommand.handlew   s‚  øøøøøøøøøøøøøøøøø€ à”Ô%ˆØ”*Ô&ˆØ”
Ô ˆØ”Ô"ˆàˆØ˜(Ô#ˆà�{Ô#ð 	QØ�NŠN�7¥8Ð-CÀYÑOÔOÑPÔPÐPØ�<Ô ð 	'Ø�NŠN˜:Ñ&Ô&Ð&Ø˜KÔ(ˆ	Ø  Ô-ˆØ˜~Ô.ˆØ#Ð$7Ô8ÐØð 	"Ø"ˆNˆNà!ˆNØ˜Ô"ˆØð 	%ØˆIØ $ÐØ%Ð&;Ô<Ðåˆw‰<Œ<˜!ÒÐÝ�&�&Ð2Ñ3Ô3Ñ4Ô4Ð4ØˆFåˆw‰<Œ<˜!ÒÐÝ�%�%Ð/Ñ0Ô0Ñ1Ô1Ð1ØˆFð	ð 	ð 	ð 	ð 	ð		.ð 		.ð 		.ð 		.ð 		.ð 		.ð		1ð 		1ð 		1ð 		1ð 		1ð 		1ð 		1ð+	ð +	ð +	ð +	ð +	ð +	ð +	ð +	ð +	ð +	ð +	ð +	ð +	ðZ1	ð 1	ð 1	ð 1	ð 1	ð 1	ð 1	ð 1	ð 1	ð 1	ð 1	ðf	ð 	ð 	ð 	ð 	ð 	ð0 �=Ô!ð 	Ø! -Ô0ˆKˆKàˆKð ˆØð 	1ð 	1ˆFØ4Ð4°VÑ<Ô<ˆNØ!ð Ø&'�Ô#Ø˜q’=�=¨�=Ý˜%˜%Ð IÈFÑ RÑSÔSÑTÔTÐTØØ× Ò  Ñ0Ô0Ð0Ð0àÔð 	#Ø˜1Š}ˆ} Vˆ}ÝØ�EÐVÑWÔWñô ð ð %ð #Ø "�à'ð 	1ð 	1ˆJØ˜1Š}ˆ}Ý�g�gÐ7¸*Ô:MÑMÑNÔNÑOÔOÐOØˆJ�zÐ0 KÐ0Ð0Ð0Ð0Ð0àÔ !Ò#Ð#Øð .Ý˜4 Ñ1Ô1ð Ø�FÝ”˜Ô,Ñ-Ô-Ð-ð.Ý"ØNØ#Ô2ðñ ô ð øõ ð .ð .ð .àÔ&¨!Ò+Ð+õ 'ØRñô ð õ �e�eÐVÑWÔWÑXÔXÐXÝ˜4 Ñ1Ô1ð Ø�F�FÝ”˜Ô,Ñ-Ô-Ð-Ð-Ð-Ð-ð.øøøð $Ð#s   É I6 É6AK"ËK"Ë!K")	r   r   r   r9   r#   rA   r   r§   Ú__classcell__)r/   s   @r   r'   r'   )   s~   ø€ € € € € Ø-€Dð ð  ð  ð  ð  ð
D
ð D
ð D
ð D
ð D
ðL ðl.ð l.ñ „]ðl.ð l.ð l.ð l.ð l.r   r'   )r   r¢   r{   rZ   rJ   Úargparser   Údjango.appsr   Údjango.confr   Údjango.core.management.baser   Ú0django_extensions.management.email_notificationsr   Ú"django_extensions.management.utilsr   r
   r   rn   r   r'   r   r   r   ú<module>r¯      sD  ðà 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à UÐ UÐ UÐ UÐ UÐ UØ <Ð <Ð <Ð <Ð <Ð <ðð ð ð ð ñ ô ð ðð ð ðð ð ð ð  )ñ ô ð ð{.ð {.ð {.ð {.ð {.Ð&ñ {.ô {.ð {.ð {.ð {.r   