U
    bl                      @   s   d dl mZmZmZmZ d dlZd dlmZmZ d dl	Z	ddl
mZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZ ddlmZmZmZ ddlmZm Z  ddl!m"Z" ddlm#Z# e$e%Z&dd Z'dS )    )absolute_importdivisionprint_functionunicode_literalsN)isfilejoin   )check_non_adminspecs_from_args)
handle_txn   )context)unregister_env)PrefixSetupUnlinkLinkTransaction)
PrefixData)_get_solver_class)CondaEnvironmentErrorCondaValueError"DirectoryNotACondaEnvironmentError)rm_rfpath_is_clean	MatchSpec)PackagesNotFoundErrorc           
      C   sz  | j s| jstdtj}t  | j r<|tjkr<d}t|| j rNt|rNdS | j r|tj	krhtdt
t|ddst|td| tjd d	| krt|tt| d
d
d
i d}t|}zt||| dd W n  tk
r   td|  Y nX tjst|dd t| d S | jr:tdd t| jD }n
t| j}d
}d
}t ||||d}	|	 }t||| dd d S )NzHno package names supplied,
       try "conda remove -h" for more detailszHcannot remove current environment. deactivate and run conda remove againr   zFcannot remove root environment,
       add -n NAME or -p PREFIX optionz
conda-metahistoryz(
Remove all packages in environment %s:
)filepackage_names )target_prefixZunlink_precsZ
link_precsZremove_specsZupdate_specsZneutered_specsFTz7No packages found in %s. Continuing environment removal)Zclean_empty_parentsc                 s   s   | ]}t |d V  qdS ))Ztrack_featuresNr   ).0fr   r   4lib/python3.8/site-packages/conda/cli/main_remove.py	<genexpr>T   s     zexecute.<locals>.<genexpr>)Zspecs_to_remove)allr   r   r   r   r	   Zdefault_prefixr   r   Zroot_prefixr   r   r   printsysstderrr   tupler   Ziter_recordsr   r   r   Zdry_runr   r   Zfeaturessetr
   r   Zsolve_for_transaction)
argsparserprefixmsgZstpZtxnZspecsZchannel_urlsZsubdirsZsolverr   r   r"   execute   sR    

r.   )(Z
__future__r   r   r   r   Zloggingos.pathr   r   r&   commonr	   r
   Zinstallr   Zbase.contextr   Zcore.envs_managerr   Z	core.linkr   r   Zcore.prefix_datar   Z
core.solver   
exceptionsr   r   r   Zgateways.disk.deleter   r   Zmodels.match_specr   r   Z	getLogger__name__logr.   r   r   r   r"   <module>   s    
