
    iV                    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    o/home/techsaathi/public_html/it_helpdesk_chatbot/venv/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 ]:  }| 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 ]e  \  }}t        j                  d|       t
        j                  j!                  |      rt#        j$                  |       Qt        j&                  |       g = 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   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*77==#NN1%IIaL!	! >s   <(E#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   rF   r   r   <module>rM      s&    " 	    1 '3!W 3!r   