qbraid-cli 0.8.6__tar.gz → 0.9.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.
Potentially problematic release.
This version of qbraid-cli might be problematic. Click here for more details.
- qbraid_cli-0.9.0/.github/workflows/docs-pr.yml +128 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/workflows/docs.yml +3 -1
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/workflows/format.yml +4 -2
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/workflows/main.yml +4 -1
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/CONTRIBUTING.md +12 -5
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/Makefile +8 -2
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/PKG-INFO +5 -4
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/README.md +1 -1
- qbraid_cli-0.8.6/docs/guide/overview.rst → qbraid_cli-0.9.0/docs/index.rst +19 -5
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/pyproject.toml +5 -4
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/_version.py +2 -2
- qbraid_cli-0.9.0/qbraid_cli/account/__init__.py +11 -0
- qbraid_cli-0.9.0/qbraid_cli/account/app.py +65 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/admin/headers.py +1 -1
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/devices/app.py +1 -1
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/envs/app.py +3 -3
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/handlers.py +4 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/jobs/app.py +1 -1
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/jobs/toggle_braket.py +1 -1
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/main.py +18 -9
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli.egg-info/PKG-INFO +5 -4
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli.egg-info/SOURCES.txt +6 -25
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli.egg-info/requires.txt +4 -2
- qbraid_cli-0.9.0/tests/account/test_account_credits.py +88 -0
- qbraid_cli-0.9.0/tests/conftest.py +35 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/devices/test_devices_list.py +4 -16
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_list.py +3 -13
- qbraid_cli-0.8.6/docs/_static/api-key.png +0 -0
- qbraid_cli-0.8.6/docs/_static/cards/jupyter.png +0 -0
- qbraid_cli-0.8.6/docs/_static/cards/python.png +0 -0
- qbraid_cli-0.8.6/docs/_static/cards/terminal.png +0 -0
- qbraid_cli-0.8.6/docs/cli/configure.rst +0 -60
- qbraid_cli-0.8.6/docs/cli/credits.rst +0 -23
- qbraid_cli-0.8.6/docs/cli/devices-list.rst +0 -35
- qbraid_cli-0.8.6/docs/cli/devices.rst +0 -17
- qbraid_cli-0.8.6/docs/cli/envs-activate.rst +0 -36
- qbraid_cli-0.8.6/docs/cli/envs-list.rst +0 -37
- qbraid_cli-0.8.6/docs/cli/envs-uninstall.rst +0 -40
- qbraid_cli-0.8.6/docs/cli/envs.rst +0 -25
- qbraid_cli-0.8.6/docs/cli/jobs-add.rst +0 -49
- qbraid_cli-0.8.6/docs/cli/jobs-disable.rst +0 -36
- qbraid_cli-0.8.6/docs/cli/jobs-enable.rst +0 -35
- qbraid_cli-0.8.6/docs/cli/jobs-list.rst +0 -35
- qbraid_cli-0.8.6/docs/cli/jobs.rst +0 -26
- qbraid_cli-0.8.6/docs/cli/kernels.rst +0 -31
- qbraid_cli-0.8.6/docs/cli/qbraid.rst +0 -68
- qbraid_cli-0.8.6/docs/index.rst +0 -113
- qbraid_cli-0.8.6/qbraid_cli/credits/__init__.py +0 -11
- qbraid_cli-0.8.6/qbraid_cli/credits/app.py +0 -35
- qbraid_cli-0.8.6/ruff.toml +0 -62
- qbraid_cli-0.8.6/tests/credits/test_credits_value.py +0 -43
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.env.example +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/workflows/bump-version.yml +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/workflows/pre-release.yml +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/workflows/publish.yml +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.github/workflows/tag-on-merge.yml +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.gitignore +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/.readthedocs.yml +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/LICENSE +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/MANIFEST.IN +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/docs/Makefile +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/docs/_static/favicon.ico +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/docs/_static/logo.png +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/docs/_static/style/custom.css +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/docs/_static/style/s4defs-roles.css +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/docs/conf.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/docs/make.bat +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/docs/requirements.txt +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/admin/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/admin/app.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/admin/validation.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/configure/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/configure/actions.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/configure/app.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/devices/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/devices/validation.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/envs/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/envs/activate.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/envs/create.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/envs/data_handling.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/exceptions.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/jobs/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/jobs/validation.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/kernels/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/kernels/app.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/pip/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/pip/app.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/pip/hooks.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli/py.typed +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli.egg-info/dependency_links.txt +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli.egg-info/entry_points.txt +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/qbraid_cli.egg-info/top_level.txt +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/setup.cfg +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/__init__.py +0 -0
- {qbraid_cli-0.8.6/tests/configure → qbraid_cli-0.9.0/tests/account}/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/admin/test_headers.py +0 -0
- {qbraid_cli-0.8.6/tests/credits → qbraid_cli-0.9.0/tests/configure}/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/configure/test_configure_prompt_for_config.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/configure/test_configure_set.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/configure/test_configure_validate_input.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/devices/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/devices/test_devices_validations.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/envs/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/envs/test_envs_activate.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/envs/test_envs_activate_find_shell_rc.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/envs/test_envs_activate_print_command.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/envs/test_envs_activate_pyenv.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/envs/test_envs_list.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/envs/test_envs_remove.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_disable.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_enable.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_state.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_toggle_braket_confirm.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_toggle_braket_disable.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_toggle_braket_enable.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_toggle_braket_get_data.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_validate_get_state.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_validate_handle_state.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/jobs/test_jobs_validate_library.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/kernels/__init__.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tests/kernels/test_kernels_list.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tools/bump_version.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tools/create_dev_build.sh +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tools/install_wheel_extras.sh +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tools/split_md.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tools/split_rst.py +0 -0
- {qbraid_cli-0.8.6 → qbraid_cli-0.9.0}/tools/stamp_pre_release.py +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
name: Open Docs PR
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [closed]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
generate-docs-assets:
|
|
9
|
+
if: github.event.pull_request.merged == true && github.event.pull_request.user.login == 'github-actions[bot]' && startsWith(github.event.pull_request.title, 'Bump project version to ')
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
outputs:
|
|
12
|
+
cli_version: ${{ steps.get_version.outputs.version }}
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout code
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
with:
|
|
17
|
+
ref: main
|
|
18
|
+
|
|
19
|
+
- name: Install dependencies
|
|
20
|
+
run: |
|
|
21
|
+
python -m pip install --upgrade pip setuptools build
|
|
22
|
+
python -m pip install -r docs/requirements.txt
|
|
23
|
+
|
|
24
|
+
- name: Build & install package
|
|
25
|
+
run: |
|
|
26
|
+
make build
|
|
27
|
+
tools/install_wheel_extras.sh dist --extra envs
|
|
28
|
+
|
|
29
|
+
- name: Get qbraid-cli version
|
|
30
|
+
id: get_version
|
|
31
|
+
run: |
|
|
32
|
+
VERSION=$(qbraid --version | grep -o '[0-9]*\.[0-9]*\.[0-9]*')
|
|
33
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
34
|
+
|
|
35
|
+
- name: Generate docs assets
|
|
36
|
+
run: |
|
|
37
|
+
make docs-mdx
|
|
38
|
+
|
|
39
|
+
- name: Upload docs assets
|
|
40
|
+
uses: actions/upload-artifact@v4
|
|
41
|
+
with:
|
|
42
|
+
name: api-reference
|
|
43
|
+
path: docs/tree/qbraid*.mdx
|
|
44
|
+
|
|
45
|
+
commit-and-pr:
|
|
46
|
+
if: github.event.pull_request.merged == true && github.event.pull_request.user.login == 'github-actions[bot]' && startsWith(github.event.pull_request.title, 'Bump project version to ')
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
needs: generate-docs-assets
|
|
49
|
+
permissions:
|
|
50
|
+
contents: write
|
|
51
|
+
pull-requests: write
|
|
52
|
+
|
|
53
|
+
steps:
|
|
54
|
+
- name: Download docs assets
|
|
55
|
+
uses: actions/download-artifact@v4
|
|
56
|
+
with:
|
|
57
|
+
name: api-reference
|
|
58
|
+
path: ./api-reference
|
|
59
|
+
|
|
60
|
+
- name: Checkout qBraid/docs repo
|
|
61
|
+
uses: actions/checkout@v4
|
|
62
|
+
with:
|
|
63
|
+
repository: qBraid/docs
|
|
64
|
+
token: ${{ secrets.BOT_TOKEN }}
|
|
65
|
+
path: ./qbraid_docs
|
|
66
|
+
ref: main
|
|
67
|
+
|
|
68
|
+
- name: Create feature branch
|
|
69
|
+
run: |
|
|
70
|
+
cd qbraid_docs
|
|
71
|
+
git checkout -b qbraid-cli-bot/${{ github.run_id }}
|
|
72
|
+
|
|
73
|
+
- name: Update docs in qBraid/docs
|
|
74
|
+
run: |
|
|
75
|
+
rm -f qbraid_docs/cli/api-reference/*
|
|
76
|
+
cp api-reference/qbraid*.mdx qbraid_docs/cli/api-reference/
|
|
77
|
+
|
|
78
|
+
- name: Inject version
|
|
79
|
+
run: |
|
|
80
|
+
VERSION=${{ needs.generate-docs-assets.outputs.cli_version }}
|
|
81
|
+
sed -i "6iVersion: [$VERSION](https://pypi.org/project/qbraid-cli/$VERSION)\n" qbraid_docs/cli/api-reference/qbraid.mdx
|
|
82
|
+
|
|
83
|
+
- name: Set up Node.js
|
|
84
|
+
uses: actions/setup-node@v4
|
|
85
|
+
with:
|
|
86
|
+
node-version: '22'
|
|
87
|
+
|
|
88
|
+
- name: Install dependencies
|
|
89
|
+
run: |
|
|
90
|
+
cd qbraid_docs
|
|
91
|
+
npm install
|
|
92
|
+
|
|
93
|
+
- name: Run prettier fixes
|
|
94
|
+
run: |
|
|
95
|
+
cd qbraid_docs
|
|
96
|
+
npx prettier --write cli/api-reference/qbraid*.mdx
|
|
97
|
+
|
|
98
|
+
- name: Setup Git config
|
|
99
|
+
run: |
|
|
100
|
+
git config --global user.name 'qbraidTeam'
|
|
101
|
+
git config --global user.email 'qbraid.team@qbraid.com'
|
|
102
|
+
|
|
103
|
+
- name: Commit and push changes
|
|
104
|
+
id: commit_and_push
|
|
105
|
+
run: |
|
|
106
|
+
cd qbraid_docs
|
|
107
|
+
git add cli/api-reference/
|
|
108
|
+
git commit -m "qBraid-CLI API reference docs update for version $VERSION"
|
|
109
|
+
git push origin qbraid-cli-bot/${{ github.run_id }}
|
|
110
|
+
|
|
111
|
+
- name: Create Pull Request
|
|
112
|
+
id: create_pr
|
|
113
|
+
run: |
|
|
114
|
+
cd qbraid_docs
|
|
115
|
+
VERSION=${{ needs.generate-docs-assets.outputs.cli_version }}
|
|
116
|
+
PR_URL=$(gh pr create -B main -H qbraid-cli-bot/${{ github.run_id }} --title "Update qBraid-CLI version $VERSION" --body "This PR updates the qBraid-CLI API reference docs for the latest release version $VERSION")
|
|
117
|
+
PR_NUMBER=$(echo "$PR_URL" | grep -o '[0-9]*$')
|
|
118
|
+
echo "url=$PR_URL" >> $GITHUB_OUTPUT
|
|
119
|
+
echo "number=$PR_NUMBER" >> $GITHUB_OUTPUT
|
|
120
|
+
env:
|
|
121
|
+
GH_TOKEN: ${{ secrets.BOT_TOKEN }}
|
|
122
|
+
|
|
123
|
+
- name: Summary
|
|
124
|
+
run: |
|
|
125
|
+
VERSION=${{ needs.generate-docs-assets.outputs.cli_version }}
|
|
126
|
+
PR_URL=${{ steps.create_pr.outputs.url }}
|
|
127
|
+
PR_NUMBER=${{ steps.create_pr.outputs.number }}
|
|
128
|
+
echo "Opened PR [#$PR_NUMBER]($PR_URL) to update CLI docs for version **$VERSION**." >> $GITHUB_STEP_SUMMARY
|
|
@@ -3,12 +3,14 @@ name: Build Docs
|
|
|
3
3
|
on:
|
|
4
4
|
pull_request:
|
|
5
5
|
branches: ['main']
|
|
6
|
+
types: [opened, reopened, ready_for_review, synchronize]
|
|
6
7
|
push:
|
|
7
8
|
branches: ['main']
|
|
8
9
|
workflow_dispatch:
|
|
9
10
|
|
|
10
11
|
jobs:
|
|
11
12
|
build:
|
|
13
|
+
if: github.event.pull_request.draft == false
|
|
12
14
|
runs-on: ubuntu-latest
|
|
13
15
|
|
|
14
16
|
steps:
|
|
@@ -25,7 +27,7 @@ jobs:
|
|
|
25
27
|
- name: Build & install package
|
|
26
28
|
run: |
|
|
27
29
|
python -m build .
|
|
28
|
-
|
|
30
|
+
tools/install_wheel_extras.sh dist --extra envs
|
|
29
31
|
- name: Generate docs assets
|
|
30
32
|
run: |
|
|
31
33
|
python -c "import pathlib; pathlib.Path('docs/tree').mkdir(parents=True, exist_ok=True)"
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Format
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
pull_request:
|
|
5
5
|
branches: ['main']
|
|
6
|
+
types: [opened, reopened, ready_for_review, synchronize]
|
|
6
7
|
workflow_dispatch:
|
|
7
8
|
|
|
8
9
|
jobs:
|
|
9
|
-
|
|
10
|
+
check:
|
|
11
|
+
if: github.event.pull_request.draft == false
|
|
10
12
|
runs-on: ubuntu-latest
|
|
11
13
|
|
|
12
14
|
steps:
|
|
@@ -3,12 +3,14 @@ name: CI
|
|
|
3
3
|
on:
|
|
4
4
|
pull_request:
|
|
5
5
|
branches: ['main']
|
|
6
|
+
types: [opened, reopened, ready_for_review, synchronize]
|
|
6
7
|
push:
|
|
7
8
|
branches: ['main']
|
|
8
9
|
workflow_dispatch:
|
|
9
10
|
|
|
10
11
|
jobs:
|
|
11
12
|
build:
|
|
13
|
+
if: github.event.pull_request.draft == false
|
|
12
14
|
runs-on: ubuntu-latest
|
|
13
15
|
strategy:
|
|
14
16
|
matrix:
|
|
@@ -35,6 +37,7 @@ jobs:
|
|
|
35
37
|
path: dist/*.whl
|
|
36
38
|
|
|
37
39
|
test:
|
|
40
|
+
if: github.event.pull_request.draft == false
|
|
38
41
|
needs: build
|
|
39
42
|
runs-on: ${{ matrix.os }}
|
|
40
43
|
strategy:
|
|
@@ -64,7 +67,7 @@ jobs:
|
|
|
64
67
|
shell: pwsh
|
|
65
68
|
- name: Install testing dependencies
|
|
66
69
|
run: |
|
|
67
|
-
pip install pytest pytest-cov
|
|
70
|
+
pip install pytest pytest-cov qbraid-core[environments]
|
|
68
71
|
- name: Run tests with pytest
|
|
69
72
|
run: |
|
|
70
73
|
pytest --cov=qbraid_cli tests/ --cov-report=html --cov-report=xml --cov-report=term --cov-config=pyproject.toml
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
# Contributing
|
|
2
2
|
|
|
3
3
|
[](https://github.com/qBraid/qBraid-CLI/actions/workflows/main.yml)
|
|
4
|
-
[](https://docs.qbraid.com/projects/cli/en/latest/?badge=latest)
|
|
5
4
|
[](https://codecov.io/gh/qBraid/qBraid-CLI)
|
|
6
5
|
|
|
7
|
-
|
|
8
6
|
Welcome! We're delighted that you're interested in contributing. Your help is essential for keeping the project great.
|
|
9
7
|
|
|
10
8
|
## Getting Started
|
|
@@ -41,6 +39,12 @@ To view available `make` commands, run:
|
|
|
41
39
|
make help
|
|
42
40
|
```
|
|
43
41
|
|
|
42
|
+
To test out changes on the command line with re-installing each time:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
python3 qbraid_cli/main.py [OPTIONS] COMMAND [ARGS]...
|
|
46
|
+
```
|
|
47
|
+
|
|
44
48
|
## Testing
|
|
45
49
|
|
|
46
50
|
Install test dependencies:
|
|
@@ -99,17 +103,20 @@ open docs/build/html/index.html
|
|
|
99
103
|
|
|
100
104
|
## Code style
|
|
101
105
|
|
|
102
|
-
For code style, our project uses [
|
|
106
|
+
For code style, our project uses a combination of [isort](https://github.com/PyCQA/isort), [pylint](https://github.com/pylint-dev/pylint), [black](https://github.com/psf/black), and [mypy](https://github.com/python/mypy). Specific configurations for these tools should be added to [`pyproject.toml`](pyproject.toml).
|
|
103
107
|
|
|
104
108
|
Install linters:
|
|
105
109
|
|
|
106
110
|
```bash
|
|
107
|
-
pip install
|
|
111
|
+
pip install black isort pylint mypy
|
|
108
112
|
```
|
|
109
113
|
|
|
110
114
|
Run the following and make changes as needed to satisfy format checks:
|
|
111
115
|
|
|
112
116
|
```bash
|
|
113
|
-
|
|
117
|
+
black qbraid_cli tests tools
|
|
118
|
+
isort qbraid_cli tests tools
|
|
119
|
+
pylint qbraid_cli tests tools
|
|
120
|
+
mypy qbraid_cli tests tools
|
|
114
121
|
qbraid admin headers qbraid_cli tests tools --type=default --fix
|
|
115
122
|
```
|
|
@@ -16,15 +16,21 @@ help: ## Display this help message
|
|
|
16
16
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
17
17
|
@echo
|
|
18
18
|
|
|
19
|
-
docs: check_dependencies_docs check_build_version ## Generate documentation
|
|
19
|
+
docs: check_dependencies_docs check_build_version ## Generate documentation (Sphinx)
|
|
20
20
|
@python -c "import pathlib; pathlib.Path('$(TREE_DIR)').mkdir(parents=True, exist_ok=True)"
|
|
21
|
-
@python -c "import glob, os; [os.remove(f) for f in glob.glob('$(TREE_DIR)
|
|
21
|
+
@python -c "import glob, os; [os.remove(f) for f in glob.glob('$(TREE_DIR)/*')]"
|
|
22
22
|
@typer qbraid_cli.main utils docs --name=qbraid --output=$(TREE_DIR)/qbraid.md
|
|
23
23
|
@m2r $(TREE_DIR)/qbraid.md
|
|
24
24
|
@python -c "import os; os.remove('$(TREE_DIR)/qbraid.md')"
|
|
25
25
|
@python $(TOOLS_DIR)/split_rst.py $(TREE_DIR)/qbraid.rst
|
|
26
26
|
@sphinx-build -W -b html $(DOCS_DIR) $(BUILD_DIR)
|
|
27
27
|
|
|
28
|
+
docs-mdx: check_dependencies_docs check_build_version ## Generate documentation (Mintlify)
|
|
29
|
+
@python -c "import pathlib; pathlib.Path('$(TREE_DIR)').mkdir(parents=True, exist_ok=True)"
|
|
30
|
+
@python -c "import glob, os; [os.remove(f) for f in glob.glob('$(TREE_DIR)/*')]"
|
|
31
|
+
@typer qbraid_cli.main utils docs --name=qbraid --output=$(TREE_DIR)/qbraid.md
|
|
32
|
+
@python $(TOOLS_DIR)/split_md.py $(TREE_DIR)/qbraid.md
|
|
33
|
+
|
|
28
34
|
test: check_dependencies_test ## Run tests with pytest
|
|
29
35
|
@python -m pytest $(TESTS_DIR)
|
|
30
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qbraid-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.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: Proprietary
|
|
@@ -29,11 +29,12 @@ 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
|
|
32
|
+
Requires-Dist: qbraid-core>=0.1.29
|
|
33
33
|
Provides-Extra: jobs
|
|
34
34
|
Requires-Dist: amazon-braket-sdk>=1.48.1; extra == "jobs"
|
|
35
|
+
Provides-Extra: envs
|
|
36
|
+
Requires-Dist: qbraid-core[environments]; extra == "envs"
|
|
35
37
|
Provides-Extra: dev
|
|
36
|
-
Requires-Dist: ruff; extra == "dev"
|
|
37
38
|
Requires-Dist: isort; extra == "dev"
|
|
38
39
|
Requires-Dist: black; extra == "dev"
|
|
39
40
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -141,7 +142,7 @@ Options
|
|
|
141
142
|
|
|
142
143
|
Commands
|
|
143
144
|
configure Configure qBraid CLI options.
|
|
144
|
-
|
|
145
|
+
account Manage qBraid account.
|
|
145
146
|
devices Manage qBraid quantum devices.
|
|
146
147
|
envs Manage qBraid environments.
|
|
147
148
|
jobs Manage qBraid quantum jobs.
|
|
@@ -100,7 +100,7 @@ Options
|
|
|
100
100
|
|
|
101
101
|
Commands
|
|
102
102
|
configure Configure qBraid CLI options.
|
|
103
|
-
|
|
103
|
+
account Manage qBraid account.
|
|
104
104
|
devices Manage qBraid quantum devices.
|
|
105
105
|
envs Manage qBraid environments.
|
|
106
106
|
jobs Manage qBraid quantum jobs.
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Overview
|
|
4
|
-
=========
|
|
1
|
+
Documentation
|
|
2
|
+
==============
|
|
5
3
|
|
|
6
4
|
.. raw:: html
|
|
7
5
|
|
|
@@ -33,7 +31,7 @@ the qBraid CLI can be intalled using `pip <https://pypi.org/project/qbraid-cli/>
|
|
|
33
31
|
pip install qbraid-cli
|
|
34
32
|
|
|
35
33
|
To use the qBraid CLI, login to qBraid (or create an account), launch Lab, and then open Terminal.
|
|
36
|
-
You can also access the CLI directly from within `Notebooks <https://docs.qbraid.com/
|
|
34
|
+
You can also access the CLI directly from within `Notebooks <https://docs.qbraid.com/lab/user-guide/notebooks>`_
|
|
37
35
|
using the ``!`` operator. See `quantum jobs example <https://github.com/qBraid/qbraid-lab-demo/blob/045c7a8fbdcae66a7e64533dd9fe0e981dc02cf4/qbraid_lab/quantum_jobs/aws_quantum_jobs.ipynb>`_.
|
|
38
36
|
|
|
39
37
|
- `Launch qBraid Lab → <https://lab.qbraid.com/>`_
|
|
@@ -107,3 +105,19 @@ by disabling quantum jobs:
|
|
|
107
105
|
.. code-block:: console
|
|
108
106
|
|
|
109
107
|
$ qbraid jobs disable braket # toggle quantum jobs off
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
.. toctree::
|
|
111
|
+
:maxdepth: 1
|
|
112
|
+
:caption: CLI API Reference
|
|
113
|
+
:hidden:
|
|
114
|
+
|
|
115
|
+
tree/qbraid
|
|
116
|
+
tree/qbraid_admin
|
|
117
|
+
tree/qbraid_configure
|
|
118
|
+
tree/qbraid_account
|
|
119
|
+
tree/qbraid_devices
|
|
120
|
+
tree/qbraid_envs
|
|
121
|
+
tree/qbraid_jobs
|
|
122
|
+
tree/qbraid_kernels
|
|
123
|
+
tree/qbraid_pip
|
|
@@ -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.9.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" }]
|
|
@@ -30,7 +30,7 @@ classifiers = [
|
|
|
30
30
|
dependencies = [
|
|
31
31
|
"typer>=0.12.1",
|
|
32
32
|
"rich>=10.11.0",
|
|
33
|
-
"qbraid-core
|
|
33
|
+
"qbraid-core>=0.1.29",
|
|
34
34
|
]
|
|
35
35
|
requires-python = ">= 3.9"
|
|
36
36
|
|
|
@@ -42,7 +42,8 @@ Discord = "https://discord.gg/KugF6Cnncm"
|
|
|
42
42
|
|
|
43
43
|
[project.optional-dependencies]
|
|
44
44
|
jobs = ["amazon-braket-sdk>=1.48.1"]
|
|
45
|
-
|
|
45
|
+
envs = ["qbraid-core[environments]"]
|
|
46
|
+
dev = ["isort", "black", "pytest", "pytest-cov"]
|
|
46
47
|
|
|
47
48
|
[project.scripts]
|
|
48
49
|
qbraid = "qbraid_cli.main:app"
|
|
@@ -52,7 +53,7 @@ write_to = "qbraid_cli/_version.py"
|
|
|
52
53
|
|
|
53
54
|
[tool.black]
|
|
54
55
|
line-length = 100
|
|
55
|
-
target-version = ["py39", "py310", "py311"]
|
|
56
|
+
target-version = ["py39", "py310", "py311", "py312"]
|
|
56
57
|
|
|
57
58
|
[tool.isort]
|
|
58
59
|
profile = "black"
|
|
@@ -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+g3ef6e9f'
|
|
16
|
+
__version_tuple__ = version_tuple = (0, 1, 'dev1', 'g3ef6e9f')
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Copyright (c) 2024, qBraid Development Team
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Module defining commands in the 'qbraid user' namespace.
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
import rich
|
|
12
|
+
import typer
|
|
13
|
+
|
|
14
|
+
from qbraid_cli.handlers import run_progress_task
|
|
15
|
+
|
|
16
|
+
account_app = typer.Typer(help="Manage qBraid account.")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@account_app.command(name="credits")
|
|
20
|
+
def account_credits():
|
|
21
|
+
"""Get number of qBraid credits remaining."""
|
|
22
|
+
|
|
23
|
+
def get_credits() -> float:
|
|
24
|
+
from qbraid_core import QbraidClient
|
|
25
|
+
|
|
26
|
+
client = QbraidClient()
|
|
27
|
+
return client.user_credits_value()
|
|
28
|
+
|
|
29
|
+
qbraid_credits: float = run_progress_task(get_credits)
|
|
30
|
+
typer.secho(
|
|
31
|
+
f"{typer.style('qBraid credits remaining:')} "
|
|
32
|
+
f"{typer.style(f'{qbraid_credits:.4f}', fg=typer.colors.MAGENTA, bold=True)}",
|
|
33
|
+
nl=True, # Ensure a newline after output (default is True)
|
|
34
|
+
)
|
|
35
|
+
rich.print("\nFor more information, visit: https://docs.qbraid.com/home/pricing#credits")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@account_app.command(name="info")
|
|
39
|
+
def account_info():
|
|
40
|
+
"""Get qBraid account (user) metadata."""
|
|
41
|
+
|
|
42
|
+
def get_user() -> dict[str, Any]:
|
|
43
|
+
from qbraid_core import QbraidSession
|
|
44
|
+
|
|
45
|
+
session = QbraidSession()
|
|
46
|
+
user = session.get_user()
|
|
47
|
+
personal_info: dict = user.get("personalInformation", {})
|
|
48
|
+
metadata = {
|
|
49
|
+
"_id": user.get("_id"),
|
|
50
|
+
"userName": user.get("userName"),
|
|
51
|
+
"email": user.get("email"),
|
|
52
|
+
"joinedDate": user.get("createdAt", "Unknown"),
|
|
53
|
+
"activePlan": user.get("activePlan", "") or "Free",
|
|
54
|
+
"organization": personal_info.get("organization", "") or "qbraid",
|
|
55
|
+
"role": personal_info.get("role", "") or "guest",
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return metadata
|
|
59
|
+
|
|
60
|
+
info = run_progress_task(get_user)
|
|
61
|
+
rich.print(info)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
if __name__ == "__main__":
|
|
65
|
+
account_app()
|
|
@@ -51,7 +51,7 @@ def get_formatted_header(header_type: str, project_name: str) -> str:
|
|
|
51
51
|
header = HEADER_TYPES[header_type]
|
|
52
52
|
if header_type == "gpl":
|
|
53
53
|
return header.format(
|
|
54
|
-
project_name=project_name, project_name_start=project_name.
|
|
54
|
+
project_name=project_name, project_name_start=project_name[0].upper() + project_name[1:]
|
|
55
55
|
)
|
|
56
56
|
return header
|
|
57
57
|
|
|
@@ -60,7 +60,7 @@ def devices_list( # pylint: disable=too-many-branches
|
|
|
60
60
|
header_3 = "ID"
|
|
61
61
|
header_4 = "Status"
|
|
62
62
|
console.print(
|
|
63
|
-
f"
|
|
63
|
+
f"[bold]{header_1.ljust(12)}{header_2.ljust(35)}{header_3.ljust(41)}{header_4}[/bold]"
|
|
64
64
|
)
|
|
65
65
|
for device_provider, device_name, device_id, device_status in device_data:
|
|
66
66
|
if device_status == "ONLINE":
|
|
@@ -88,7 +88,7 @@ def envs_create( # pylint: disable=too-many-statements
|
|
|
88
88
|
slug_path = env_path / slug
|
|
89
89
|
description = "None" if description == "" else description
|
|
90
90
|
|
|
91
|
-
typer.echo("
|
|
91
|
+
typer.echo("## qBraid Metadata ##\n")
|
|
92
92
|
typer.echo(f" name: {display_name}")
|
|
93
93
|
typer.echo(f" description: {description}")
|
|
94
94
|
typer.echo(f" tags: {tags}")
|
|
@@ -127,7 +127,7 @@ def envs_create( # pylint: disable=too-many-statements
|
|
|
127
127
|
|
|
128
128
|
console = Console()
|
|
129
129
|
console.print(
|
|
130
|
-
f"
|
|
130
|
+
f"[bold green]Successfully created qBraid environment: "
|
|
131
131
|
f"[/bold green][bold magenta]{name}[/bold magenta]\n"
|
|
132
132
|
)
|
|
133
133
|
typer.echo("# To activate this environment, use")
|
|
@@ -192,7 +192,7 @@ def envs_remove(
|
|
|
192
192
|
description="Deleting local environment...",
|
|
193
193
|
error_message="Failed to delete qBraid environment",
|
|
194
194
|
)
|
|
195
|
-
typer.echo(f"
|
|
195
|
+
typer.echo(f"Environment '{name}' successfully removed.")
|
|
196
196
|
|
|
197
197
|
|
|
198
198
|
@envs_app.command(name="list")
|
|
@@ -10,6 +10,7 @@ and executing operations with progress tracking within the qBraid CLI.
|
|
|
10
10
|
import os
|
|
11
11
|
import traceback
|
|
12
12
|
from pathlib import Path
|
|
13
|
+
from time import sleep
|
|
13
14
|
from typing import Any, Callable, Optional, Union
|
|
14
15
|
|
|
15
16
|
import typer
|
|
@@ -129,11 +130,14 @@ def run_progress_task(
|
|
|
129
130
|
try:
|
|
130
131
|
result = operation(*args, **kwargs)
|
|
131
132
|
progress.update(task, completed=100, status="Done")
|
|
133
|
+
sleep(0.15)
|
|
132
134
|
return result
|
|
133
135
|
except Exception as err: # pylint: disable=broad-exception-caught
|
|
134
136
|
progress.update(task, completed=100, status="Failed")
|
|
135
137
|
custom_message = error_message if error_message else str(err)
|
|
136
138
|
return handle_error(message=custom_message)
|
|
139
|
+
finally:
|
|
140
|
+
progress.remove_task(task)
|
|
137
141
|
|
|
138
142
|
|
|
139
143
|
def _format_list_items(items: list[str]) -> str:
|
|
@@ -120,7 +120,7 @@ def jobs_list(
|
|
|
120
120
|
header_1 = "Job ID"
|
|
121
121
|
header_2 = "Submitted"
|
|
122
122
|
header_3 = "Status"
|
|
123
|
-
console.print(f"
|
|
123
|
+
console.print(f"[bold]{header_1.ljust(spacing)}{header_2.ljust(36)}{header_3}[/bold]")
|
|
124
124
|
for job_id, submitted, status in job_data:
|
|
125
125
|
if status == "COMPLETED":
|
|
126
126
|
status_color = "green"
|
|
@@ -103,7 +103,7 @@ def confirm_updates(
|
|
|
103
103
|
else:
|
|
104
104
|
raise ValueError(f"Invalid mode: {mode}. Expected 'enable' or 'disable'.")
|
|
105
105
|
|
|
106
|
-
typer.echo(f"
|
|
106
|
+
typer.echo(f"==> WARNING: {provider}/{core_package} package required <==")
|
|
107
107
|
if (
|
|
108
108
|
installed_version is not None
|
|
109
109
|
and target_version is not None
|
|
@@ -6,27 +6,36 @@ Entrypoint for the qBraid CLI.
|
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
import rich
|
|
9
10
|
import typer
|
|
10
11
|
|
|
12
|
+
from qbraid_cli.account.app import account_app
|
|
11
13
|
from qbraid_cli.admin.app import admin_app
|
|
12
14
|
from qbraid_cli.configure.app import configure_app
|
|
13
|
-
from qbraid_cli.credits.app import credits_app
|
|
14
15
|
from qbraid_cli.devices.app import devices_app
|
|
15
|
-
from qbraid_cli.envs.app import envs_app
|
|
16
16
|
from qbraid_cli.jobs.app import jobs_app
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
|
|
18
|
+
try:
|
|
19
|
+
from qbraid_cli.envs.app import envs_app
|
|
20
|
+
from qbraid_cli.kernels.app import kernels_app
|
|
21
|
+
from qbraid_cli.pip.app import pip_app
|
|
22
|
+
|
|
23
|
+
ENVS_COMMANDS = True
|
|
24
|
+
except ImportError:
|
|
25
|
+
ENVS_COMMANDS = False
|
|
19
26
|
|
|
20
27
|
app = typer.Typer(context_settings={"help_option_names": ["-h", "--help"]})
|
|
21
28
|
|
|
22
29
|
app.add_typer(admin_app, name="admin")
|
|
23
30
|
app.add_typer(configure_app, name="configure")
|
|
24
|
-
app.add_typer(
|
|
31
|
+
app.add_typer(account_app, name="account")
|
|
25
32
|
app.add_typer(devices_app, name="devices")
|
|
26
|
-
app.add_typer(envs_app, name="envs")
|
|
27
33
|
app.add_typer(jobs_app, name="jobs")
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
|
|
35
|
+
if ENVS_COMMANDS is True:
|
|
36
|
+
app.add_typer(envs_app, name="envs")
|
|
37
|
+
app.add_typer(kernels_app, name="kernels")
|
|
38
|
+
app.add_typer(pip_app, name="pip")
|
|
30
39
|
|
|
31
40
|
|
|
32
41
|
def version_callback(value: bool):
|
|
@@ -59,7 +68,7 @@ def show_banner():
|
|
|
59
68
|
typer.echo("")
|
|
60
69
|
typer.echo("- Use 'qbraid --version' to see the current version.")
|
|
61
70
|
typer.echo("")
|
|
62
|
-
|
|
71
|
+
rich.print("Reference Docs: https://docs.qbraid.com/cli/api-reference/qbraid")
|
|
63
72
|
|
|
64
73
|
|
|
65
74
|
@app.callback(invoke_without_command=True)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qbraid-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.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: Proprietary
|
|
@@ -29,11 +29,12 @@ 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
|
|
32
|
+
Requires-Dist: qbraid-core>=0.1.29
|
|
33
33
|
Provides-Extra: jobs
|
|
34
34
|
Requires-Dist: amazon-braket-sdk>=1.48.1; extra == "jobs"
|
|
35
|
+
Provides-Extra: envs
|
|
36
|
+
Requires-Dist: qbraid-core[environments]; extra == "envs"
|
|
35
37
|
Provides-Extra: dev
|
|
36
|
-
Requires-Dist: ruff; extra == "dev"
|
|
37
38
|
Requires-Dist: isort; extra == "dev"
|
|
38
39
|
Requires-Dist: black; extra == "dev"
|
|
39
40
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -141,7 +142,7 @@ Options
|
|
|
141
142
|
|
|
142
143
|
Commands
|
|
143
144
|
configure Configure qBraid CLI options.
|
|
144
|
-
|
|
145
|
+
account Manage qBraid account.
|
|
145
146
|
devices Manage qBraid quantum devices.
|
|
146
147
|
envs Manage qBraid environments.
|
|
147
148
|
jobs Manage qBraid quantum jobs.
|