pmbootstrap-meow/pmb/commands/test.py
2024-12-19 10:09:22 +00:00

34 lines
912 B
Python

# Copyright 2024 Caleb Connolly
# SPDX-License-Identifier: GPL-3.0-or-later
from __future__ import annotations
from pmb import commands, logging
import pmb.helpers.repo
import pmb.parse.apkindex
from pmb.core.arch import Arch
import time
"""Various internal test commands for performance testing and debugging."""
def apkindex_parse_all() -> None:
indexes = pmb.helpers.repo.apkindex_files(Arch.native())
pkgs = 0
indxs = len(indexes)
start = time.time()
for index in indexes:
ret = pmb.parse.apkindex.parse(index)
pkgs += len(ret)
end = time.time()
logging.info(f"Parsed {pkgs} packages from {indxs} APKINDEX files in {end - start:.3f} seconds")
class Test(commands.Command):
def __init__(self, action: str) -> None:
self.action = action
def run(self) -> None:
if self.action == "apkindex_parse_all":
apkindex_parse_all()