
    jg                     p    d dl Z d dlZd dlZd dlmZmZ d Zd	dZ G d de j                        Z	d Z
d Zy)
    N)post_commandpre_commandc                 <   ddl }t        j                  j                  d      ryt	        j
                  | t        j                        sTt	        j                   |       }|j                  |j                        |j                  z  }t	        j                  | |       yy)zU
    Make sure that the file is writable. Useful if our source is
    read-only.
    r   Njava)statsysplatform
startswithosaccessW_OKS_IMODEst_modeS_IWUSRchmod)filenamer   stnew_permissionss       ]/var/www/html/Stanley/venv/lib/python3.12/site-packages/django_extensions/management/utils.py_make_writeabler   	   sj    
 
||v&99Xrww'WWX,,rzz2T\\A
?+ (    c                 <   t        | j                        dk  rt        j                  |      }|j	                  t        j
                         |j                  t        j                  |             | j                  |       | j	                  t        j
                         d| _	        |rqt        j                  |      }|j	                  t        j                         |j                  t        j                  d|r|ndz                | j                  |       yyy)zj
    Set up a logger (if no handlers exist) for console output,
    and file 'tee' output if desired.
       Fz%(asctime)s z%(message)sN)lenhandlersloggingStreamHandlersetLevelDEBUGsetFormatter	Formatter
addHandler	propagateFileHandlerINFO)loggerstreamr   fmtconsoleoutfiles         r   setup_loggerr+      s    
 6??a''/'W..s34'"& ))(3GW\\*  !2!2>CSUb3c!deg&	   r   c                   4    e Zd ZdZej
                  fdZd Zy)RedirectHandlerz6Redirect logging sent to one logger (name) to another.c                     t         j                  j                  | |       || _        t        j                  |      | _        y N)r   Handler__init__name	getLoggerr&   )selfr2   levels      r   r1   zRedirectHandler.__init__/   s/      u-	''-r   c                 :    | j                   j                  |       y r/   )r&   handle)r4   records     r   emitzRedirectHandler.emit5   s    6"r   N)__name__
__module____qualname____doc__r   r   r1   r9    r   r   r-   r-   ,   s    @#*== .#r   r-   c                       fd}|S )zUPython decorator for management command handle defs that sends out a pre/post signal.c                     t        j                  | j                  ||        | g|i |}t        j                  | j                  |||       |S )N)argskwargs)rA   rB   outcome)r   send	__class__r   )r4   rA   rB   retfuncs       r   innerzsignalcommand.<locals>.inner<   sJ    d6B4)$)&)$..tFCP
r   r>   )rG   rH   s   ` r   signalcommandrI   9   s    
 Lr   c                  4    	 dd l } dd l}y# t        $ r Y yw xY w)Nr   TF)ipdbIPythonImportError)rK   rL   s     r   has_ipdbrN   D   s"     s    	)NN)r   r   r   $django_extensions.management.signalsr   r   r   r+   r0   r-   rI   rN   r>   r   r   <module>rP      s5     	 
 J,'(
#goo 
#r   