U
    >ht                     @   s`   d dl mZ d dlmZ d dlmZ d dlZd dlZd dlm	Z	 d dl
mZ G dd deZdS )	    )convert_path)log)DistutilsOptionErrorN)six)Commandc                   @   s:   e Zd ZdZdZdddgZg Zdd Zdd	 Zd
d Z	dS )rotatezDelete older distributionsz2delete older distributions, keeping N newest files)zmatch=mzpatterns to match (required))z	dist-dir=dz%directory where the distributions are)zkeep=kz(number of matching distributions to keepc                 C   s   d | _ d | _d | _d S )N)matchdist_dirkeepself r   =/tmp/pip-unpacked-wheel-sym_ama1/setuptools/command/rotate.pyinitialize_options   s    zrotate.initialize_optionsc                 C   s   | j d krtd| jd kr$tdzt| j| _W n tk
rP   tdY nX t| j tjrxdd | j dD | _ | 	dd d S )	NzQMust specify one or more (comma-separated) match patterns (e.g. '.zip' or '.egg')z$Must specify number of files to keepz--keep must be an integerc                 S   s   g | ]}t | qS r   )r   strip).0pr   r   r   
<listcomp>*   s    z+rotate.finalize_options.<locals>.<listcomp>,bdist)r   r   )
r   r   r   int
ValueError
isinstancer   string_typessplitset_undefined_optionsr   r   r   r   finalize_options   s    


zrotate.finalize_optionsc                 C   s   |  d ddlm} | jD ]}| j d | }|tj| j|}dd |D }|	  |
  tdt|| || jd  }|D ]<\}}td| | jstj|rt| qt| qqd S )	Negg_infor   )glob*c                 S   s   g | ]}t j||fqS r   )ospathgetmtime)r   fr   r   r   r   6   s     zrotate.run.<locals>.<listcomp>z%d file(s) matching %szDeleting %s)run_commandr!   r   distributionget_namer#   r$   joinr   sortreverser   infolenr   dry_runisdirshutilrmtreeunlink)r   r!   patternfilestr&   r   r   r   run/   s     

z
rotate.runN)
__name__
__module____qualname____doc__descriptionuser_optionsboolean_optionsr   r   r7   r   r   r   r   r      s   r   )distutils.utilr   	distutilsr   distutils.errorsr   r#   r1   Zsetuptools.externr   
setuptoolsr   r   r   r   r   r   <module>   s   