U âQabtã@s`ddlmZddlmZddlmZddlZddlZddlm Z ddl m Z Gdd„de ƒZ dS) é)Ú convert_path)Úlog)ÚDistutilsOptionErrorN)Úsix)ÚCommandc@s:eZdZdZdZdddgZgZdd„Zdd „Zd d „Z d S) ÚrotatezDelete older distributionsz2delete older distributions, keeping N newest files)zmatch=Úmzpatterns to match (required))z dist-dir=Údz%directory where the distributions are)zkeep=Úkz(number of matching distributions to keepcCsd|_d|_d|_dS)N)ÚmatchÚdist_dirÚkeep©Úself©rú=/usr/lib/python3.8/site-packages/setuptools/command/rotate.pyÚinitialize_optionsszrotate.initialize_optionscCsˆ|jdkrtdƒ‚|jdkr$tdƒ‚zt|jƒ|_Wntk rPtdƒ‚YnXt|jtjƒrxdd„|j d¡Dƒ|_|  dd¡dS) 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 integercSsg|]}t| ¡ƒ‘qSr)rÚstrip)Ú.0ÚprrrÚ *sz+rotate.finalize_options..ú,Zbdist)r r ) r rr ÚintÚ ValueErrorÚ isinstancerZ string_typesÚsplitZset_undefined_optionsrrrrÚfinalize_optionss ÿ  ÿzrotate.finalize_optionscCsÌ| d¡ddlm}|jD]ª}|j ¡d|}|tj |j|¡ƒ}dd„|Dƒ}|  ¡|  ¡t   dt |ƒ|¡||jd…}|D]<\}}t   d|¡|jsˆtj |¡rºt |¡qˆt |¡qˆqdS) NZegg_infor)ÚglobÚ*cSsg|]}tj |¡|f‘qSr)ÚosÚpathÚgetmtime)rÚfrrrr6szrotate.run..z%d file(s) matching %sz Deleting %s)Z run_commandrr Z distributionZget_namerr Újoinr ÚsortÚreverserÚinfoÚlenr Zdry_runÚisdirÚshutilZrmtreeÚunlink)rrÚpatternÚfilesÚtr"rrrÚrun/s        z rotate.runN) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú descriptionZ user_optionsZboolean_optionsrrr.rrrrr sýr) Zdistutils.utilrZ distutilsrZdistutils.errorsrrr)Zsetuptools.externrZ setuptoolsrrrrrrÚs