qbraid-cli 0.12.0a6__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.0a6 → qbraid_cli-0.13.0}/LICENSE +1 -1
- {qbraid_cli-0.12.0a6/qbraid_cli.egg-info → qbraid_cli-0.13.0}/PKG-INFO +20 -56
- qbraid_cli-0.13.0/README.md +118 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/pyproject.toml +14 -15
- qbraid_cli-0.13.0/qbraid_cli/_build_info.py +19 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/_version.py +7 -2
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/account/__init__.py +1 -1
- qbraid_cli-0.13.0/qbraid_cli/account/app.py +40 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/admin/__init__.py +1 -1
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/admin/app.py +5 -9
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/admin/headers.py +6 -5
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/admin/validation.py +1 -1
- 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.0a6 → qbraid_cli-0.13.0}/qbraid_cli/configure/__init__.py +1 -1
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/configure/actions.py +5 -18
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/configure/app.py +10 -92
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/devices/__init__.py +1 -1
- qbraid_cli-0.13.0/qbraid_cli/devices/app.py +165 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/devices/validation.py +1 -10
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/envs/__init__.py +1 -1
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/envs/activate.py +23 -18
- qbraid_cli-0.13.0/qbraid_cli/envs/app.py +1823 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/envs/create.py +22 -3
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/envs/data_handling.py +8 -6
- 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.0a6 → qbraid_cli-0.13.0}/qbraid_cli/exceptions.py +1 -1
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/handlers.py +2 -4
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/jobs/__init__.py +1 -1
- qbraid_cli-0.13.0/qbraid_cli/jobs/app.py +182 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/kernels/__init__.py +1 -1
- 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.0a6 → qbraid_cli-0.13.0}/qbraid_cli/main.py +24 -38
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/pip/__init__.py +1 -1
- qbraid_cli-0.13.0/qbraid_cli/pip/app.py +79 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/pip/hooks.py +1 -1
- 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.0a6 → qbraid_cli-0.13.0/qbraid_cli.egg-info}/PKG-INFO +20 -56
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli.egg-info/SOURCES.txt +21 -10
- 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.0a6 → qbraid_cli-0.13.0}/tests/test_version.py +1 -1
- qbraid_cli-0.12.0a6/README.md +0 -152
- qbraid_cli-0.12.0a6/qbraid_cli/account/app.py +0 -67
- qbraid_cli-0.12.0a6/qbraid_cli/chat/__init__.py +0 -11
- qbraid_cli-0.12.0a6/qbraid_cli/chat/app.py +0 -76
- qbraid_cli-0.12.0a6/qbraid_cli/configure/claude_config.py +0 -215
- qbraid_cli-0.12.0a6/qbraid_cli/devices/app.py +0 -117
- qbraid_cli-0.12.0a6/qbraid_cli/envs/app.py +0 -1557
- qbraid_cli-0.12.0a6/qbraid_cli/files/__init__.py +0 -11
- qbraid_cli-0.12.0a6/qbraid_cli/files/app.py +0 -139
- qbraid_cli-0.12.0a6/qbraid_cli/jobs/app.py +0 -193
- qbraid_cli-0.12.0a6/qbraid_cli/jobs/toggle_braket.py +0 -201
- qbraid_cli-0.12.0a6/qbraid_cli/jobs/validation.py +0 -94
- qbraid_cli-0.12.0a6/qbraid_cli/kernels/app.py +0 -99
- qbraid_cli-0.12.0a6/qbraid_cli/mcp/__init__.py +0 -10
- qbraid_cli-0.12.0a6/qbraid_cli/mcp/app.py +0 -126
- qbraid_cli-0.12.0a6/qbraid_cli/mcp/serve.py +0 -321
- qbraid_cli-0.12.0a6/qbraid_cli/pip/app.py +0 -50
- qbraid_cli-0.12.0a6/qbraid_cli.egg-info/requires.txt +0 -20
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/__init__.py +0 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli/py.typed +0 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli.egg-info/dependency_links.txt +0 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli.egg-info/entry_points.txt +0 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/qbraid_cli.egg-info/top_level.txt +0 -0
- {qbraid_cli-0.12.0a6 → qbraid_cli-0.13.0}/setup.cfg +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
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
|
|
7
|
-
Project-URL: Homepage, https://docs.qbraid.com/cli/user-guide/overview
|
|
8
|
-
Project-URL: Documentation, https://docs.qbraid.com/cli/api-reference/qbraid
|
|
7
|
+
Project-URL: Homepage, https://docs.qbraid.com/v2/cli/user-guide/overview
|
|
8
|
+
Project-URL: Documentation, https://docs.qbraid.com/v2/cli/api-reference/qbraid
|
|
9
9
|
Project-URL: Bug Tracker, https://github.com/qBraid/community/issues
|
|
10
10
|
Project-URL: Discord, https://discord.gg/KugF6Cnncm
|
|
11
11
|
Keywords: qbraid,cli,quantum,cloud
|
|
@@ -18,25 +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:
|
|
34
|
-
|
|
35
|
-
|
|
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"
|
|
36
36
|
Provides-Extra: envs
|
|
37
|
-
Requires-Dist: qbraid-core[environments]>=0.
|
|
38
|
-
Provides-Extra: mcp
|
|
39
|
-
Requires-Dist: qbraid-core[mcp]>=0.2.0a0; extra == "mcp"
|
|
37
|
+
Requires-Dist: qbraid-core[environments]>=0.3.0; extra == "envs"
|
|
40
38
|
Provides-Extra: dev
|
|
41
39
|
Requires-Dist: isort; extra == "dev"
|
|
42
40
|
Requires-Dist: black; extra == "dev"
|
|
@@ -47,20 +45,16 @@ Dynamic: license-file
|
|
|
47
45
|
|
|
48
46
|
<img width="full" alt="qbraid_cli" src="https://qbraid-static.s3.amazonaws.com/logos/qbraid-cli-banner.png">
|
|
49
47
|
|
|
50
|
-
[](https://docs.qbraid.com/cli/user-guide/overview)
|
|
48
|
+
[](https://docs.qbraid.com/v2/cli/user-guide/overview)
|
|
51
49
|
[](https://pypi.org/project/qbraid-cli/)
|
|
52
50
|
[](https://pypi.org/project/qbraid-cli/)
|
|
53
|
-
[](https://pepy.tech/project/qbraid-cli)
|
|
54
51
|
[](https://github.com/qBraid/community/issues)
|
|
55
|
-
[](https://stackoverflow.com/questions/tagged/qbraid)
|
|
56
52
|
|
|
57
53
|
Command Line Interface for interacting with all parts of the qBraid platform.
|
|
58
54
|
|
|
59
|
-
The **qBraid CLI** is a versatile command-line interface tool designed for seamless interaction with qBraid cloud services and quantum software management tools. Initially exclusive to the [qBraid Lab](https://docs.qbraid.com/lab/user-guide/overview) platform, the CLI now supports local installations as well. This enhancement broadens access to features like [qBraid Quantum Jobs](https://docs.qbraid.com/cli/user-guide/quantum-jobs), enabling direct, pre-configured access to QPUs from IonQ, Oxford Quantum Circuits, QuEra, Rigetti, and IQM, as well as on-demand simulators from qBraid, AWS, IonQ, QuEra, and NEC. See [pricing](https://docs.qbraid.com/home/pricing) for more.
|
|
60
|
-
|
|
61
55
|
*Resources*:
|
|
62
|
-
- [User Guide](https://docs.qbraid.com/cli/user-guide/overview)
|
|
63
|
-
- [API Reference](https://docs.qbraid.com/cli/api-reference/qbraid)
|
|
56
|
+
- [User Guide](https://docs.qbraid.com/v2/cli/user-guide/overview)
|
|
57
|
+
- [API Reference](https://docs.qbraid.com/v2/cli/api-reference/qbraid)
|
|
64
58
|
|
|
65
59
|
## Getting Started
|
|
66
60
|
|
|
@@ -69,7 +63,7 @@ The qBraid-CLI comes pre-installed and pre-configured in qBraid Lab:
|
|
|
69
63
|
- [Launch qBraid Lab →](https://lab.qbraid.com/)
|
|
70
64
|
- [Make an account →](https://account.qbraid.com/)
|
|
71
65
|
|
|
72
|
-
For help, see qBraid Lab User Guide: [Getting Started](https://docs.qbraid.com/lab/user-guide/getting-started).
|
|
66
|
+
For help, see qBraid Lab User Guide: [Getting Started](https://docs.qbraid.com/v2/lab/user-guide/getting-started).
|
|
73
67
|
|
|
74
68
|
You can also install the qBraid-CLI from PyPI with:
|
|
75
69
|
|
|
@@ -77,7 +71,7 @@ You can also install the qBraid-CLI from PyPI with:
|
|
|
77
71
|
pip install qbraid-cli
|
|
78
72
|
```
|
|
79
73
|
|
|
80
|
-
To manage qBraid [environments](https://docs.qbraid.com/lab/user-guide/environments) using the CLI, you must also install the `envs` extra:
|
|
74
|
+
To manage qBraid [environments](https://docs.qbraid.com/v2/lab/user-guide/environments) using the CLI, you must also install the `envs` extra:
|
|
81
75
|
|
|
82
76
|
```bash
|
|
83
77
|
pip install 'qbraid-cli[envs]'
|
|
@@ -91,13 +85,13 @@ After installation, you must configure your account credentials to use the CLI l
|
|
|
91
85
|
[account.qbraid.com](https://account.qbraid.com/)
|
|
92
86
|
2. Copy your API Key token from the left side of
|
|
93
87
|
your [account page](https://account.qbraid.com/):
|
|
94
|
-
3. Save your API key from step 2 in local [configuration file](https://docs.qbraid.com/cli/user-guide/config-files) `~/.qbraid/qbraidrc` using:
|
|
88
|
+
3. Save your API key from step 2 in local [configuration file](https://docs.qbraid.com/v2/cli/user-guide/config-files) `~/.qbraid/qbraidrc` using:
|
|
95
89
|
|
|
96
90
|
```bash
|
|
97
91
|
$ qbraid configure
|
|
98
92
|
```
|
|
99
93
|
|
|
100
|
-
For more on API keys, see [documentation](https://docs.qbraid.com/home/account#api-keys).
|
|
94
|
+
For more on API keys, see [documentation](https://docs.qbraid.com/v2/home/account#api-keys).
|
|
101
95
|
|
|
102
96
|
## Basic Commands
|
|
103
97
|
|
|
@@ -119,7 +113,7 @@ $ qbraid
|
|
|
119
113
|
|
|
120
114
|
- Use 'qbraid --version' to see the current version.
|
|
121
115
|
|
|
122
|
-
Reference Docs: https://docs.qbraid.com/cli/api-reference/qbraid
|
|
116
|
+
Reference Docs: https://docs.qbraid.com/v2/cli/api-reference/qbraid
|
|
123
117
|
```
|
|
124
118
|
|
|
125
119
|
A qBraid CLI command has the following structure:
|
|
@@ -142,36 +136,6 @@ $ qbraid <command> --help
|
|
|
142
136
|
$ qbraid <command> <subcommand> --help
|
|
143
137
|
```
|
|
144
138
|
|
|
145
|
-
For example:
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
$ qbraid --help
|
|
149
|
-
|
|
150
|
-
Usage: qbraid [OPTIONS] COMMAND [ARGS]...
|
|
151
|
-
|
|
152
|
-
The qBraid CLI.
|
|
153
|
-
|
|
154
|
-
Options
|
|
155
|
-
--version Show the version and exit.
|
|
156
|
-
--install-completion Install completion for the current shell.
|
|
157
|
-
--show-completion Show completion for the current shell, to copy it or customize the installation.
|
|
158
|
-
--help Show this message and exit.
|
|
159
|
-
|
|
160
|
-
Commands
|
|
161
|
-
account Manage qBraid account
|
|
162
|
-
admin CI/CD commands for qBraid maintainers.
|
|
163
|
-
configure Configure qBraid CLI options.
|
|
164
|
-
account Manage qBraid account.
|
|
165
|
-
chat Interact with qBraid AI chat service.
|
|
166
|
-
devices Manage qBraid quantum devices.
|
|
167
|
-
envs Manage qBraid environments.
|
|
168
|
-
files Manage qBraid cloud storage files.
|
|
169
|
-
jobs Manage qBraid quantum jobs.
|
|
170
|
-
kernels Manage qBraid kernels.
|
|
171
|
-
mcp MCP (Model Context Protocol) aggregator commands.
|
|
172
|
-
pip Run pip command in active qBraid environment.
|
|
173
|
-
```
|
|
174
|
-
|
|
175
139
|
To get the version of the qBraid CLI:
|
|
176
140
|
|
|
177
141
|
```bash
|
|
@@ -180,7 +144,7 @@ $ qbraid --version
|
|
|
180
144
|
|
|
181
145
|
## Magic Commands
|
|
182
146
|
|
|
183
|
-
You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/lab/user-guide/notebooks) using IPython [magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html). First, configure the qBraid magic commands extension using:
|
|
147
|
+
You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/v2/lab/user-guide/notebooks) using IPython [magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html). First, configure the qBraid magic commands extension using:
|
|
184
148
|
|
|
185
149
|
```bash
|
|
186
150
|
$ qbraid configure magic
|
|
@@ -195,5 +159,5 @@ In [1]: %load_ext qbraid_magic
|
|
|
195
159
|
Now you can continue to use the qBraid-CLI as normal from within your Jupyter notebook using the magic ``%`` operator, e.g.
|
|
196
160
|
|
|
197
161
|
```python
|
|
198
|
-
In [2]: %qbraid
|
|
162
|
+
In [2]: %qbraid jobs list
|
|
199
163
|
```
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<img width="full" alt="qbraid_cli" src="https://qbraid-static.s3.amazonaws.com/logos/qbraid-cli-banner.png">
|
|
2
|
+
|
|
3
|
+
[](https://docs.qbraid.com/v2/cli/user-guide/overview)
|
|
4
|
+
[](https://pypi.org/project/qbraid-cli/)
|
|
5
|
+
[](https://pypi.org/project/qbraid-cli/)
|
|
6
|
+
[](https://github.com/qBraid/community/issues)
|
|
7
|
+
|
|
8
|
+
Command Line Interface for interacting with all parts of the qBraid platform.
|
|
9
|
+
|
|
10
|
+
*Resources*:
|
|
11
|
+
- [User Guide](https://docs.qbraid.com/v2/cli/user-guide/overview)
|
|
12
|
+
- [API Reference](https://docs.qbraid.com/v2/cli/api-reference/qbraid)
|
|
13
|
+
|
|
14
|
+
## Getting Started
|
|
15
|
+
|
|
16
|
+
The qBraid-CLI comes pre-installed and pre-configured in qBraid Lab:
|
|
17
|
+
|
|
18
|
+
- [Launch qBraid Lab →](https://lab.qbraid.com/)
|
|
19
|
+
- [Make an account →](https://account.qbraid.com/)
|
|
20
|
+
|
|
21
|
+
For help, see qBraid Lab User Guide: [Getting Started](https://docs.qbraid.com/v2/lab/user-guide/getting-started).
|
|
22
|
+
|
|
23
|
+
You can also install the qBraid-CLI from PyPI with:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pip install qbraid-cli
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
To manage qBraid [environments](https://docs.qbraid.com/v2/lab/user-guide/environments) using the CLI, you must also install the `envs` extra:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pip install 'qbraid-cli[envs]'
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Local configuration
|
|
36
|
+
|
|
37
|
+
After installation, you must configure your account credentials to use the CLI locally:
|
|
38
|
+
|
|
39
|
+
1. Create a qBraid account or log in to your existing account by visiting
|
|
40
|
+
[account.qbraid.com](https://account.qbraid.com/)
|
|
41
|
+
2. Copy your API Key token from the left side of
|
|
42
|
+
your [account page](https://account.qbraid.com/):
|
|
43
|
+
3. Save your API key from step 2 in local [configuration file](https://docs.qbraid.com/v2/cli/user-guide/config-files) `~/.qbraid/qbraidrc` using:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
$ qbraid configure
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
For more on API keys, see [documentation](https://docs.qbraid.com/v2/home/account#api-keys).
|
|
50
|
+
|
|
51
|
+
## Basic Commands
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
$ qbraid
|
|
55
|
+
----------------------------------
|
|
56
|
+
* Welcome to the qBraid CLI! *
|
|
57
|
+
----------------------------------
|
|
58
|
+
|
|
59
|
+
____ _ _
|
|
60
|
+
__ _| __ ) _ __ __ _(_) __| |
|
|
61
|
+
/ _` | _ \| '__/ _` | |/ _` |
|
|
62
|
+
| (_| | |_) | | | (_| | | (_| |
|
|
63
|
+
\__,_|____/|_| \__,_|_|\__,_|
|
|
64
|
+
|_|
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
- Use 'qbraid --help' to see available commands.
|
|
68
|
+
|
|
69
|
+
- Use 'qbraid --version' to see the current version.
|
|
70
|
+
|
|
71
|
+
Reference Docs: https://docs.qbraid.com/v2/cli/api-reference/qbraid
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
A qBraid CLI command has the following structure:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
$ qbraid <command> <subcommand> [options and parameters]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
For example, to list installed environments, the command would be:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
$ qbraid envs list
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
To view help documentation, use one of the following:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
$ qbraid --help
|
|
90
|
+
$ qbraid <command> --help
|
|
91
|
+
$ qbraid <command> <subcommand> --help
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
To get the version of the qBraid CLI:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
$ qbraid --version
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Magic Commands
|
|
101
|
+
|
|
102
|
+
You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/v2/lab/user-guide/notebooks) using IPython [magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html). First, configure the qBraid magic commands extension using:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
$ qbraid configure magic
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
The above command can also be executed from within a Jupyter notebook using the ``!`` operator. Then, from within a notebook cell, load the qBraid magic IPython extension using:
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
In [1]: %load_ext qbraid_magic
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Now you can continue to use the qBraid-CLI as normal from within your Jupyter notebook using the magic ``%`` operator, e.g.
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
In [2]: %qbraid jobs list
|
|
118
|
+
```
|
|
@@ -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,29 +30,29 @@ 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
|
-
Homepage = "https://docs.qbraid.com/cli/user-guide/overview"
|
|
41
|
-
Documentation = "https://docs.qbraid.com/cli/api-reference/qbraid"
|
|
40
|
+
Homepage = "https://docs.qbraid.com/v2/cli/user-guide/overview"
|
|
41
|
+
Documentation = "https://docs.qbraid.com/v2/cli/api-reference/qbraid"
|
|
42
42
|
"Bug Tracker" = "https://github.com/qBraid/community/issues"
|
|
43
43
|
Discord = "https://discord.gg/KugF6Cnncm"
|
|
44
44
|
|
|
45
45
|
[project.optional-dependencies]
|
|
46
|
-
|
|
47
|
-
envs = ["qbraid-core[environments]>=0.
|
|
48
|
-
mcp = ["qbraid-core[mcp]>=0.2.0a0"]
|
|
46
|
+
compute = ["qbraid-core[compute]>=0.3.0"]
|
|
47
|
+
envs = ["qbraid-core[environments]>=0.3.0"]
|
|
49
48
|
dev = ["isort", "black", "pytest", "pytest-cov", "pytest-asyncio"]
|
|
50
49
|
|
|
51
50
|
[project.scripts]
|
|
52
51
|
qbraid = "qbraid_cli.main:app"
|
|
53
52
|
|
|
54
53
|
[tool.black]
|
|
55
|
-
line-length =
|
|
56
|
-
target-version = ["
|
|
54
|
+
line-length = 110
|
|
55
|
+
target-version = ["py310", "py311", "py312", "py313"]
|
|
57
56
|
|
|
58
57
|
[tool.isort]
|
|
59
58
|
profile = "black"
|
|
@@ -61,11 +60,11 @@ multi_line_output = 3
|
|
|
61
60
|
include_trailing_comma = true
|
|
62
61
|
force_grid_wrap = 0
|
|
63
62
|
use_parentheses = true
|
|
64
|
-
line_length =
|
|
63
|
+
line_length = 110
|
|
65
64
|
|
|
66
65
|
[tool.pylint.'MESSAGES CONTROL']
|
|
67
|
-
max-line-length =
|
|
68
|
-
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"
|
|
69
68
|
|
|
70
69
|
[tool.pylint.MASTER]
|
|
71
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
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2026, qBraid Development Team
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
"""
|
|
@@ -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"]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Copyright (c) 2026, qBraid Development Team
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Module defining commands in the 'qbraid user' namespace.
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import rich
|
|
10
|
+
import typer
|
|
11
|
+
|
|
12
|
+
from qbraid_cli.handlers import run_progress_task
|
|
13
|
+
|
|
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
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@account_app.command(name="credits")
|
|
21
|
+
def account_credits():
|
|
22
|
+
"""Get number of qBraid credits remaining."""
|
|
23
|
+
|
|
24
|
+
def get_credits() -> float:
|
|
25
|
+
from qbraid_core.client import QbraidClientV1
|
|
26
|
+
|
|
27
|
+
client = QbraidClientV1()
|
|
28
|
+
return client.user_credits_value()
|
|
29
|
+
|
|
30
|
+
qbraid_credits: float = run_progress_task(get_credits)
|
|
31
|
+
typer.secho(
|
|
32
|
+
f"{typer.style('qBraid credits remaining:')} "
|
|
33
|
+
f"{typer.style(f'{qbraid_credits:.4f}', fg=typer.colors.MAGENTA, bold=True)}",
|
|
34
|
+
nl=True, # Ensure a newline after output (default is True)
|
|
35
|
+
)
|
|
36
|
+
rich.print("\nFor more information, visit: https://docs.qbraid.com/v2/home/pricing#credits")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if __name__ == "__main__":
|
|
40
|
+
account_app()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2026, qBraid Development Team
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
"""
|
|
@@ -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,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2026, qBraid Development Team
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# pylint: disable=too-many-branches,too-many-statements
|
|
@@ -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] 😴")
|