
    
_d1                     Z    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	  G d de	      Z
y)    )convert_path)log)DistutilsOptionErrorN)Commandc                   2    e Zd ZdZdZg dZg Zd Zd Zd Z	y)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                 .    d | _         d | _        d | _        y )N)matchdist_dirkeep)selfs    ;/usr/lib/python3/dist-packages/setuptools/command/rotate.pyinitialize_optionszrotate.initialize_options   s    
	    c                    | j                   t        d      | j                  t        d      	 t        | j                        | _        t        | j                   t              rE| j                   j                  d      D cg c]  }t        |j                                c}| _         | j                  dd       y # t        $ r}t        d      |d }~ww xY wc c}w )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 integer,bdist)r   r   )r   r   r   int
ValueError
isinstancestrsplitr   stripset_undefined_options)r   eps      r   finalize_optionszrotate.finalize_options   s    ::&*  99&'MNN	KDIIDI djj#&;?::;K;KC;PQa,qwwy1QDJ""7,DE	  	K&'BCJ	K Rs   B<  C<	CCCc                    | j                  d       ddlm} | j                  D ]G  }| j                  j	                         dz   |z   } |t
        j                  j                  | j                  |            }|D cg c]#  }t
        j                  j                  |      |f% }}|j                          |j                          t        j                  dt        |      |       || j                  d  }|D ]r  \  }}t        j                  d|       | j                   r)t
        j                  j#                  |      rt%        j&                  |       ^t        j(                  |       t J y c c}w )Negg_infor   )glob*z%d file(s) matching %szDeleting %s)run_commandr#   r   distributionget_nameospathjoinr   getmtimesortreverser   infolenr   dry_runisdirshutilrmtreeunlink)r   r#   patternfilesfts         r   runz
rotate.run+   s   $zz 	%G''002S87BGdmmW=>E7<=!bgg&&q)1-=E=JJLMMOHH-s5z7C$))+&E %1*||ww}}Q'a(		!%	% >s   <(E0N)
__name__
__module____qualname____doc__descriptionuser_optionsboolean_optionsr   r    r9    r   r   r   r   
   s(    $FKL O
F %r   r   )distutils.utilr   	distutilsr   distutils.errorsr   r(   r2   
setuptoolsr   r   rA   r   r   <module>rF      s#    '  1 	  4%W 4%r   