
    `f#                         d 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mZ dd	lmZ dd
lmZmZmZmZ dZdadZedz   Z e            Z G d d          ZddZd Z dS )zLoader base class.    N)datetime)json)cached_property)signals)reraise)DictAttributeforce_mapping)
maybe_list)NotAPackagefind_moduleimport_from_cwdsymbol_by_name)
BaseLoaderFzPError: Module '{module}' doesn't exist, or it's not a valid Python module name.
zDid you mean '{suggest}'?
c                      e Zd ZdZ e            ZdZi ZdZe	Z
d Zd dZd Zd Zd Zd	 Zd
 Zd Zd!dZd"dZd Zd Zd Zd Zd#dZd!dZd Zd Zd ej        d          ddfdZd$dZ d%dZ!e"d             Z#e$d             Z%dS )&r   a  Base class for loaders.

    Loaders handles,

        * Reading celery client/worker configurations.

        * What happens when a task starts?
            See :meth:`on_task_init`.

        * What happens when the worker starts?
            See :meth:`on_worker_init`.

        * What happens when the worker shuts down?
            See :meth:`on_worker_shutdown`.

        * What modules are imported to find tasks?
    Fc                 :    || _         t                      | _        d S N)appsettask_modules)selfr   kwargss      E/var/www/html/env/lib/python3.11/site-packages/celery/loaders/base.py__init__zBaseLoader.__init__;   s    EE    Tc                 R    |rt          j                    S t          j                    S r   )r   utcnownow)r   utcs     r   r   zBaseLoader.now?   s$     	%?$$$|~~r   c                     dS )z!Called before a task is executed.N )r   task_idtasks      r   on_task_initzBaseLoader.on_task_initD         r   c                     dS )z Called after a task is executed.Nr    r   s    r   on_process_cleanupzBaseLoader.on_process_cleanupG   r$   r   c                     dS )z9Called when the worker (:program:`celery worker`) starts.Nr    r&   s    r   on_worker_initzBaseLoader.on_worker_initJ   r$   r   c                     dS )z=Called when the worker (:program:`celery worker`) shuts down.Nr    r&   s    r   on_worker_shutdownzBaseLoader.on_worker_shutdownM   r$   r   c                     dS )z#Called when a child process starts.Nr    r&   s    r   on_worker_process_initz!BaseLoader.on_worker_process_initP   r$   r   c                 `    | j                             |           |                     |          S r   )r   addr   r   modules     r   import_task_modulezBaseLoader.import_task_moduleS   s-    f%%%##F+++r   Nc                 .    t          j        ||          S N)package)	importlibimport_module)r   r1   r5   s      r   r7   zBaseLoader.import_moduleW   s    &vw????r   c                 8    t          ||| j        n||          S r4   )r   r7   )r   r1   impr5   s       r   r   zBaseLoader.import_from_cwdZ   s.    "%+D3
 
 
 	
r   c                      t           j                             j                  }|D ]\  }}t	          |t
                    r| fd j        D             S )N)senderc                 :    g | ]}                     |          S r    )r2   ).0mr   s     r   
<listcomp>z5BaseLoader.import_default_modules.<locals>.<listcomp>i   s'    IIIq''**IIIr   )r   import_modulessendr   
isinstance	Exceptiondefault_modules)r   	responses_responses   `   r   import_default_modulesz!BaseLoader.import_default_modulesa   sl    *//tx/@@	 % 	 	KAx(I.. IIIID4HIIIIr   c                 v    | j         s1d| _         |                                  |                                  d S d S )NT)worker_initializedrH   r)   r&   s    r   init_workerzBaseLoader.init_workerk   sI    & 	"&*D#'')))!!!!!	" 	"r   c                 .    |                                   d S r   )r+   r&   s    r   shutdown_workerzBaseLoader.shutdown_workerq   s    !!!!!r   c                 .    |                                   d S r   )r-   r&   s    r   init_worker_processzBaseLoader.init_worker_processt   s    ##%%%%%r   c                 "   t          |t                    r9	 |                     || j                  }n# t          t
          f$ r |rY dS  w xY wt          |          | _        | j                            d          | j        d         | _	        dS )Nr9   Foverride_backendsT)
rB   str_smart_importr   ImportErrorAttributeErrorr	   _confgetrR   )r   objsilents      r   config_from_objectzBaseLoader.config_from_objectw   s    c3 	(($2F(GG0    ! 55 #3''
:>>-..:%)Z0C%DD"ts   4 A
Ac                     || j         n|}d|v rt          ||          S 	  ||          S # t          $ r t          ||          cY S w xY w)N:rQ   )r7   r   rU   )r   pathr9   s      r   rT   zBaseLoader._smart_import   sx    $'Kd  S$;; "$C0000	13t99 	1 	1 	1!$C000000	1s   
- A
Ac                    	 |                      |           |                     |          S # t          $ r}|                    d          r\t	          t          t          t
                              ||d d                             t          j                    d                    t          t                              |                    |d }~ww xY w)Nz.py)r1   suggest   )r1   )
r   r   r   endswithr   CONFIG_WITH_SUFFIXformatsysexc_infoCONFIG_INVALID_NAME)r   nameexcs      r   _import_config_modulez BaseLoader._import_config_module   s    	.T""" ''---  	P 	P 	P}}U## M[1C1J1J#T#2#Y 2K 28 28 &9 &9:=,..:KM M M1888EEFFCO		Ps   , 
CBCCc                      t          |          S r   )r   r0   s     r   r   zBaseLoader.find_module   s    6"""r   celeryz	\((\w+)\)c                    	 |r|ndt           j        i}rnddddddlmm} o                                t          |j        fi |		fdt          fd|D                       S )Nr   )tuplelistdictr   )
NAMESPACESOptionc                    |                      dd          \  }}|                                                    dd          }|d         dk    r	|dd         }}n|                     dd          \  }}|r|dz   pd|z   }                    |          }|rk|                                d         }
                    ||          }|t          |                                          d         } |         |          }n[	 |                                         |                             |          }n&# t          $ r}t          |d|           d}~ww xY w||fS )	z-Parse single configuration from command-line.=   .rF   r   N z: )
splitlowerreplacematchgroupsrX   lengroup	to_python
ValueError)argkeyvaluensns_keycasttype_rj   rr   	namespaceoverride_typesre_typetypemaps           r   getargz0BaseLoader.cmdline_config_parser.<locals>.getarg   su    3**JC))++%%c3//C 1v}}#SWC ))C++CoR#X+s2F ==''D 
;a(&**5%88c$**,,//001&u--;&rxxzz237AA%HHEE! ; ; ;$%9%9C%9%9:::; 5= s   3D8 8
EEEc              3   .   K   | ]} |          V  d S r   r    )r=   r   r   s     r   	<genexpr>z3BaseLoader.cmdline_config_parser.<locals>.<genexpr>   s+      00CFF3KK000000r   )r   loadscelery.app.defaultsrr   rs   rz   rq   r   )
r   argsr   r   extra_typesr   rs   rr   r   r   s
     `` ` @@@r   cmdline_config_parserz BaseLoader.cmdline_config_parser   s     &1Jkkvtz6J+9 
@
 @

 	;:::::::3)//"3"3	v~5555	! 	! 	! 	! 	! 	! 	! 	! 	!> 00004000000r   CELERY_CONFIG_MODULEc                     	 t           j        |         }|r$|                     |          }t          |          S d S # t          $ r Y d S w xY wr   )osenvironrk   r   KeyError)r   envcustom_configusercfgs       r   read_configurationzBaseLoader.read_configuration   sk    	.JsOM  .44]CC$W---. .  	 	 	DD	s   < 
A
	A
tasksc                 n    | j                             d t          |pd|          D                        d S )Nc              3   (   K   | ]}||j         V  d S r   )__name__)r=   mods     r   r   z0BaseLoader.autodiscover_tasks.<locals>.<genexpr>   sG       !M !M HK!ML!M !M !M !M !M !Mr   r    )r   updateautodiscover_tasks)r   packagesrelated_names      r   r   zBaseLoader.autodiscover_tasks   sb       !M !M$6x~27C%E %E!M !M !M 	M 	M 	M 	M 	Mr   c                     t          | j                  t          t          | j        j        j                            z   t          t          | j        j        j                            z   S r   )ro   builtin_modulesr
   r   confimportsincluder&   s    r   rD   zBaseLoader.default_modules   sU     $&''*TX]233445*TX]233445	
r   c                 ^    | j         t          u r|                                 | _         | j         S )zLoader configuration.)rW   unconfiguredr   r&   s    r   r   zBaseLoader.conf   s,     :%%0022DJzr   )Tr   )NN)F)r   r   )&r   
__module____qualname____doc__	frozensetr   
configuredrR   rJ   r   rW   r   r   r#   r'   r)   r+   r-   r2   r7   r   rH   rK   rM   rO   r[   rT   rk   r   recompiler   r   r   r   rD   propertyr   r    r   r   r   r   !   s        $  ikkOJE" " "   
0 0 0/ / /H H HL L L2 2 2, , ,@ @ @ @
 
 
 
J J J" " "" " "& & &   1 1 1 1	. 	. 	.# # # 5=&0bj&>&>*.-1-1 -1 -1 -1^. . . .M M M M
 
 
 _
   X  r   r   r   c                 J    t           rdS da 	 fd| D             da S # da w xY w)Nr    Tc                 0    g | ]}t          |          S r    )find_related_module)r=   pkgr   s     r   r?   z&autodiscover_tasks.<locals>.<listcomp>   s$    KKK3#C66KKKr   F)_RACE_PROTECTION)r   r   s    `r   r   r      sO      r!KKKK(KKK 5    s    "c                 0   	 t          j        |           }|s|r|S n,# t          $ r |                     d          \  } }}| s Y nw xY w|  d| }	 t          j        |          S # t          $ r&}t	          |dd          }|r||k    rY d}~dS |d}~ww xY w)zFind module in package.rw   ri   N)r6   r7   ModuleNotFoundError
rpartitiongetattr)r5   r   r1   rF   module_nameeimport_exc_names          r   r   r      s    	(11 	 	M   **3//A 		 	 --|--K
&{333   !!VT22 	{o==FFFFF s-    &AAA% %
B/BBBr   )!r   r6   r   r   rf   r   kombu.utilsr   kombu.utils.objectsr   rm   r   celery.exceptionsr   celery.utils.collectionsr   r	   celery.utils.functionalr
   celery.utils.importsr   r   r   r   __all__r   rh   rd   objectr   r   r   r   r    r   r   <module>r      sj         				 				 



             / / / / / /       % % % % % % A A A A A A A A . . . . . . Z Z Z Z Z Z Z Z Z Z Z Z
  
 ) ,   vxxK K K K K K K K\	! 	! 	! 	!    r   