main
 1from __future__ import annotations
 2
 3from typing import TYPE_CHECKING
 4from argparse import ArgumentParser
 5
 6from .._utils import get_client, print_model
 7from .._models import BaseModel
 8
 9if TYPE_CHECKING:
10    from argparse import _SubParsersAction
11
12
13def register(subparser: _SubParsersAction[ArgumentParser]) -> None:
14    sub = subparser.add_parser("models.list")
15    sub.set_defaults(func=CLIModels.list)
16
17    sub = subparser.add_parser("models.retrieve")
18    sub.add_argument("-i", "--id", required=True, help="The model ID")
19    sub.set_defaults(func=CLIModels.get, args_model=CLIModelIDArgs)
20
21    sub = subparser.add_parser("models.delete")
22    sub.add_argument("-i", "--id", required=True, help="The model ID")
23    sub.set_defaults(func=CLIModels.delete, args_model=CLIModelIDArgs)
24
25
26class CLIModelIDArgs(BaseModel):
27    id: str
28
29
30class CLIModels:
31    @staticmethod
32    def get(args: CLIModelIDArgs) -> None:
33        model = get_client().models.retrieve(model=args.id)
34        print_model(model)
35
36    @staticmethod
37    def delete(args: CLIModelIDArgs) -> None:
38        model = get_client().models.delete(model=args.id)
39        print_model(model)
40
41    @staticmethod
42    def list() -> None:
43        models = get_client().models.list()
44        for model in models:
45            print_model(model)