HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Lib/site-packages/repo_cli/commands/search.py
from ..utils import format
from .base import SubCommandBase


class SubCommand(SubCommandBase):
    name = "search"

    def main(self):
        self.search(
            self.args.name[0],
            limit=self.args.limit,
            offset=self.args.offset,
            sort=self.args.sort,
            artifact_family=self.args.family,
            platform=self.args.platform,
        )

    def search(
        self,
        name,
        limit=50,
        offset=0,
        sort="-download_count",
        artifact_family=None,
        platform=None,
    ):
        data = self.api.get_artifacts(
            name,
            limit=limit,
            offset=offset,
            sort=sort,
            artifact_family=artifact_family,
            platform=platform,
        )
        packages = data.pop("items")
        data["limit"] = limit
        data["offset"] = offset
        data["sort"] = sort
        format.format_packages(packages, data, self.log)

    def add_parser(self, subparsers):
        parser = subparsers.add_parser(
            self.name,
            help="Search in your Anaconda repository",
            description="Search in your Anaconda repository",
            epilog=__doc__,
        )
        parser.add_argument("name", nargs=1, type=str, help="Search string")
        parser.add_argument(
            "-o",
            "--offset",
            default=0,
            type=int,
            help="Offset when displaying the results",
        )
        parser.add_argument(
            "-l",
            "--limit",
            default=50,
            type=int,
            help="Offset when displaying the results",
        )
        parser.add_argument(
            "-s",
            "--sort",
            default="download_count",
            type=str,
            help="Offset when displaying the results",
        )
        parser.add_argument(
            "-f",
            "--family",
            choices=[
                "conda",
                "python",
                "cran",
                "anaconda_project",
                "anaconda_env",
                "notebook",
                "gra",
            ],
            help="Only search for packages of this Artifact Family",
        )
        parser.add_argument(
            "-p",
            "--platform",
            choices=[
                "osx-64",
                "win-32",
                "win-64",
                "linux-32",
                "linux-64",
                "linux-armv6l",
                "linux-armv7l",
                "linux-ppc64le",
                "linux-ppc64",
                "linux-s390x",
                "linux-aarch64",
                "osx-arm64",
                "zos-z",
                "noarch",
            ],
            help="only search for packages of the chosen platform",
        )
        parser.set_defaults(main=self.main)