
    ?wg                    n    d dl mZ d dl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  G d	 d
e      Zy)    )annotationsN)ClassVar   )Command_shutil)log)DistutilsOptionError)convert_pathc                  B    e Zd ZU dZdZg dZg Zded<   d Zd
dZ	d
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 keepzClassVar[list[str]]boolean_optionsc                .    d | _         d | _        d | _        y )N)matchdist_dirkeep)selfs    P/var/www/horilla/myenv/lib/python3.12/site-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isdirr   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'q)		!%	% >s   <(E0N)returnNone)__name__
__module____qualname____doc__descriptionuser_optionsr   __annotations__r   r%   r=    r   r   r   r      s.    $FKL ,.O(-
F %r   r   )
__future__r   r-   typingr    r   r   	distutilsr   distutils.errorsr	   distutils.utilr
   r   rG   r   r   <module>rN      s&    " 	    1 '4%W 4%r   