qbraid-cli 0.12.1__tar.gz → 0.13.0__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.
- {qbraid_cli-0.12.1/qbraid_cli.egg-info → qbraid_cli-0.13.0}/PKG-INFO +8 -36
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/README.md +0 -28
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/pyproject.toml +12 -12
- qbraid_cli-0.13.0/qbraid_cli/_build_info.py +19 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/_version.py +6 -1
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/account/app.py +4 -1
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/admin/app.py +4 -8
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/admin/headers.py +5 -4
- qbraid_cli-0.13.0/qbraid_cli/agents/__init__.py +8 -0
- qbraid_cli-0.13.0/qbraid_cli/agents/app.py +2263 -0
- qbraid_cli-0.13.0/qbraid_cli/compute/__init__.py +8 -0
- qbraid_cli-0.13.0/qbraid_cli/compute/app.py +415 -0
- qbraid_cli-0.13.0/qbraid_cli/compute/profiles.py +373 -0
- qbraid_cli-0.13.0/qbraid_cli/compute/server.py +343 -0
- qbraid_cli-0.13.0/qbraid_cli/compute/ssh.py +390 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/configure/actions.py +2 -3
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/configure/app.py +9 -91
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/devices/app.py +17 -5
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/envs/activate.py +15 -8
- qbraid_cli-0.13.0/qbraid_cli/envs/app.py +1823 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/envs/create.py +20 -2
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/envs/data_handling.py +7 -5
- qbraid_cli-0.13.0/qbraid_cli/envs/groups.py +285 -0
- qbraid_cli-0.13.0/qbraid_cli/envs/publish.py +355 -0
- qbraid_cli-0.13.0/qbraid_cli/envs/registry.py +198 -0
- qbraid_cli-0.13.0/qbraid_cli/envs/share.py +236 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/handlers.py +1 -3
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/jobs/app.py +31 -18
- qbraid_cli-0.13.0/qbraid_cli/kernels/app.py +363 -0
- qbraid_cli-0.13.0/qbraid_cli/lab/__init__.py +11 -0
- qbraid_cli-0.13.0/qbraid_cli/lab/app.py +48 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/main.py +22 -3
- qbraid_cli-0.13.0/qbraid_cli/pip/app.py +79 -0
- qbraid_cli-0.13.0/qbraid_cli/projects/__init__.py +11 -0
- qbraid_cli-0.13.0/qbraid_cli/projects/app.py +194 -0
- qbraid_cli-0.13.0/qbraid_cli/skills/__init__.py +11 -0
- qbraid_cli-0.13.0/qbraid_cli/skills/app.py +885 -0
- qbraid_cli-0.13.0/qbraid_cli/troubleshoot/__init__.py +8 -0
- qbraid_cli-0.13.0/qbraid_cli/troubleshoot/app.py +213 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0/qbraid_cli.egg-info}/PKG-INFO +8 -36
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli.egg-info/SOURCES.txt +21 -4
- qbraid_cli-0.13.0/qbraid_cli.egg-info/requires.txt +18 -0
- qbraid_cli-0.13.0/tests/test_cli_e2e.py +1176 -0
- qbraid_cli-0.12.1/qbraid_cli/configure/claude_config.py +0 -215
- qbraid_cli-0.12.1/qbraid_cli/envs/app.py +0 -1558
- qbraid_cli-0.12.1/qbraid_cli/kernels/app.py +0 -99
- qbraid_cli-0.12.1/qbraid_cli/mcp/__init__.py +0 -11
- qbraid_cli-0.12.1/qbraid_cli/mcp/app.py +0 -127
- qbraid_cli-0.12.1/qbraid_cli/mcp/serve.py +0 -322
- qbraid_cli-0.12.1/qbraid_cli/pip/app.py +0 -50
- qbraid_cli-0.12.1/qbraid_cli.egg-info/requires.txt +0 -17
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/LICENSE +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/account/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/admin/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/admin/validation.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/configure/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/devices/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/devices/validation.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/envs/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/exceptions.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/jobs/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/kernels/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/pip/__init__.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/pip/hooks.py +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli/py.typed +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli.egg-info/dependency_links.txt +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli.egg-info/entry_points.txt +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/qbraid_cli.egg-info/top_level.txt +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/setup.cfg +0 -0
- {qbraid_cli-0.12.1 → qbraid_cli-0.13.0}/tests/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qbraid-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0
|
|
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-Expression: LicenseRef-Proprietary
|
|
@@ -18,23 +18,23 @@ Classifier: Operating System :: POSIX :: Linux
|
|
|
18
18
|
Classifier: Programming Language :: Python
|
|
19
19
|
Classifier: Programming Language :: Python :: 3
|
|
20
20
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.10
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.13
|
|
26
25
|
Classifier: Programming Language :: Python :: 3.14
|
|
27
|
-
Requires-Python: >=3.
|
|
26
|
+
Requires-Python: >=3.10
|
|
28
27
|
Description-Content-Type: text/markdown
|
|
29
28
|
License-File: LICENSE
|
|
30
29
|
Requires-Dist: typer>=0.12.1
|
|
31
30
|
Requires-Dist: rich>=10.11.0
|
|
32
|
-
Requires-Dist: click<=8.
|
|
33
|
-
Requires-Dist:
|
|
31
|
+
Requires-Dist: click<=8.3.3
|
|
32
|
+
Requires-Dist: questionary>=2.0.0
|
|
33
|
+
Requires-Dist: qbraid-core>=0.3.0
|
|
34
|
+
Provides-Extra: compute
|
|
35
|
+
Requires-Dist: qbraid-core[compute]>=0.3.0; extra == "compute"
|
|
34
36
|
Provides-Extra: envs
|
|
35
|
-
Requires-Dist: qbraid-core[environments]>=0.
|
|
36
|
-
Provides-Extra: mcp
|
|
37
|
-
Requires-Dist: qbraid-core[mcp]>=0.2.0; extra == "mcp"
|
|
37
|
+
Requires-Dist: qbraid-core[environments]>=0.3.0; extra == "envs"
|
|
38
38
|
Provides-Extra: dev
|
|
39
39
|
Requires-Dist: isort; extra == "dev"
|
|
40
40
|
Requires-Dist: black; extra == "dev"
|
|
@@ -136,34 +136,6 @@ $ qbraid <command> --help
|
|
|
136
136
|
$ qbraid <command> <subcommand> --help
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
For example:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
$ qbraid --help
|
|
143
|
-
|
|
144
|
-
Usage: qbraid [OPTIONS] COMMAND [ARGS]...
|
|
145
|
-
|
|
146
|
-
The qBraid CLI.
|
|
147
|
-
|
|
148
|
-
Options
|
|
149
|
-
--version Show the version and exit.
|
|
150
|
-
--install-completion Install completion for the current shell.
|
|
151
|
-
--show-completion Show completion for the current shell, to copy it or customize the installation.
|
|
152
|
-
--help Show this message and exit.
|
|
153
|
-
|
|
154
|
-
Commands
|
|
155
|
-
account Manage qBraid account
|
|
156
|
-
admin CI/CD commands for qBraid maintainers.
|
|
157
|
-
configure Configure qBraid CLI options.
|
|
158
|
-
account Manage qBraid account.
|
|
159
|
-
devices Manage qBraid quantum devices.
|
|
160
|
-
envs Manage qBraid environments.
|
|
161
|
-
jobs Manage qBraid quantum jobs.
|
|
162
|
-
kernels Manage qBraid kernels.
|
|
163
|
-
mcp MCP (Model Context Protocol) aggregator commands.
|
|
164
|
-
pip Run pip command in active qBraid environment.
|
|
165
|
-
```
|
|
166
|
-
|
|
167
139
|
To get the version of the qBraid CLI:
|
|
168
140
|
|
|
169
141
|
```bash
|
|
@@ -91,34 +91,6 @@ $ qbraid <command> --help
|
|
|
91
91
|
$ qbraid <command> <subcommand> --help
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
For example:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
$ qbraid --help
|
|
98
|
-
|
|
99
|
-
Usage: qbraid [OPTIONS] COMMAND [ARGS]...
|
|
100
|
-
|
|
101
|
-
The qBraid CLI.
|
|
102
|
-
|
|
103
|
-
Options
|
|
104
|
-
--version Show the version and exit.
|
|
105
|
-
--install-completion Install completion for the current shell.
|
|
106
|
-
--show-completion Show completion for the current shell, to copy it or customize the installation.
|
|
107
|
-
--help Show this message and exit.
|
|
108
|
-
|
|
109
|
-
Commands
|
|
110
|
-
account Manage qBraid account
|
|
111
|
-
admin CI/CD commands for qBraid maintainers.
|
|
112
|
-
configure Configure qBraid CLI options.
|
|
113
|
-
account Manage qBraid account.
|
|
114
|
-
devices Manage qBraid quantum devices.
|
|
115
|
-
envs Manage qBraid environments.
|
|
116
|
-
jobs Manage qBraid quantum jobs.
|
|
117
|
-
kernels Manage qBraid kernels.
|
|
118
|
-
mcp MCP (Model Context Protocol) aggregator commands.
|
|
119
|
-
pip Run pip command in active qBraid environment.
|
|
120
|
-
```
|
|
121
|
-
|
|
122
94
|
To get the version of the qBraid CLI:
|
|
123
95
|
|
|
124
96
|
```bash
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "qbraid-cli"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.13.0"
|
|
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" }]
|
|
@@ -21,7 +21,6 @@ classifiers = [
|
|
|
21
21
|
"Programming Language :: Python",
|
|
22
22
|
"Programming Language :: Python :: 3",
|
|
23
23
|
"Programming Language :: Python :: 3 :: Only",
|
|
24
|
-
"Programming Language :: Python :: 3.9",
|
|
25
24
|
"Programming Language :: Python :: 3.10",
|
|
26
25
|
"Programming Language :: Python :: 3.11",
|
|
27
26
|
"Programming Language :: Python :: 3.12",
|
|
@@ -31,10 +30,11 @@ classifiers = [
|
|
|
31
30
|
dependencies = [
|
|
32
31
|
"typer>=0.12.1",
|
|
33
32
|
"rich>=10.11.0",
|
|
34
|
-
"click<=8.
|
|
35
|
-
"
|
|
33
|
+
"click<=8.3.3",
|
|
34
|
+
"questionary>=2.0.0",
|
|
35
|
+
"qbraid-core>=0.3.0",
|
|
36
36
|
]
|
|
37
|
-
requires-python = ">= 3.
|
|
37
|
+
requires-python = ">= 3.10"
|
|
38
38
|
|
|
39
39
|
[project.urls]
|
|
40
40
|
Homepage = "https://docs.qbraid.com/v2/cli/user-guide/overview"
|
|
@@ -43,16 +43,16 @@ Documentation = "https://docs.qbraid.com/v2/cli/api-reference/qbraid"
|
|
|
43
43
|
Discord = "https://discord.gg/KugF6Cnncm"
|
|
44
44
|
|
|
45
45
|
[project.optional-dependencies]
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
compute = ["qbraid-core[compute]>=0.3.0"]
|
|
47
|
+
envs = ["qbraid-core[environments]>=0.3.0"]
|
|
48
48
|
dev = ["isort", "black", "pytest", "pytest-cov", "pytest-asyncio"]
|
|
49
49
|
|
|
50
50
|
[project.scripts]
|
|
51
51
|
qbraid = "qbraid_cli.main:app"
|
|
52
52
|
|
|
53
53
|
[tool.black]
|
|
54
|
-
line-length =
|
|
55
|
-
target-version = ["
|
|
54
|
+
line-length = 110
|
|
55
|
+
target-version = ["py310", "py311", "py312", "py313"]
|
|
56
56
|
|
|
57
57
|
[tool.isort]
|
|
58
58
|
profile = "black"
|
|
@@ -60,11 +60,11 @@ multi_line_output = 3
|
|
|
60
60
|
include_trailing_comma = true
|
|
61
61
|
force_grid_wrap = 0
|
|
62
62
|
use_parentheses = true
|
|
63
|
-
line_length =
|
|
63
|
+
line_length = 110
|
|
64
64
|
|
|
65
65
|
[tool.pylint.'MESSAGES CONTROL']
|
|
66
|
-
max-line-length =
|
|
67
|
-
disable = "C0415,
|
|
66
|
+
max-line-length = 110
|
|
67
|
+
disable = "C0116,C0302,C0415,E1101,R0801,R0903,R0912,R0913,R0914,R0915,R0917,R1702,W0212,W0511,W0621,W0707,W0718"
|
|
68
68
|
|
|
69
69
|
[tool.pylint.MASTER]
|
|
70
70
|
ignore-paths = [
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Copyright (c) 2025, qBraid Development Team
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Build metadata — auto-generated by tools/build_wheel.py during wheel builds.
|
|
6
|
+
For editable installs, this file contains placeholder values.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
BUILD_INFO = {
|
|
10
|
+
"version": "dev",
|
|
11
|
+
"base_version": "dev",
|
|
12
|
+
"branch": "",
|
|
13
|
+
"commit": "",
|
|
14
|
+
"commit_full": "",
|
|
15
|
+
"commit_message": "",
|
|
16
|
+
"recent_changes": [],
|
|
17
|
+
"build_date": "",
|
|
18
|
+
"dirty": True,
|
|
19
|
+
}
|
|
@@ -15,4 +15,9 @@ except Exception: # pylint: disable=broad-exception-caught # pragma: no cover
|
|
|
15
15
|
|
|
16
16
|
__version_tuple__ = tuple(int(part) if part.isdigit() else part for part in __version__.split("."))
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
try:
|
|
19
|
+
from ._build_info import BUILD_INFO
|
|
20
|
+
except ImportError:
|
|
21
|
+
BUILD_INFO = None # type: ignore[assignment]
|
|
22
|
+
|
|
23
|
+
__all__ = ["__version__", "__version_tuple__", "BUILD_INFO"]
|
|
@@ -11,7 +11,10 @@ import typer
|
|
|
11
11
|
|
|
12
12
|
from qbraid_cli.handlers import run_progress_task
|
|
13
13
|
|
|
14
|
-
account_app = typer.Typer(
|
|
14
|
+
account_app = typer.Typer(
|
|
15
|
+
help="Manage qBraid account.\n\nView account information and check remaining credits.",
|
|
16
|
+
no_args_is_help=True,
|
|
17
|
+
)
|
|
15
18
|
|
|
16
19
|
|
|
17
20
|
@account_app.command(name="credits")
|
|
@@ -25,12 +25,8 @@ def admin_headers(
|
|
|
25
25
|
src_paths: list[str] = typer.Argument(
|
|
26
26
|
..., help="Source file or directory paths to verify.", callback=validate_paths_exist
|
|
27
27
|
),
|
|
28
|
-
header_type: HeaderType = typer.Option(
|
|
29
|
-
|
|
30
|
-
),
|
|
31
|
-
skip_files: list[str] = typer.Option(
|
|
32
|
-
[], "--skip", "-s", help="Files to skip during verification."
|
|
33
|
-
),
|
|
28
|
+
header_type: HeaderType = typer.Option("default", "--type", "-t", help="Type of header to use."),
|
|
29
|
+
skip_files: list[str] = typer.Option([], "--skip", "-s", help="Files to skip during verification."),
|
|
34
30
|
fix: bool = typer.Option(
|
|
35
31
|
False, "--fix", "-f", help="Whether to fix the headers instead of just verifying."
|
|
36
32
|
),
|
|
@@ -38,9 +34,9 @@ def admin_headers(
|
|
|
38
34
|
None, "--project", "-p", help="Name of the project to use in the header."
|
|
39
35
|
),
|
|
40
36
|
):
|
|
41
|
-
"""
|
|
42
|
-
Verifies and optionally fixes qBraid headers in specified files and directories.
|
|
37
|
+
"""Verify and fix qBraid file headers.
|
|
43
38
|
|
|
39
|
+
Verifies and optionally fixes qBraid headers in specified files and directories.
|
|
44
40
|
"""
|
|
45
41
|
check_and_fix_headers(
|
|
46
42
|
src_paths,
|
|
@@ -117,6 +117,7 @@ def get_formatted_header(header_type: HeaderType, project_name: Optional[str] =
|
|
|
117
117
|
if header_type == HeaderType.gpl:
|
|
118
118
|
if project_name is None:
|
|
119
119
|
handle_error("ValueError", "Project name is required for GPL header")
|
|
120
|
+
return header
|
|
120
121
|
|
|
121
122
|
if project_name.split(" ")[0].lower() == "the":
|
|
122
123
|
project_name = project_name[:1].lower() + project_name[1:]
|
|
@@ -131,7 +132,7 @@ def get_formatted_header(header_type: HeaderType, project_name: Optional[str] =
|
|
|
131
132
|
return header
|
|
132
133
|
|
|
133
134
|
|
|
134
|
-
def _get_comment_marker(file_path: str, default:
|
|
135
|
+
def _get_comment_marker(file_path: str, default: str | None = None) -> str | None:
|
|
135
136
|
file_ext = Path(file_path).suffix
|
|
136
137
|
return COMMENT_MARKER.get(file_ext, default)
|
|
137
138
|
|
|
@@ -191,6 +192,8 @@ def check_and_fix_headers(
|
|
|
191
192
|
content = f.read()
|
|
192
193
|
|
|
193
194
|
comment_marker = _get_comment_marker(file_path)
|
|
195
|
+
if comment_marker is None:
|
|
196
|
+
return
|
|
194
197
|
|
|
195
198
|
# This finds the start of the actual content after skipping initial whitespace and comments.
|
|
196
199
|
lines = content.splitlines()
|
|
@@ -246,9 +249,7 @@ def check_and_fix_headers(
|
|
|
246
249
|
checked += 1
|
|
247
250
|
else:
|
|
248
251
|
if not os.path.isfile(item):
|
|
249
|
-
handle_error(
|
|
250
|
-
error_type="FileNotFoundError", message=f"Path '{item}' does not exist."
|
|
251
|
-
)
|
|
252
|
+
handle_error(error_type="FileNotFoundError", message=f"Path '{item}' does not exist.")
|
|
252
253
|
|
|
253
254
|
if checked == 0:
|
|
254
255
|
console.print(f"[bold]No {VALID_EXTS} files present. Nothing to do[/bold] 😴")
|