a
    xd                     @   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   J/var/www/html/Ranjet/env/lib/python3.9/site-packages/celery/bin/upgrade.pyupgrade   s    r
   c                 C   s@   t | dd}dd |D W  d    S 1 s20    Y  d S )Nrutf-8c                 S   s   g | ]}|qS r   r   .0liner   r   r	   
<listcomp>       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\}t|dd.}|D ]}|| || qLW d    n1 sz0    Y  W d    n1 s0    Y  |S )N zwriting backup to ...filer   r   w)r   printsysstderrr   r   writeappend)r   suffixlinesZbackup_filenamer   Z	backup_fhr   r   r   r	   _backup!   s    
Hr,   c                 C   sR   t t|dd dD ]4}| |||| }| |krd|vrd|f  S qd| fS )Nc                 S   s   t | S )N)len)xr   r   r	   <lambda>1   r   z_to_new_key.<locals>.<lambda>)r   ZCELERY_CELERY   r   )reversedsortedreplace)r   	keyfiltersourceZold_keynew_liner   r   r	   _to_new_key.   s
    r7   )clsr   z--djangoTzUpgrading OptionszUpgrade Django project.)r8   Zis_flagZ
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 ]\}}|
| qrW d
   n1 s0    Y  tdtjd n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   )r7   r   r4   r   r	   r   O   s   zsettings.<locals>.<listcomp>c                 s   s   | ]}|d  V  qdS )r   Nr   )r   nr   r   r	   	<genexpr>R   r   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   ZdjangocompatZ	no_backupr+   	new_linesZwrite_fhr   r   r   r:   r	   settings8   s$    
*rA   )r   )r   )__doc__r   r&   ZclickZ
celery.appr   Zcelery.bin.baser   r   r   Zcelery.utils.functionalr   groupZpass_contextr
   r   r   r,   Z_TO_NEW_KEYr7   commandargumentoptionrA   r   r   r   r	   <module>   sF   



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