U
    bh=                  ?   @   s  d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 dZ
dZdZd	 Zd
ZdZdhZdhZdhZeddZdddZdd ZG dd dZeeedededddedddeddededdedededeeedd dei d!ded"ed#edd$dededd%eedddedddedddeddei d!ded&d dedddeddded'd$ded(ddeddded)d$ded*d$deddded+dd,ed-d$ded(ddedded$deddeddeddd.eed/e ei d!dd0eed deddeddeddeddeddeddeddeddeddei d!dd1eeddeddeddeddeddeddd2eed3dded4d$ded4d$ded5d$ded6dded7d$ded)d$dd8eeddedded6ddedd dd9eed:d ded;d ded3ddd<eed=edd!dd>eed?edd!dd>eed@ed!dd>eedAddedBddedCddedDd$dedEd$ddFeedGedHd dedId dedJedKedJdddLeedMed!ded$dedded$deddedded$dedNd dedd ded(dded(dddOeedPeddedQd$dRhdedSdedTedUeedVdWd dXhdeddded(ddedKei d!dedYd ded*d dedZd$deed[d ded-d$ded(ddd\eed]edded$ded dedddd^eed_eddeddedded`deedddaeedbhdced!ddhded(ddehded!ded!dfhdeddddgeeed(ddeddded(ddedhdeddihdeddded(dded4dded3edjddedddedUedddeddeddded(ddkhded(dded(dded4d$dlhdedddmhded5ddVdndod!dphded!dedd$dedded(ddedhded(ddqhdedKdrhdced dshded dthded(dded(dded(dddu"eeedddedved(ddedwd ded(ddedd$dedxdded(ddyhded(ddzhded(ddeddd{hdedddeddeeed;d d|hded$ded$deeeddded(dded}d ded&d$dedddeddd~hdeddhdced(ddhde eeeddedYd dedddd dZdd Zdd Zd6efddZdd eeD ZeeeedZ dd e D Z!dd e D Z"dd e D Z#dZ e$e% Z&e$e#% Z'dd Z(edddddZ)dS )z)Configuration introspection and defaults.    )deque
namedtuple)	timedelta)memoize)	strtobool)Option
NAMESPACESflattenfindZprefork)jsonz>
    [%(asctime)s: %(levelname)s/%(processName)s] %(message)s
zT[%(asctime)s: %(levelname)s/%(processName)s] %(task_name)s[%(task_id)s]: %(message)ssha256z
celery_{0}zcelerybeat_{0}zceleryd_{0}searchresult)	namespacekeytypeNc                    s8   | d k	r4|  D ]"\ }|js fdd| D |_q|S )Nc                    s   h | ]}|  qS  )format).0or   r   7/tmp/pip-unpacked-wheel-kcem4wq5/celery/app/defaults.py	<setcomp>"   s     zNamespace.<locals>.<setcomp>)itemsold)__old__optionsoptr   r   r   	Namespace   s
    r   c                 C   s   |  dhS )Nz_{0}r   )nsr   r   r   old_ns&   s    r   c                   @   sT   e Zd ZdZdZdZdZe Ze	e
edd eeedZdddZdd	 Zd
d ZdS )r   z(Describes a Celery configuration option.Nc                 C   s   | S Nr   )vr   r   r   <lambda>1       zOption.<lambda>)stringintfloatanybooldicttuplec                 O   s8   || _ |dpd| _| D ]\}}t| || qd S )Nr   r$   )defaultgetr   r   setattr)selfr+   argskwargsattrvaluer   r   r   __init__4   s    zOption.__init__c                 C   s   | j | j |S r    )typemapr   )r.   r2   r   r   r   	to_python:   s    zOption.to_pythonc                 C   s   d | j| jS )Nz <Option: type->{} default->{!r}>)r   r   r+   )r.   r   r   r   __repr__=   s    zOption.__repr__)N)__name__
__module____qualname____doc__altdeprecate_by	remove_bysetr   strr%   r&   r   r)   r*   r4   r3   r5   r6   r   r   r   r   r   *   s     
r   list)r   r   )r   Tr(   r   r*   r$   r&   r)   zcelery.beat:PersistentSchedulerzcelerybeat-scheduler%   )r   Zmax_loop_intervalscheduleZ	schedulerZschedule_filenameZ
sync_everyZcron_starting_deadline   d   Fx   g      @Zquorum)r+   r   
   )urlZread_urlZ	write_url	transportZtransport_optionsconnection_timeoutZconnection_retryZconnection_retry_on_startupZconnection_max_retriesZchannel_error_retryZfailover_strategyZ	heartbeatZheartbeat_checkrateZlogin_methodZ"native_delayed_delivery_queue_typeZ
pool_limitZuse_sslhostportuserpasswordZvhostZcelery_cache)r   backendZbackend_options)Z	entry_ttlZkeyspacerJ   Zread_consistencyZserversZbundle_pathtableZwrite_consistencyZauth_providerZauth_kwargsr   )Zaccess_key_idZsecret_access_keybucket	base_pathZendpoint_urlZregioncelery          )Zcontainer_nameZretry_initial_backoff_secZretry_increment_baseZretry_max_attemptsrP   rH   read_timeout)rO   projectrP   Zttlg     r@g      $@)	queue_ttlqueue_expiresexchangeZcelery_couchbase)r   Zbackend_settingsZcelery_arangodbZcelery_mongodbZcelerydbZ	celerycolSession	      )Zdatabase_nameZcollection_nameZconsistency_levelZmax_retry_attemptsZmax_retry_wait_timeZcelery_eventg      N@g      @Zceleryevr   )r   rY   rX   Zqueue_prefix
serializerrZ   Zcelery_redisg      ^@)r   Zbackend_use_ssldbrI   Zmax_connectionsusernamerL   rJ   socket_timeoutZsocket_connect_timeoutretry_on_timeoutZsocket_keepaliveZcelery_resultZcelery_max_cached_resultsr?   Zceleryresultsdirect   )daysZcelery_task_result_expiresg      ?i'  inf)r   rM   Z	cache_maxcompressionrZ   Zexchange_typeexpires
persistentextendedr^   Zbackend_transport_optionsZchord_retry_intervalZchord_join_timeoutZ$backend_max_sleep_between_retries_msZbackend_max_retriesZ%backend_base_sleep_between_retries_msZbackend_always_retryZcelery_elasticsearch)r   rb   max_retriestimeoutZsave_meta_as_textZcelery_securitybytes)r   ZcertificateZ
cert_storer   key_passworddigestZcelery_result_dburi)r   Zcelery_result_engine_optionsZ%celery_result_db_short_lived_sessionsZcelery_result_db_tablenames)rF   Zengine_optionsZshort_lived_sessionsZtable_schemasZtable_namesZcreate_tables_at_setupr'   Zcelery_message_compressionZclassicZ"celery_eager_propagates_exceptionsZcelery_task_protocolZcelery_task_publish_retryg?)rl   Zinterval_startZinterval_maxZinterval_stepZ celery_task_publish_retry_policyZcelery_send_task_sent_eventZcelery_task_serializerZceleryd_task_soft_time_limitZceleryd_task_time_limit)"r   Z	acks_lateZacks_on_failure_or_timeoutZalways_eagerannotationsrh   Zcreate_missing_queuesZinherit_parent_priorityZdefault_delivery_modeZdefault_queueZdefault_queue_typeZdefault_exchangeZdefault_exchange_typeZdefault_routing_keyZdefault_rate_limitZdefault_priorityZeager_propagatesZignore_resultZstore_eager_resultprotocolZpublish_retryZpublish_retry_policyZqueuesZqueue_max_priorityZreject_on_worker_lostZremote_tracebacksZroutesZsend_sent_eventr^   Zsoft_time_limitZ
time_limitZstore_errors_even_if_ignoredZtrack_startedZallow_error_cb_on_chord_headerz"celery.worker.autoscale:Autoscalerg        zcelery.worker.consumer:ConsumerZcelery_worker_directZcelery_disable_rate_limitsZcelery_enable_remote_controlZceleryd_worker_lost_waitg      @Zcelery_redirect_stdoutsWARNINGZcelery_redirect_stdouts_levelZcelery_send_events) r   ZagentZ
autoscalerZ,cancel_long_running_tasks_on_connection_lossZsoft_shutdown_timeoutZenable_soft_shutdown_on_idleZconcurrencyZconsumerrd   Zdisable_rate_limitsZdeduplicate_successful_tasksZenable_remote_controlZhijack_root_loggerZ	log_colorZ
log_formatZ	lost_waitZmax_memory_per_childZmax_tasks_per_childpoolZpool_putlocksZpool_restartsZproc_alive_timeoutZprefetch_multiplierZenable_prefetch_count_reductionZredirect_stdoutsZredirect_stdouts_levelZsend_task_eventsZstate_dbZtask_log_formatZtimerZtimer_precisionZdetect_quorum_queues)Zaccept_contentZresult_accept_contentZ
enable_utcZimportsincludetimezoneZbeatZbrokercacheZ	cassandraZs3ZazureblockblobZgcscontrolZ	couchbaseZarangodbZmongodbZcosmosdbsqleventZredisresultZelasticsearchsecurityZdatabaseZtaskZworkerc                 C   s   | | |fgS r    r   r   r   r   r   r   r   _flatten_keysf  s    r}   c                    s6   j r fddj D S      fgS )Nc                    s$   g | ]}|     fqS r   )r   upper)r   Zoldkeyr   r   r   r   r   
<listcomp>l  s   z_to_compat.<locals>.<listcomp>)r   r~   r|   r   r   r   
_to_compatj  s
    r   c                 c   sj   t || fg}|rf| \}}| D ]<\}}t|trP||| d |f q&||||E dH  q&qdS )zFlatten settings._N)r   popleftr   
isinstancer)   append)droot	keyfilterstackr   r   r   r   r   r   r   r	   s  s    
r	   c                 C   s   i | ]\}}||j qS r   r+   )r   r   r   r   r   r   
<dictcomp>  s     r   )r   c                 C   s   i | ]\}}}||j qS r   r   )r   old_keyr   r   r   r   r   r     s      c                 C   s   i | ]\}}}||qS r   r   r   r   Znew_keyr   r   r   r   r     s      c                 C   s   i | ]\}}}||qS r   r   r   r   r   r   r     s      c                 C   sb   ddl m} ttD ]H\}}|js(|jrt| |d r|jd|d|j|jd|j dd q| S )Nr   )
deprecatedzThe z settingzUse the z instead)descriptiondeprecationZremovalalternative)	Zcelery.utilsr   r	   r   r<   r=   getattrwarnr;   )sourcer   namer   r   r   r   find_deprecated_settings  s    r   )maxsizec                 C   s   |  }zt||   t| |    W S  tk
r   t D ]n\}}|  |   krjtd||   Y S t|tr>z"t||   ||    W    Y S  tk
r   Y q>X q>Y nX td|   t|    S )zFind setting by name.N)lowerr   r   KeyErrorr   r   r)   DEFAULTS)r   r   r   optsr   r   r   r
     s"      
"r
   )N)rQ   )*r:   collectionsr   r   datetimer   Zcelery.utils.functionalr   Zcelery.utils.serializationr   __all__ZDEFAULT_POOLZDEFAULT_ACCEPT_CONTENTstripZDEFAULT_PROCESS_LOG_FMTZDEFAULT_TASK_LOG_FMTZDEFAULT_SECURITY_DIGESTZOLD_NSZOLD_NS_BEATZOLD_NS_WORKERr   r   r   r   r%   r&   r   r}   r   r	   r   r@   Z__compatZ_OLD_DEFAULTSZ_TO_OLD_KEYZ_TO_NEW_KEYr>   keysZSETTING_KEYSZ_OLD_SETTING_KEYSr   r
   r   r   r   r   <module>   s  


































	














	



  









	
   










  

   

    


4
 



     





     

   &	