U Ù üePã@sTddlmZddlmZddlmZddlZddlZddlm Z Gdd„de ƒZ dS)é)Ú convert_path)Úlog)ÚDistutilsOptionErrorN)Ú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úG/opt/hc_python/lib/python3.8/site-packages/setuptools/command/rotate.pyÚinitialize_optionsszrotate.initialize_optionsc Cs–|jdkrtdƒ‚|jdkr$tdƒ‚zt|jƒ|_Wn,tk r`}ztdƒ|‚W5d}~XYnXt|jtƒr†dd„|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..ú,Úbdist)r r ) r rr ÚintÚ ValueErrorÚ isinstanceÚstrÚsplitÚset_undefined_options)r ÚerrrÚ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) NÚegg_infor)ÚglobÚ*cSsg|]}tj |¡|f‘qSr)ÚosÚpathÚgetmtime)rÚfrrrr4szrotate.run..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%rrrÚrun-s        z rotate.runN) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú descriptionÚ user_optionsÚboolean_optionsrrr6rrrrr sýr) Údistutils.utilrÚ distutilsrÚdistutils.errorsrr"r0Ú setuptoolsrrrrrrÚs