o
    ›¨Êhø  ã                   @   sì   d Z ddlZddlZddlZddlmZ ddlmZmZm	Z	 ddl
mZ e ¡ eje	dd„ ƒƒƒZdd	„ Zddd„Zd dd„Zeejfdd„Zejed�e d¡ejdedddd�ejdedddd�ejdedddd�dd„ ƒƒƒƒƒZdS )!zGThe ``celery upgrade`` command, used to upgrade from previous versions.é    N)Údefaults)ÚCeleryCommandÚCeleryOptionÚhandle_preload_options)Úpass1c                 C   s   dS )z!Perform upgrade between versions.N© )Úctxr   r   úD/var/www/html/env/lib/python3.10/site-packages/celery/bin/upgrade.pyÚupgrade   s    r
   c                 C   s@   t  | dd¡�}dd„ |D ƒW  d   ƒ S 1 sw   Y  d S )NÚrúutf-8c                 S   s   g | ]}|‘qS r   r   ©Ú.0Úliner   r   r	   Ú
<listcomp>   s    z_slurp.<locals>.<listcomp>)ÚcodecsÚopen)ÚfilenameÚread_fhr   r   r	   Ú_slurp   s   $ÿr   ÚCELERYc                 C   s$   |   ¡ } |  |¡sd || g¡} | S )NÚ_)ÚupperÚ
startswithÚjoin)ÚkeyÚ	namespacer   r   r	   Ú_compat_key   s   
r   ú.origc              	   C   s¸   g }d  | |g¡}td|› d�tjd� t | dd¡�7}t |dd¡�}|D ]}| |¡ | |¡ q&W d   ƒ n1 s=w   Y  W d   ƒ |S W d   ƒ |S 1 sUw   Y  |S )NÚ zwriting backup to ú...©Úfiler   r   Úw)r   ÚprintÚsysÚstderrr   r   ÚwriteÚappend)r   ÚsuffixÚlinesÚbackup_filenamer   Ú	backup_fhr   r   r   r	   Ú_backup    s&   ÿ
þÿ
ÿü
ÿûr-   c                 C   sR   t t|dd„ d�ƒD ]}|  |||| ƒ¡}| |kr$d|vr$d|f  S q
d| fS )Nc                 S   s   t | ƒS )N)Úlen)Úxr   r   r	   Ú<lambda>0   s    z_to_new_key.<locals>.<lambda>)r   ÚCELERY_CELERYé   r   )ÚreversedÚsortedÚreplace)r   Ú	keyfilterÚsourceÚold_keyÚnew_liner   r   r	   Ú_to_new_key-   s   €r:   )Úclsr   z--djangoTzUpgrading OptionszUpgrade Django project.)r;   Úis_flagÚ
help_groupÚhelpz--compatz!Maintain backwards compatibility.z--no-backupzDon't backup original files.c           	         sÈ   t | ƒ}|s|r
tnt‰ td| › d�tjd� ‡ fdd„|D ƒ}tdd„ |D ƒƒr[|s/t| ƒ t 	| dd	¡�}|D ]	\}}| 
|¡ q9W d
  ƒ n1 sMw   Y  tdtjd� d
S tdtjd� d
S )z/Migrate settings from Celery 3.x to Celery 4.x.zprocessing r    r!   c                    s   g | ]}t |ˆ ƒ‘qS r   )r:   r   ©r6   r   r	   r   N   s    
ÿzsettings.<locals>.<listcomp>c                 s   s   � | ]}|d  V  qdS )r   Nr   )r   Únr   r   r	   Ú	<genexpr>Q   s   € zsettings.<locals>.<genexpr>r#   r   Nz'Changes to your setting have been made!z(Does not seem to require any changes :-))r   r   r   r$   r%   r&   Úanyr-   r   r   r'   Ústdout)	r   ÚdjangoÚcompatÚ	no_backupr*   Ú	new_linesÚwrite_fhr   r   r   r?   r	   Úsettings7   s(   
ÿÿÿ
ÿ
ÿrI   )r   )r   )Ú__doc__r   r%   ÚclickÚ
celery.appr   Úcelery.bin.baser   r   r   Úcelery.utils.functionalr   ÚgroupÚpass_contextr
   r   r   r-   Ú_TO_NEW_KEYr:   ÚcommandÚargumentÚoptionrI   r   r   r   r	   Ú<module>   sH    



üüü