/usr/local/lib/python3.9/site-packages/django/core/management/commands/__pycache__
a Ӱ�hm* � @ s� d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dl m Z d dlmZm Z mZ d dlmZmZ d dlmZ d d lmZ d d lmZ d dlmZ G dd � d e�ZdS )� N)�apps)�settings)�BaseCommand�CommandError)�run_formatters)�DEFAULT_DB_ALIAS�connections� migrations)�AmbiguityError�MigrationLoader)�SwappableTuple)�MigrationOptimizer)�MigrationWriter)�get_docs_versionc @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �CommandzZSquashes an existing set of migrations (from first until specified) into a single new one.c C st |j ddd� |j dddd� |j dd d� |j d ddd � |j dddddd� |j ddd� |j ddddd� d S )N� app_labelz6App label of the application to squash migrations for.)�help�start_migration_name�?zGMigrations will be squashed starting from and including this migration.)�nargsr �migration_namez?Migrations will be squashed until and including this migration.z --no-optimize� store_truez/Do not try to optimize the squashed operations.)�actionr z --noinputz --no-input�store_false�interactivez:Tells Django to NOT prompt the user for input of any kind.)r �destr z--squashed-namez,Sets the name of the new squashed migration.z--no-header�include_headerz:Do not add a header comment to the new squashed migration.)�add_argument)�self�parser� r �Z/usr/local/lib/python3.9/site-packages/django/core/management/commands/squashmigrations.py� add_arguments sF �������zCommand.add_argumentsc s� |d | _ |d | _|d }|d }|d }|d }|d }|d }zt�|� W n0 ty� } ztt|���W Y d }~n d }~0 0 ttt �� |� j vr�td | ��| �� ||��� �fd d�� j� �j�jf�D �} |�r>| �� ||�} � �| j| j�}z| �|�}| |d � } W n& t�y< td| �|f ��Y n0 | j d k�sR| j�r�| j�| j�d�� | D ]�| j�d�j � �qj| j�r�d } | �r�| dv�r�td�} | �s�d} �q�n| d �� } �q�| dk�r�d S g }t� }d}| D ]�}|j�rtdt� ��|�|j� |jD ]X}t|t ��rJt!j"|j#k�r>|�$d� n |�$|� n |d |jk�s`|�r|�$|� �qd}�q�|�r�| j d k�r�| j�| j�d�� |}n|| j d k�r�| j�| j�d�� t%� }|�&|�j�}| j d k�rt'|�t'|�k�r| j�d� n| j�dt'|�t'|�f � g }| D ].��j�r@|��j� n|�(�j�jf� �q&t)dt*j+f|||d��}|�r�|�r�| j�,dd�\}}d ||f }nd!| j�jf }|||�}n$d"|�p�d#�j }|||�}d|_-t.||�}t/j0�1|j0��rtd$|j� d%���t2|j0d&d'd(��}|�|�3� � W d � n1 �s<0 Y t4|j0g� | j d k�r�| j�| j�d)|j0 �d* � |j5�r�| j�| j�d+�d, � t6�7d-��r�| j�| j�8d.�� d S )/N� verbosityr r r r �no_optimize� squashed_namer zLApp '%s' does not have migrations (so squashmigrations on it makes no sense)c s&