JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrU Qabt@s`ddlmZddlmZddlmZddlZddlZddlm Z ddl m Z Gddde Z dS) ) convert_path)log)DistutilsOptionErrorN)six)Commandc@s:eZdZdZdZdddgZgZddZdd 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)matchdist_dirkeepselfr=/usr/lib/python3.8/site-packages/setuptools/command/rotate.pyinitialize_optionsszrotate.initialize_optionscCs|jdkrtd|jdkr$tdzt|j|_Wntk rPtdYnXt|jtjrxdd|jdD|_| dddS) 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)rstrip).0prrr *sz+rotate.finalize_options..,Zbdist)r r ) r rr int ValueError isinstancerZ string_typessplitZset_undefined_optionsrrrrfinalize_optionss   zrotate.finalize_optionscCs|dddlm}|jD]}|jd|}|tj|j|}dd|D}| | t dt ||||jd}|D]<\}}t d||jstj|rt|qt|qqdS) NZegg_infor)glob*cSsg|]}tj||fqSr)ospathgetmtime)rfrrrr6szrotate.run..z%d file(s) matching %sz Deleting %s)Z run_commandrr Z distributionZget_namerr joinr sortreverserinfolenr Zdry_runisdirshutilZrmtreeunlink)rrpatternfilestr"rrrrun/s        z rotate.runN) __name__ __module__ __qualname____doc__ descriptionZ user_optionsZboolean_optionsrrr.rrrrr sr) Zdistutils.utilrZ distutilsrZdistutils.errorsrrr)Zsetuptools.externrZ setuptoolsrrrrrrs