HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/celery/app/__pycache__/utils.cpython-310.pyc
o

-weh3�@s�dZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZddl
mZddlmZdd	lmZdd
lmZddlmZmZmZddlmZd
dlmZmZmZmZm Z m!Z!m"Z"dZ#dZ$e�%dej&�Z'dZ(dZ)dZ*dd�Z+Gdd�de�Z,ej-fdd�Z.ej-fdd�Z/edd�Z0e0e ee/e(�Z1e0eee.e)�Z2		d-dd �Z3Gd!d"�d"�Z4d#d$�Z5d%d&�Z6d'd(�Z7d)d*�Z8eefd+d,�Z9dS).z?App utilities: Compat settings, bug-report tool, pickling apps.�N)�
namedtuple)�Mapping)�deepcopy)�
ModuleType)�maybe_sanitize_url)�ImproperlyConfigured)�pyimplementation)�ConfigurationView)�import_from_cwd�qualname�symbol_by_name��pretty�)�
_OLD_DEFAULTS�_OLD_SETTING_KEYS�_TO_NEW_KEY�_TO_OLD_KEY�DEFAULTS�SETTING_KEYS�find)�Settings�appstr�	bugreport�filter_hidden_settings�find_appa 
software -> celery:{celery_v} kombu:{kombu_v} py:{py_v}
            billiard:{billiard_v} {driver_v}
platform -> system:{system} arch:{arch}
            kernel version:{kernel_version} imp:{py_i}
loader   -> {loader}
settings -> transport:{transport} results:{results}

{human_settings}
z=API|TOKEN|KEY|SECRET|PASS|PROFANITIES_LIST|SIGNATURE|DATABASEzk

Cannot mix new and old setting keys, please rename the
following settings to the new format:

{renames}

z�

Cannot mix new setting names with old setting names, please
rename the following settings to use the old format:

{renames}

Or change all of the settings to use the new format :)

z{replace:<36} -> {with_}cCs|jpd�dt|�d��S)z1String used in __repr__ etc, to id app instances.�__main__z at z#x)�main�id)�app�r �I/home/arjun/projects/env/lib/python3.10/site-packages/celery/app/utils.pyrA�rcs�eZdZdZdd��fdd�
Zedd��Zedd	��Zed
d��Zedd
��Z	edd��Z
edd��Zedd��Zdd�Z
dd�Zd*dd�Zd+dd�Zdd�Zd d!�Zd,d$d%�Zd,d&d'�Zd(d)�Z�ZS)-rzsCelery settings object.

    .. seealso:

        :ref:`configuration` for a full list of configuration keys.

    N)�deprecated_settingscst�j|i|��||_dS�N)�super�__init__r#)�selfr#�args�kwargs��	__class__r r!r&Os
zSettings.__init__cC�tj�d�p
|�d�p
|jS)N�CELERY_BROKER_READ_URL�broker_read_url��os�environ�get�
broker_url�r'r r r!r.T�
��zSettings.broker_read_urlcCr,)N�CELERY_BROKER_WRITE_URL�broker_write_urlr/r4r r r!r7\r5zSettings.broker_write_urlcCstj�d�p|�dd�S)N�CELERY_BROKER_URLr3�broker_host�r0r1r2�firstr4r r r!r3d�
�zSettings.broker_urlcCstj�d�p|�dd�S)N�CELERY_RESULT_BACKEND�result_backendr:r4r r r!r>kr<zSettings.result_backendcC�|�dd�S)N�task_default_exchange�task_default_queue�r;r4r r r!r@r��zSettings.task_default_exchangecCr?)N�task_default_routing_keyrArBr4r r r!rDyrCz!Settings.task_default_routing_keycCr?)N�timezone�	TIME_ZONErBr4r r r!rE�szSettings.timezonecCsti|jdd��S)z7Return the current configuration, but without defaults.N���)r�mapsr4r r r!�without_defaults�szSettings.without_defaultscCs||��vSr$)rI)r'�keyr r r!�
value_set_for�szSettings.value_set_for�cCs
t||�S)a�Search for option by name.

        Example:
            >>> from proj.celery import app
            >>> app.conf.find_option('disable_rate_limits')
            ('worker', 'prefetch_multiplier',
             <Option: type->bool default->False>))

        Arguments:
            name (str): Name of option, cannot be partial.
            namespace (str): Preferred name-space (``None`` by default).
        Returns:
            Tuple: of ``(namespace, key, type)``.
        )r�r'�name�	namespacer r r!�find_option�s
zSettings.find_option�celerycCs|j|�||�dd��S)z6Shortcut to ``get_by_parts(*find_option(name)[:-1])``.NrG)�get_by_partsrPrMr r r!�find_value_for_key�r"zSettings.find_value_for_keycGs|d�dd�|D��S)z�Return the current value for setting specified as a path.

        Example:
            >>> from proj.celery import app
            >>> app.conf.get_by_parts('worker', 'disable_rate_limits')
            False
        �_cs��|]}|r|VqdSr$r )�.0�partr r r!�	<genexpr>���z(Settings.get_by_parts.<locals>.<genexpr>)�join)r'�partsr r r!rR�szSettings.get_by_partscCs$z|dW|StyY|Sw)N�	__bogus__)�KeyErrorr4r r r!�finalize�s
��zSettings.finalizeFTcsJ|rtndd�}tt��|��|r|n|��}|�fdd�|��D��S)NcSs|Sr$r )�vr r r!�<lambda>�sz Settings.table.<locals>.<lambda>cs(i|]\}}|�d�s|�vr||�qS)rT)�
startswith�rV�kr_��dict_membersr r!�
<dictcomp>�s��z"Settings.table.<locals>.<dictcomp>)r�dir�dictr^rI�items)r'�
with_defaults�censored�filt�settingsr rdr!�table�s�zSettings.tablecCs d�dd�|�||���D��S)z;Return a human readable text showing configuration changes.�
css*�|]\}}|�dt|dd���VqdS)z: �2)�widthNr
)rVrJ�valuer r r!rX�s
��
�z$Settings.humanize.<locals>.<genexpr>)rZrnri)r'rjrkr r r!�humanize�s
�zSettings.humanizecCsV|jr)ddlm}ddlm}|jD]}|jd|�d�dd||�d�d	�qd
SdS)Nr)r)�
deprecatedzThe z settingz6.0.0zUse the z instead)�description�removal�alternativeTF)r#�celery.app.defaultsr�celery.utilsrt�warn)r'rrt�settingr r r!�maybe_warn_deprecated_settings�s
�z'Settings.maybe_warn_deprecated_settings)rL)rQ)FT)�__name__�
__module__�__qualname__�__doc__r&�propertyr.r7r3r>r@rDrErIrKrPrSrRr^rnrsr|�
__classcell__r r r*r!rFs4










	

rcC�
|||�Sr$r �rJ�convertr r r!�_new_key_to_old��
r�cCr�r$r r�r r r!�_old_key_to_new�r�r��settings_info_t)�defaultsr��key_t�	mix_errorcsp|sin|}|st�n|}|stn|}|stn|}|}|dur$|i}}t|���|���|�}��|�}d�|rNt|�}	|rNt|�t|�krNt|�}	|rg�sWt|�}	|rft|�t|�krft|�}	nt|�}	|rttt��}	��fdd�|	D�}
|
r�t�j	j
d��fdd�t|
�D��d����fdd�|�
�D�}tt�j�fi|��}t|||gttf||d	�S)
Ncsh|]}�j|�vr|�qSr )r��rVrJ��have�infor r!�	<setcomp>sz"detect_settings.<locals>.<setcomp>roc3s$�|]
}tj|�j|d�VqdS))�replace�with_N)�FMT_REPLACE_SETTING�formatr�r��r�r r!rXs
��
�z"detect_settings.<locals>.<genexpr>)�renamescs i|]\}}�j�||�|�qSr )r�r2rbr�r r!rfs z#detect_settings.<locals>.<dictcomp>)r#�prefix)�setrr�keys�intersection�_settings_info�len�_old_settings_inforr�r�rZ�sortedrirhrr�rr�r�)�conf�preconf�ignore_keysr��all_keys�old_keys�source�	is_in_new�	is_in_old�left�really_leftr�r r�r!�detect_settings�sJ






�
��r�c@s<eZdZdZdd�Zdd�Zdd�Z	d
d	d
�Zdd�ZdS)�
AppPicklerz*Old application pickler/unpickler (< 3.1).cGs2|j|�}|j|fi|��}|j|fi|��|Sr$)�build_kwargs�	construct�prepare)r'�clsr(r)rr r r!�__call__$s
zAppPickler.__call__cKs|j�|d�dS)N�changes)r��update)r'rr)r r r!r�*szAppPickler.preparecGs
|j|�Sr$)�build_standard_kwargs)r'r(r r r!r�-r�zAppPickler.build_kwargsNcCs||||||||d|
d�
S)NF)
r�loader�backend�amqpr��events�log�control�set_as_current�
config_sourcer )r'rr�r�r�r�r�r�r��accept_magic_kwargsr�r r r!r�0s
�z AppPickler.build_standard_kwargscKs|di|��S)Nr r )r'r�r)r r r!r�8szAppPickler.constructr$)	r}r~rr�r�r�r�r�r�r r r r!r�!s
�r�cGs|�|g|�R�S)zRebuild app for versions 2.5+.r )r��picklerr(r r r!�
_unpickle_app<sr�cCsd|d<|di|��S)zRebuild app for versions 3.1+.Fr�Nr r )r�r)r r r!�_unpickle_app_v2Asr�cs ddd���fdd�|��D�S)zFilter sensitive settings.�********cSsnt|t�r	t|�St|t�r5t�|�r|Sd|��vr)ddlm}||�j	|d�Sd|��vr5t
||d�S|S)Nr3r)�
Connection)�maskr�)�
isinstancerr�str�HIDDEN_SETTINGS�search�lower�kombur��as_urir)rJrrr�r�r r r!�maybe_censorIs


z,filter_hidden_settings.<locals>.maybe_censorcsi|]
\}}|�||��qSr r rb�r�r r!rfWsz*filter_hidden_settings.<locals>.<dictcomp>N)r�)ri)r�r r�r!rGs
rcCs�ddl}ddl}ddl}z|��}d�|jj|j���}|j}Wn
t	y-d}}Ynwt
jt��d�
dd�t��D��t��t�|j|j|jt��||t|jjpTd�|j��t|jj�d	�
S)
z=Return a string containing information useful in bug-reports.rNz{}:{}rLz, csrUr$r )rV�xr r r!rXkrYzbugreport.<locals>.<genexpr>�disabled)
�system�arch�kernel_version�py_i�celery_v�kombu_v�
billiard_v�py_v�driver_v�	transport�results�human_settingsr�)�billiardr�rQ�
connectionr�r��driver_name�driver_version�
transport_cls�	Exception�BUGREPORT_INFO�	_platformr�rZ�architecture�releaser�VERSION_BANNER�__version__�python_versionrr�r>rsrr�r+)rr�r�rQ�connr�r�r r r!rZs6
�
�
�rcCsddlm}z|||d�}Wn
ty||�}Ynwt|t�r�d|vr�z|j}t|t�r1t��W|Sty�z|j}t|t�rGtd��W|YSty�t|dd�rqzt|�d�||d	�WYYSt	ypYnwt
|���D]}t||�r�|YYSqw�ww|S)
zFind app by name.r)�Celery)�imp�:zBattribute 'celery' is the celery module not the instance of celery�__path__Nz.celery)rr�)�baser��AttributeErrorr�rrrQ�getattrr�ImportError�vars�values)rrr�r��sym�found�suspectr r r!rzsP�
��
�����
���r)NNNNN):r�r0�platformr��re�collectionsr�collections.abcr�copyr�typesr�kombu.utils.urlr�celery.exceptionsr�celery.platformsr�celery.utils.collectionsr	�celery.utils.importsr
rr�celery.utils.textrr�rrrrrrr�__all__r��compile�
IGNORECASEr��E_MIX_OLD_INTO_NEW�E_MIX_NEW_INTO_OLDr�rrr2r�r��_settings_info_tr�r�r�r�r�r�rrrr r r r!�<module>sZ$�	
��
�9