OXIESEC PANEL
- Current Dir:
/
/
snap
/
certbot-dns-digitalocean
/
4349
/
lib
/
python3.12
/
site-packages
/
setuptools
/
command
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/10/2025 09:50:12 PM
rwxr-xr-x
📄
__init__.py
803 bytes
06/10/2025 09:50:04 PM
rw-r--r--
📁
__pycache__
-
06/10/2025 09:50:12 PM
rwxr-xr-x
📄
_requirestxt.py
4.13 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
alias.py
2.32 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
bdist_egg.py
16.57 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
bdist_rpm.py
1.4 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
bdist_wheel.py
21.73 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
build.py
5.91 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
build_clib.py
4.42 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
build_ext.py
17.95 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
build_py.py
15.17 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
develop.py
1.57 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
dist_info.py
3.37 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
easy_install.py
780 bytes
06/10/2025 09:50:04 PM
rw-r--r--
📄
editable_wheel.py
35 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
egg_info.py
25.37 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
install.py
4.95 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
install_egg_info.py
2.03 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
install_lib.py
4.22 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
install_scripts.py
2.58 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
launcher manifest.xml
628 bytes
06/10/2025 09:50:04 PM
rw-r--r--
📄
rotate.py
2.14 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
saveopts.py
692 bytes
06/10/2025 09:50:04 PM
rw-r--r--
📄
sdist.py
7.2 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
setopt.py
4.98 KB
06/10/2025 09:50:04 PM
rw-r--r--
📄
test.py
1.31 KB
06/10/2025 09:50:04 PM
rw-r--r--
Editing: rotate.py
Close
from __future__ import annotations import os from typing import ClassVar from .. import Command, _shutil from distutils import log from distutils.errors import DistutilsOptionError from distutils.util import convert_path class rotate(Command): """Delete older distributions""" description = "delete older distributions, keeping N newest files" user_options = [ ('match=', 'm', "patterns to match (required)"), ('dist-dir=', 'd', "directory where the distributions are"), ('keep=', 'k', "number of matching distributions to keep"), ] boolean_options: ClassVar[list[str]] = [] def initialize_options(self): self.match = None self.dist_dir = None self.keep = None def finalize_options(self) -> None: if self.match is None: raise DistutilsOptionError( "Must specify one or more (comma-separated) match patterns " "(e.g. '.zip' or '.egg')" ) if self.keep is None: raise DistutilsOptionError("Must specify number of files to keep") try: self.keep = int(self.keep) except ValueError as e: raise DistutilsOptionError("--keep must be an integer") from e if isinstance(self.match, str): self.match = [convert_path(p.strip()) for p in self.match.split(',')] self.set_undefined_options('bdist', ('dist_dir', 'dist_dir')) def run(self) -> None: self.run_command("egg_info") from glob import glob for pattern in self.match: pattern = self.distribution.get_name() + '*' + pattern files = glob(os.path.join(self.dist_dir, pattern)) files = [(os.path.getmtime(f), f) for f in files] files.sort() files.reverse() log.info("%d file(s) matching %s", len(files), pattern) files = files[self.keep :] for t, f in files: log.info("Deleting %s", f) if not self.dry_run: if os.path.isdir(f): _shutil.rmtree(f) else: os.unlink(f)