o
    Df                     @   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   K/home/ubuntu/webapp/venv/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    



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