from __future__ import annotations from ....lib.log import DEBUG, log from .Cmd import Cmd, Parent from typing import TYPE_CHECKING if TYPE_CHECKING: from argparse import ArgumentParser, Namespace class CmdExtract(Cmd): # export def __init__(self, parent: Parent) -> None: super().__init__(parent, 'x', help = 'Extract a tar archive') def add_arguments(self, parser: ArgumentParser) -> None: super().add_arguments(parser) parser.add_argument('dst', help = 'Destination root URI') async def _run(self, args: Namespace) -> None: async with self.ctx(dst = args.dst) as ctx: paths = await ctx.extract(ctx.dst.root) log(DEBUG, f'Extracted {len(paths)} files')