Skip to content

Commit

Permalink
changed name
Browse files Browse the repository at this point in the history
  • Loading branch information
aj-ya committed Feb 13, 2024
1 parent e356d47 commit 63fc864
Show file tree
Hide file tree
Showing 10 changed files with 476 additions and 180 deletions.
67 changes: 65 additions & 2 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,65 @@
black
ruff
#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile --extra=dev --output-file=dev-requirements.txt pyproject.toml
#
annotated-types==0.6.0
# via pydantic
anyio==4.2.0
# via httpx
black==24.1.1
# via outpostcli (pyproject.toml)
certifi==2024.2.2
# via
# httpcore
# httpx
click==8.1.7
# via
# black
# outpostcli (pyproject.toml)
h11==0.14.0
# via httpcore
httpcore==1.0.2
# via httpx
httpx==0.26.0
# via outpostkit
idna==3.6
# via
# anyio
# httpx
markdown-it-py==3.0.0
# via rich
mdurl==0.1.2
# via markdown-it-py
mypy-extensions==1.0.0
# via black
outpostkit==0.0.30
# via outpostcli (pyproject.toml)
packaging==23.2
# via
# black
# outpostkit
pathspec==0.12.1
# via black
platformdirs==4.2.0
# via black
pydantic==2.6.1
# via outpostkit
pydantic-core==2.16.2
# via pydantic
pygments==2.17.2
# via rich
rich==13.7.0
# via outpostcli (pyproject.toml)
ruff==0.2.1
# via outpostcli (pyproject.toml)
sniffio==1.3.0
# via
# anyio
# httpx
typing-extensions==4.9.0
# via
# outpostkit
# pydantic
# pydantic-core
37 changes: 19 additions & 18 deletions outpostcli/cli.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
import json

import click
import outpostkit
from outpostkit import Client
from outpostkit.exceptions import OutpostError, OutpostHTTPException

from .config_utils import (
get_default_api_token_from_config,
purge_config_file,
remove_details_from_config_file,
write_details_to_config_file,
)
from .constants import cli_version
from .exceptions import NotLoggedInError
from .inference import inference
from .inferences import inferences
from .utils import check_token, click_group
from .endpoint import inference
from .endpoints import endpoints
from .utils import add_options, api_token_opt, check_token, click_group

CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])

Expand All @@ -26,7 +24,7 @@ def outpostcli():


# # Add subcommands
outpostcli.add_command(inferences)
outpostcli.add_command(endpoints)
outpostcli.add_command(inference)
# job.add_command(lep)
# kv.add_command(lep)
Expand All @@ -40,14 +38,7 @@ def outpostcli():


@outpostcli.command()
@click.option(
"--api-token",
"-t",
help="The API token for the outpost user.",
default=None,
prompt=True,
hide_input=True,
)
@add_options([api_token_opt])
def login(api_token: str):
"""
Login to the outpost.
Expand All @@ -62,20 +53,21 @@ def login(api_token: str):


@outpostcli.command()
@click.option("--api-token", "-t", default=lambda: get_default_api_token_from_config())
@add_options([api_token_opt])
def user(api_token):
"""
Get details about the currently logged in user.
"""
click.echo(json.dumps(Client(api_token=api_token).user.__dict__, indent=4))
click.echo(Client(api_token=api_token).user)
# click.echo(json.dumps(Client(api_token=api_token).user, indent=4))


@outpostcli.command(name="sdk-version")
def sdk_version():
"""
Get details about the currently logged in user.
"""
click.echo(outpostkit.__about__.__version__)
click.echo(outpostkit.__version__)


@outpostcli.command()
Expand All @@ -96,3 +88,12 @@ def logout(purge: bool):
click.echo("Logged out successfully.")
except NotLoggedInError:
click.echo("No logged in user found.")


def outpost():
try:
outpostcli()
except OutpostError as error:
click.echo(f"An error occurred: {error}", err=True)
except OutpostHTTPException as error:
click.echo(f"""APIException occurred - {error}""", err=True)
3 changes: 1 addition & 2 deletions outpostcli/config_utils.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import os
import configparser
import os

from outpostcli.exceptions import NotLoggedInError


CONFIG_FILE = os.environ.get(
"OUTPOSTCLI_CFG_PATH", os.path.join(os.path.expanduser("~"), ".outpostcli.cfg")
)
Expand Down
14 changes: 0 additions & 14 deletions outpostcli/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,3 @@
get_default_api_token_from_config,
get_default_entity_from_config,
)


def get_api_token(ctx, param, value):
if value is None:
return get_default_api_token_from_config()
else:
return value


def get_entity(ctx, param, value):
if value is None:
return get_default_entity_from_config()
else:
return value
49 changes: 22 additions & 27 deletions outpostcli/inference.py → outpostcli/endpoint.py
Original file line number Diff line number Diff line change
@@ -1,54 +1,51 @@
import json

import click
from outpostkit import Client
from outpostkit.inference import Inference
from outpostkit import Client, Endpoint
from outpostkit.utils import convert_outpost_date_str_to_date
from rich.table import Table

from outpostcli.config_utils import (
get_default_api_token_from_config,
get_default_entity_from_config,
from outpostcli.utils import (
add_options,
api_token_opt,
click_group,
console,
entity_opt,
)
from outpostcli.exceptions import SourceNotSupportedError
from outpostcli.utils import click_group, combine_inf_load_source_model, console


@click_group()
def inference():
"""
Manage Inferences
Manage an Inference service
"""
pass


@inference.command(name="get")
@click.option("--api-token", "-t", default=lambda: get_default_api_token_from_config())
@click.option("--entity", "-e", default=lambda: get_default_entity_from_config())
@add_options([api_token_opt, entity_opt])
@click.argument("name", type=str, nargs=1)
def get_inference(api_token, entity, name):
client = Client(api_token=api_token)
inf_data = Inference(client=client, name=name, entity=entity).get()
click.echo(json.dumps(inf_data.__dict__, indent=2))
inf_data = Endpoint(client=client, name=name, entity=entity).get()
click.echo(inf_data.__dict__)


@inference.command(name="deploy")
@click.argument("name", type=str, nargs=1)
@click.option("--api-token", "-t", default=lambda: get_default_api_token_from_config())
@click.option("--entity", "-e", default=lambda: get_default_entity_from_config())
@add_options([api_token_opt, entity_opt])
def deploy_inference(api_token, entity, name):
client = Client(api_token=api_token)
deploy_data = Inference(client=client, name=name, entity=entity).deploy({})
deploy_data = Endpoint(client=client, name=name, entity=entity).deploy({})
click.echo(f"Deployment successful. id: {deploy_data.id}")


@inference.command(name="deployments")
@add_options([api_token_opt, entity_opt])
@click.argument("name", type=str, nargs=1)
@click.option("--api-token", "-t", default=lambda: get_default_api_token_from_config())
@click.option("--entity", "-e", default=lambda: get_default_entity_from_config())
def list_inference_deployments(api_token, entity, name):
client = Client(api_token=api_token)
deployments_resp = Inference(
deployments_resp = Endpoint(
client=client, name=name, entity=entity
).list_deploymets(params={})

Expand Down Expand Up @@ -77,28 +74,26 @@ def list_inference_deployments(api_token, entity, name):

@inference.command(name="delete")
@click.argument("name", type=str, nargs=1)
@click.option("--api-token", "-t", default=lambda: get_default_api_token_from_config())
@click.option("--entity", "-e", default=lambda: get_default_entity_from_config())
@add_options([api_token_opt, entity_opt])
def delete_inference(api_token, entity, name):
fullName = f"{entity}/{name}"
if click.confirm(
f"do you really want to delete this endpoint: {fullName} ?", abort=True
):
client = Client(api_token=api_token)
delete_resp = Inference(client=client, name=name, entity=entity).delete()
delete_resp = Endpoint(client=client, name=name, entity=entity).delete()
return "Inference endpoint deleted."

return "Aborted"


@inference.command(name="dep-status")
@click.argument("name", type=str, nargs=1)
@click.option("--api-token", "-t", default=lambda: get_default_api_token_from_config())
@click.option("--entity", "-e", default=lambda: get_default_entity_from_config())
@add_options([api_token_opt, entity_opt])
@click.option("--verbose", "-v", is_flag=True, help="Verbose")
def inf_dep_status(api_token, entity, name):
client = Client(api_token=api_token)
# status_data = Inference(
# client=client, api_token=api_token, name=name, entity=entity
# ).status()
# click.echo()
status_data = Endpoint(
client=client, api_token=api_token, name=name, entity=entity
).status()
click.echo(status_data)
Loading

0 comments on commit 63fc864

Please sign in to comment.