
    h                        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j                         ej                  e	d                      Zd ZddZdd	Zeej$                  fd
Zej)                  e       ej*                  d       ej,                  deddd       ej,                  deddd       ej,                  deddd      d                                    Zy)zGThe ``celery upgrade`` command, used to upgrade from previous versions.    N)defaults)CeleryCommandCeleryOptionhandle_preload_options)pass1c                      y)z!Perform upgrade between versions.N )ctxs    N/var/www/Befach/backend/env/lib/python3.12/site-packages/celery/bin/upgrade.pyupgrader      s        c                     t        j                  | dd      5 }|D cg c]  }| c}cd d d        S c c}w # 1 sw Y   y xY w)Nrutf-8)codecsopen)filenameread_fhlines      r   _slurpr      s?    	XsG	, *!())* *)* *s   7	277A c                 n    | j                         } | j                  |      sdj                  || g      } | S )N_)upper
startswithjoin)key	namespaces     r   _compat_keyr      s1    
))+C>>)$hh	3'(Jr   c                 t   g }dj                  | |g      }t        d| dt        j                         t	        j
                  | dd      5 }t	        j
                  |dd      5 }|D ]$  }|j                  |       |j                  |       & 	 d d d        d d d        |S # 1 sw Y   xY w# 1 sw Y   |S xY w)N zwriting backup to ...filer   r   w)r   printsysstderrr   r   writeappend)r   suffixlinesbackup_filenamer   	backup_fhr   s          r   _backupr.       s    Eggx01O	/s
3zz	XsG	, #[[#w7 	#9%T"  	##
 L		# 	##
 Ls$   B-$*B!B-!B*	&B--B7c                     t        t        |d             D ]-  }| j                  | |||               }| |k7  s$d|vs)d|fc S  d| fS )Nc                     t        |       S )N)len)xs    r   <lambda>z_to_new_key.<locals>.<lambda>0   s    Qr   )r   CELERY_CELERY   r   )reversedsortedreplace)r   	keyfiltersourceold_keynew_lines        r   _to_new_keyr=   -   sY     F6/?@A<<6'?)CD8x ?h; B d7Nr   )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                    t        |       }|s|rt        nt        }t        d|  dt        j
                         |D cg c]  }t        ||       }}t        d |D              re|st        |        t        j                  | dd      5 }|D ]  \  }	}|j                  |        	 ddd       t        dt        j                         yt        d	t        j                         yc c}w # 1 sw Y   FxY w)
z/Migrate settings from Celery 3.x to Celery 4.x.zprocessing r!   r"   c              3   &   K   | ]	  }|d      yw)r   Nr	   ).0ns     r   	<genexpr>zsettings.<locals>.<genexpr>Q   s     
#A1Q4
#s   r$   r   Nz'Changes to your setting have been made!z(Does not seem to require any changes :-))r   r   r   r%   r&   r'   r=   anyr.   r   r   r(   stdout)
r   djangocompat	no_backupr+   r9   r   	new_lineswrite_fhr   s
             r   settingsrN   7   s    & 8E%UI	Kz
%CJJ7 27)-D)$I  
#
##H[[30 	%H$4t$ %	% 	7::	 	8::		% 	%s   C'
C,,C5)CELERY)z.orig)__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optionrN   r	   r   r   <module>r[      s	   M  
   O O ) ,   ,*
 !&h.B.B  	]#
j,,	.
 j,6	8
 m,1	3
38.  $"r   