qbraid-cli 0.9.0__tar.gz → 0.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of qbraid-cli might be problematic. Click here for more details.
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.readthedocs.yml +1 -1
- {qbraid_cli-0.9.0/qbraid_cli.egg-info → qbraid_cli-0.9.1}/PKG-INFO +2 -2
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/index.rst +2 -1
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/pyproject.toml +2 -2
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/_version.py +2 -2
- qbraid_cli-0.9.1/qbraid_cli/chat/__init__.py +11 -0
- qbraid_cli-0.9.1/qbraid_cli/chat/app.py +96 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/handlers.py +16 -6
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/main.py +2 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1/qbraid_cli.egg-info}/PKG-INFO +2 -2
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli.egg-info/SOURCES.txt +2 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli.egg-info/requires.txt +1 -1
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.env.example +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/workflows/bump-version.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/workflows/docs-pr.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/workflows/docs.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/workflows/format.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/workflows/main.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/workflows/pre-release.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/workflows/publish.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.github/workflows/tag-on-merge.yml +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/.gitignore +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/CONTRIBUTING.md +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/LICENSE +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/MANIFEST.IN +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/Makefile +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/README.md +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/Makefile +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/_static/favicon.ico +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/_static/logo.png +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/_static/style/custom.css +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/_static/style/s4defs-roles.css +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/conf.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/make.bat +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/docs/requirements.txt +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/account/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/account/app.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/admin/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/admin/app.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/admin/headers.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/admin/validation.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/configure/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/configure/actions.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/configure/app.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/devices/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/devices/app.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/devices/validation.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/envs/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/envs/activate.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/envs/app.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/envs/create.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/envs/data_handling.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/exceptions.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/jobs/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/jobs/app.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/jobs/toggle_braket.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/jobs/validation.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/kernels/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/kernels/app.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/pip/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/pip/app.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/pip/hooks.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli/py.typed +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli.egg-info/dependency_links.txt +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli.egg-info/entry_points.txt +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/qbraid_cli.egg-info/top_level.txt +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/setup.cfg +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/account/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/account/test_account_credits.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/admin/test_headers.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/configure/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/configure/test_configure_prompt_for_config.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/configure/test_configure_set.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/configure/test_configure_validate_input.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/conftest.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/devices/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/devices/test_devices_list.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/devices/test_devices_validations.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/envs/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/envs/test_envs_activate.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/envs/test_envs_activate_find_shell_rc.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/envs/test_envs_activate_print_command.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/envs/test_envs_activate_pyenv.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/envs/test_envs_list.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/envs/test_envs_remove.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_disable.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_enable.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_list.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_state.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_toggle_braket_confirm.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_toggle_braket_disable.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_toggle_braket_enable.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_toggle_braket_get_data.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_validate_get_state.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_validate_handle_state.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/jobs/test_jobs_validate_library.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/kernels/__init__.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tests/kernels/test_kernels_list.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tools/bump_version.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tools/create_dev_build.sh +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tools/install_wheel_extras.sh +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tools/split_md.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tools/split_rst.py +0 -0
- {qbraid_cli-0.9.0 → qbraid_cli-0.9.1}/tools/stamp_pre_release.py +0 -0
|
@@ -13,7 +13,7 @@ build:
|
|
|
13
13
|
- python -m pip install -r docs/requirements.txt
|
|
14
14
|
- python -m pip install build
|
|
15
15
|
- python -m build .
|
|
16
|
-
-
|
|
16
|
+
- tools/install_wheel_extras.sh dist --extra envs
|
|
17
17
|
- mkdir -p docs/tree
|
|
18
18
|
- rm -f docs/tree/*.rst
|
|
19
19
|
- typer qbraid_cli.main utils docs --name=qbraid --output=docs/tree/qbraid.md
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qbraid-cli
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: Command Line Interface for interacting with all parts of the qBraid platform.
|
|
5
5
|
Author-email: qBraid Development Team <contact@qbraid.com>
|
|
6
6
|
License: Proprietary
|
|
@@ -29,7 +29,7 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
License-File: LICENSE
|
|
30
30
|
Requires-Dist: typer>=0.12.1
|
|
31
31
|
Requires-Dist: rich>=10.11.0
|
|
32
|
-
Requires-Dist: qbraid-core>=0.1.
|
|
32
|
+
Requires-Dist: qbraid-core>=0.1.30
|
|
33
33
|
Provides-Extra: jobs
|
|
34
34
|
Requires-Dist: amazon-braket-sdk>=1.48.1; extra == "jobs"
|
|
35
35
|
Provides-Extra: envs
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "qbraid-cli"
|
|
7
|
-
version = "0.9.
|
|
7
|
+
version = "0.9.1"
|
|
8
8
|
description = "Command Line Interface for interacting with all parts of the qBraid platform."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "qBraid Development Team", email = "contact@qbraid.com" }]
|
|
@@ -30,7 +30,7 @@ classifiers = [
|
|
|
30
30
|
dependencies = [
|
|
31
31
|
"typer>=0.12.1",
|
|
32
32
|
"rich>=10.11.0",
|
|
33
|
-
"qbraid-core>=0.1.
|
|
33
|
+
"qbraid-core>=0.1.30",
|
|
34
34
|
]
|
|
35
35
|
requires-python = ">= 3.9"
|
|
36
36
|
|
|
@@ -12,5 +12,5 @@ __version__: str
|
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
|
13
13
|
version_tuple: VERSION_TUPLE
|
|
14
14
|
|
|
15
|
-
__version__ = version = '0.1.dev1+
|
|
16
|
-
__version_tuple__ = version_tuple = (0, 1, 'dev1', '
|
|
15
|
+
__version__ = version = '0.1.dev1+gbfaed43'
|
|
16
|
+
__version_tuple__ = version_tuple = (0, 1, 'dev1', 'gbfaed43')
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Copyright (c) 2024, qBraid Development Team
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Module defining commands in the 'qbraid chat' namespace.
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
from enum import Enum
|
|
9
|
+
|
|
10
|
+
import typer
|
|
11
|
+
from rich.console import Console
|
|
12
|
+
from rich.table import Table
|
|
13
|
+
|
|
14
|
+
from qbraid_cli.handlers import handle_error, run_progress_task
|
|
15
|
+
|
|
16
|
+
chat_app = typer.Typer(
|
|
17
|
+
help="Interact with qBraid AI chat service.", pretty_exceptions_show_locals=False
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class ChatFormat(str, Enum):
|
|
22
|
+
"""Format of the response from the chat service."""
|
|
23
|
+
|
|
24
|
+
text = "text" # pylint: disable=invalid-name
|
|
25
|
+
code = "code" # pylint: disable=invalid-name
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@chat_app.command("send")
|
|
29
|
+
def chat_send(
|
|
30
|
+
prompt: str = typer.Argument(..., help="The prompt to send to the chat service."),
|
|
31
|
+
model: str = typer.Option(None, "--model", "-m", help="The model to use for the chat service."),
|
|
32
|
+
response_format: ChatFormat = typer.Option(
|
|
33
|
+
ChatFormat.text, "--format", "-f", help="The format of the response."
|
|
34
|
+
),
|
|
35
|
+
stream: bool = typer.Option(False, "--stream", "-s", help="Stream the response."),
|
|
36
|
+
):
|
|
37
|
+
"""
|
|
38
|
+
Interact with qBraid AI chat service.
|
|
39
|
+
|
|
40
|
+
"""
|
|
41
|
+
# pylint: disable-next=import-outside-toplevel
|
|
42
|
+
from qbraid_core.services.chat import ChatClient, ChatServiceRequestError
|
|
43
|
+
|
|
44
|
+
client = ChatClient()
|
|
45
|
+
|
|
46
|
+
if response_format == ChatFormat.code:
|
|
47
|
+
prompt += " Return only raw code. Do not include any text outside of code blocks."
|
|
48
|
+
|
|
49
|
+
if stream:
|
|
50
|
+
try:
|
|
51
|
+
for chunk in client.chat_stream(prompt, model, response_format):
|
|
52
|
+
print(chunk, end="")
|
|
53
|
+
except ChatServiceRequestError as err:
|
|
54
|
+
handle_error(message=str(err), include_traceback=False)
|
|
55
|
+
else:
|
|
56
|
+
content = run_progress_task(
|
|
57
|
+
client.chat,
|
|
58
|
+
prompt,
|
|
59
|
+
model,
|
|
60
|
+
response_format,
|
|
61
|
+
description="Connecting to chat service...",
|
|
62
|
+
include_error_traceback=False,
|
|
63
|
+
)
|
|
64
|
+
print(content)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
@chat_app.command(name="models")
|
|
68
|
+
def chat_models():
|
|
69
|
+
"""List available chat models."""
|
|
70
|
+
# pylint: disable-next=import-outside-toplevel
|
|
71
|
+
from qbraid_core.services.chat import ChatClient
|
|
72
|
+
|
|
73
|
+
client = ChatClient()
|
|
74
|
+
|
|
75
|
+
models = run_progress_task(
|
|
76
|
+
client.get_models,
|
|
77
|
+
description="Connecting to chat service...",
|
|
78
|
+
include_error_traceback=False,
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
console = Console()
|
|
82
|
+
table = Table(title="Available Chat Models\n", show_lines=True, title_justify="left")
|
|
83
|
+
|
|
84
|
+
table.add_column("Model", style="cyan", no_wrap=True)
|
|
85
|
+
table.add_column("Pricing [not bold](1k tokens ~750 words)", style="magenta")
|
|
86
|
+
table.add_column("Description", style="green")
|
|
87
|
+
|
|
88
|
+
for model in models:
|
|
89
|
+
table.add_row(
|
|
90
|
+
model["model"],
|
|
91
|
+
f"{model['pricing']['input']} credits / 1M input tokens\n"
|
|
92
|
+
f"{model['pricing']['output']} credits / 1M output tokens",
|
|
93
|
+
model["description"],
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
console.print(table)
|
|
@@ -15,7 +15,7 @@ from typing import Any, Callable, Optional, Union
|
|
|
15
15
|
|
|
16
16
|
import typer
|
|
17
17
|
from rich.console import Console
|
|
18
|
-
from rich.progress import Progress, SpinnerColumn, TextColumn
|
|
18
|
+
from rich.progress import Progress, SpinnerColumn, TaskID, TextColumn
|
|
19
19
|
|
|
20
20
|
from .exceptions import DEFAULT_ERROR_MESSAGE, QbraidException
|
|
21
21
|
|
|
@@ -25,6 +25,14 @@ def _should_display_progress():
|
|
|
25
25
|
return os.getenv("QBRAID_CLI_SHOW_PROGRESS", "true").lower() in ["true", "1", "t", "y", "yes"]
|
|
26
26
|
|
|
27
27
|
|
|
28
|
+
def _update_completed_task(
|
|
29
|
+
progress: Progress, task_id: TaskID, success: bool = True, sleep_time: float = 0.15
|
|
30
|
+
):
|
|
31
|
+
status = "Done" if success else "Failed"
|
|
32
|
+
progress.update(task_id, completed=100, status=status)
|
|
33
|
+
sleep(sleep_time)
|
|
34
|
+
|
|
35
|
+
|
|
28
36
|
def handle_error(
|
|
29
37
|
error_type: Optional[str] = None, message: Optional[str] = None, include_traceback: bool = True
|
|
30
38
|
) -> None:
|
|
@@ -86,6 +94,7 @@ def run_progress_task(
|
|
|
86
94
|
*args,
|
|
87
95
|
description: Optional[str] = None,
|
|
88
96
|
error_message: Optional[str] = None,
|
|
97
|
+
include_error_traceback: bool = True,
|
|
89
98
|
**kwargs,
|
|
90
99
|
) -> Any:
|
|
91
100
|
"""
|
|
@@ -103,6 +112,8 @@ def run_progress_task(
|
|
|
103
112
|
error_message (optional, str): Custom error message to display if the operation.
|
|
104
113
|
fails. Defaults to None, in which case the
|
|
105
114
|
exception's message is used.
|
|
115
|
+
include_error_traceback (bool): Whether to include the traceback in the error message.
|
|
116
|
+
Defaults to True.
|
|
106
117
|
**kwargs: Arbitrary keyword arguments for the operation.
|
|
107
118
|
|
|
108
119
|
Returns:
|
|
@@ -116,7 +127,7 @@ def run_progress_task(
|
|
|
116
127
|
return operation(*args, **kwargs)
|
|
117
128
|
except Exception as err: # pylint: disable=broad-exception-caught
|
|
118
129
|
custom_message = error_message if error_message else str(err)
|
|
119
|
-
return handle_error(message=custom_message)
|
|
130
|
+
return handle_error(message=custom_message, include_traceback=include_error_traceback)
|
|
120
131
|
|
|
121
132
|
console = Console()
|
|
122
133
|
with Progress(
|
|
@@ -129,13 +140,12 @@ def run_progress_task(
|
|
|
129
140
|
task = progress.add_task(description, status="In Progress", total=None)
|
|
130
141
|
try:
|
|
131
142
|
result = operation(*args, **kwargs)
|
|
132
|
-
progress
|
|
133
|
-
sleep(0.15)
|
|
143
|
+
_update_completed_task(progress, task, success=True)
|
|
134
144
|
return result
|
|
135
145
|
except Exception as err: # pylint: disable=broad-exception-caught
|
|
136
|
-
progress
|
|
146
|
+
_update_completed_task(progress, task, success=False)
|
|
137
147
|
custom_message = error_message if error_message else str(err)
|
|
138
|
-
return handle_error(message=custom_message)
|
|
148
|
+
return handle_error(message=custom_message, include_traceback=include_error_traceback)
|
|
139
149
|
finally:
|
|
140
150
|
progress.remove_task(task)
|
|
141
151
|
|
|
@@ -11,6 +11,7 @@ import typer
|
|
|
11
11
|
|
|
12
12
|
from qbraid_cli.account.app import account_app
|
|
13
13
|
from qbraid_cli.admin.app import admin_app
|
|
14
|
+
from qbraid_cli.chat.app import chat_app
|
|
14
15
|
from qbraid_cli.configure.app import configure_app
|
|
15
16
|
from qbraid_cli.devices.app import devices_app
|
|
16
17
|
from qbraid_cli.jobs.app import jobs_app
|
|
@@ -27,6 +28,7 @@ except ImportError:
|
|
|
27
28
|
app = typer.Typer(context_settings={"help_option_names": ["-h", "--help"]})
|
|
28
29
|
|
|
29
30
|
app.add_typer(admin_app, name="admin")
|
|
31
|
+
app.add_typer(chat_app, name="chat")
|
|
30
32
|
app.add_typer(configure_app, name="configure")
|
|
31
33
|
app.add_typer(account_app, name="account")
|
|
32
34
|
app.add_typer(devices_app, name="devices")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qbraid-cli
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: Command Line Interface for interacting with all parts of the qBraid platform.
|
|
5
5
|
Author-email: qBraid Development Team <contact@qbraid.com>
|
|
6
6
|
License: Proprietary
|
|
@@ -29,7 +29,7 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
License-File: LICENSE
|
|
30
30
|
Requires-Dist: typer>=0.12.1
|
|
31
31
|
Requires-Dist: rich>=10.11.0
|
|
32
|
-
Requires-Dist: qbraid-core>=0.1.
|
|
32
|
+
Requires-Dist: qbraid-core>=0.1.30
|
|
33
33
|
Provides-Extra: jobs
|
|
34
34
|
Requires-Dist: amazon-braket-sdk>=1.48.1; extra == "jobs"
|
|
35
35
|
Provides-Extra: envs
|
|
@@ -45,6 +45,8 @@ qbraid_cli/admin/__init__.py
|
|
|
45
45
|
qbraid_cli/admin/app.py
|
|
46
46
|
qbraid_cli/admin/headers.py
|
|
47
47
|
qbraid_cli/admin/validation.py
|
|
48
|
+
qbraid_cli/chat/__init__.py
|
|
49
|
+
qbraid_cli/chat/app.py
|
|
48
50
|
qbraid_cli/configure/__init__.py
|
|
49
51
|
qbraid_cli/configure/actions.py
|
|
50
52
|
qbraid_cli/configure/app.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|