qbraid-cli 0.8.0.dev1__tar.gz → 0.9.6__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.6/.env.example +4 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/.github/ISSUE_TEMPLATE/bug_report.yml +1 -8
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -9
- qbraid_cli-0.9.6/.github/PULL_REQUEST_TEMPLATE.md +3 -0
- qbraid_cli-0.9.6/.github/workflows/bump-version.yml +71 -0
- qbraid_cli-0.9.6/.github/workflows/docs-pr.yml +128 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/.github/workflows/docs.yml +7 -5
- qbraid_cli-0.9.6/.github/workflows/format.yml +30 -0
- qbraid_cli-0.9.6/.github/workflows/main.yml +83 -0
- qbraid_cli-0.9.6/.github/workflows/pre-release.yml +38 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/.github/workflows/publish.yml +4 -5
- qbraid_cli-0.9.6/.github/workflows/tag-on-merge.yml +36 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/.gitignore +4 -1
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/.readthedocs.yml +3 -2
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/CONTRIBUTING.md +24 -14
- qbraid_cli-0.9.6/LICENSE +41 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/MANIFEST.IN +2 -1
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/Makefile +8 -2
- qbraid_cli-0.9.6/PKG-INFO +179 -0
- qbraid_cli-0.9.6/README.md +136 -0
- qbraid-cli-0.8.0.dev1/docs/guide/overview.rst → qbraid_cli-0.9.6/docs/index.rst +23 -7
- qbraid_cli-0.9.6/docs/requirements.txt +7 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/pyproject.toml +35 -14
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli/_version.py +2 -2
- qbraid_cli-0.9.6/qbraid_cli/account/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/account/app.py +65 -0
- qbraid_cli-0.9.6/qbraid_cli/admin/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/admin/app.py +59 -0
- qbraid_cli-0.9.6/qbraid_cli/admin/headers.py +235 -0
- qbraid_cli-0.9.6/qbraid_cli/admin/validation.py +32 -0
- qbraid_cli-0.9.6/qbraid_cli/chat/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/chat/app.py +76 -0
- qbraid_cli-0.9.6/qbraid_cli/configure/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/configure/actions.py +111 -0
- qbraid_cli-0.9.6/qbraid_cli/configure/app.py +135 -0
- qbraid_cli-0.9.6/qbraid_cli/devices/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/devices/app.py +80 -0
- qbraid_cli-0.9.6/qbraid_cli/devices/validation.py +26 -0
- qbraid_cli-0.9.6/qbraid_cli/envs/__init__.py +11 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli/envs/activate.py +8 -5
- qbraid_cli-0.9.6/qbraid_cli/envs/app.py +306 -0
- qbraid_cli-0.9.6/qbraid_cli/envs/create.py +29 -0
- qbraid_cli-0.9.6/qbraid_cli/envs/data_handling.py +46 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli/exceptions.py +3 -0
- qbraid_cli-0.9.6/qbraid_cli/files/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/files/app.py +118 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli/handlers.py +46 -12
- qbraid_cli-0.9.6/qbraid_cli/jobs/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/jobs/app.py +152 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli/jobs/toggle_braket.py +68 -74
- qbraid_cli-0.9.6/qbraid_cli/jobs/validation.py +94 -0
- qbraid_cli-0.9.6/qbraid_cli/kernels/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/kernels/app.py +99 -0
- qbraid_cli-0.9.6/qbraid_cli/main.py +125 -0
- qbraid_cli-0.9.6/qbraid_cli/pip/__init__.py +11 -0
- qbraid_cli-0.9.6/qbraid_cli/pip/app.py +50 -0
- qbraid_cli-0.9.6/qbraid_cli/pip/hooks.py +74 -0
- qbraid_cli-0.9.6/qbraid_cli.egg-info/PKG-INFO +179 -0
- qbraid_cli-0.9.6/qbraid_cli.egg-info/SOURCES.txt +117 -0
- qbraid_cli-0.9.6/qbraid_cli.egg-info/requires.txt +16 -0
- qbraid_cli-0.9.6/tests/__init__.py +0 -0
- qbraid_cli-0.9.6/tests/account/__init__.py +0 -0
- qbraid_cli-0.9.6/tests/account/test_account_credits.py +88 -0
- qbraid_cli-0.9.6/tests/admin/test_headers.py +211 -0
- qbraid_cli-0.9.6/tests/configure/__init__.py +0 -0
- qbraid_cli-0.9.6/tests/configure/test_configure_commands.py +91 -0
- qbraid_cli-0.9.6/tests/configure/test_configure_prompt_for_config.py +39 -0
- qbraid_cli-0.9.6/tests/configure/test_configure_set.py +37 -0
- qbraid_cli-0.9.6/tests/configure/test_configure_validate_input.py +54 -0
- qbraid_cli-0.9.6/tests/conftest.py +35 -0
- qbraid_cli-0.9.6/tests/devices/__init__.py +0 -0
- qbraid_cli-0.9.6/tests/devices/test_devices_list.py +74 -0
- qbraid_cli-0.9.6/tests/devices/test_devices_validations.py +72 -0
- qbraid_cli-0.9.6/tests/envs/__init__.py +0 -0
- qbraid_cli-0.9.6/tests/envs/test_envs_activate.py +42 -0
- qbraid_cli-0.9.6/tests/envs/test_envs_activate_find_shell_rc.py +54 -0
- qbraid_cli-0.9.6/tests/envs/test_envs_activate_print_command.py +38 -0
- qbraid_cli-0.9.6/tests/envs/test_envs_activate_pyenv.py +70 -0
- qbraid_cli-0.9.6/tests/envs/test_envs_create_from_yaml.py +108 -0
- qbraid_cli-0.9.6/tests/envs/test_envs_list.py +37 -0
- qbraid_cli-0.9.6/tests/envs/test_envs_remove.py +34 -0
- qbraid_cli-0.9.6/tests/files/__init__.py +0 -0
- qbraid_cli-0.9.6/tests/files/test_files_commands.py +109 -0
- qbraid_cli-0.9.6/tests/jobs/__init__.py +0 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_disable.py +51 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_enable.py +69 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_list.py +50 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_state.py +32 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_toggle_braket_confirm.py +52 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_toggle_braket_disable.py +100 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_toggle_braket_enable.py +107 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_toggle_braket_get_data.py +185 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_validate_get_state.py +94 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_validate_handle_state.py +60 -0
- qbraid_cli-0.9.6/tests/jobs/test_jobs_validate_library.py +35 -0
- qbraid_cli-0.9.6/tests/kernels/__init__.py +0 -0
- qbraid_cli-0.9.6/tests/kernels/test_kernels_list.py +82 -0
- qbraid_cli-0.9.6/tests/resources/envs/correct.yaml +16 -0
- qbraid_cli-0.9.6/tests/resources/envs/icon.png +0 -0
- qbraid_cli-0.9.6/tests/resources/envs/incorrect.yaml +4 -0
- qbraid_cli-0.9.6/tools/bump_version.py +28 -0
- qbraid_cli-0.9.6/tools/create_dev_build.sh +88 -0
- qbraid_cli-0.9.6/tools/install_wheel_extras.sh +67 -0
- qbraid_cli-0.9.6/tools/split_md.py +185 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/tools/split_rst.py +6 -0
- qbraid_cli-0.9.6/tools/stamp_pre_release.py +36 -0
- qbraid-cli-0.8.0.dev1/.env-example +0 -3
- qbraid-cli-0.8.0.dev1/.github/PULL_REQUEST_TEMPLATE.md +0 -3
- qbraid-cli-0.8.0.dev1/.github/workflows/format.yml +0 -25
- qbraid-cli-0.8.0.dev1/.github/workflows/main.yml +0 -64
- qbraid-cli-0.8.0.dev1/.github/workflows/test-publish.yml +0 -29
- qbraid-cli-0.8.0.dev1/PKG-INFO +0 -136
- qbraid-cli-0.8.0.dev1/README.md +0 -92
- qbraid-cli-0.8.0.dev1/docs/_static/api-key.png +0 -0
- qbraid-cli-0.8.0.dev1/docs/_static/cards/jupyter.png +0 -0
- qbraid-cli-0.8.0.dev1/docs/_static/cards/python.png +0 -0
- qbraid-cli-0.8.0.dev1/docs/_static/cards/terminal.png +0 -0
- qbraid-cli-0.8.0.dev1/docs/cli/configure.rst +0 -60
- qbraid-cli-0.8.0.dev1/docs/cli/credits.rst +0 -23
- qbraid-cli-0.8.0.dev1/docs/cli/devices-list.rst +0 -35
- qbraid-cli-0.8.0.dev1/docs/cli/devices.rst +0 -17
- qbraid-cli-0.8.0.dev1/docs/cli/envs-activate.rst +0 -36
- qbraid-cli-0.8.0.dev1/docs/cli/envs-list.rst +0 -37
- qbraid-cli-0.8.0.dev1/docs/cli/envs-uninstall.rst +0 -40
- qbraid-cli-0.8.0.dev1/docs/cli/envs.rst +0 -25
- qbraid-cli-0.8.0.dev1/docs/cli/jobs-add.rst +0 -49
- qbraid-cli-0.8.0.dev1/docs/cli/jobs-disable.rst +0 -36
- qbraid-cli-0.8.0.dev1/docs/cli/jobs-enable.rst +0 -35
- qbraid-cli-0.8.0.dev1/docs/cli/jobs-list.rst +0 -35
- qbraid-cli-0.8.0.dev1/docs/cli/jobs.rst +0 -26
- qbraid-cli-0.8.0.dev1/docs/cli/kernels.rst +0 -31
- qbraid-cli-0.8.0.dev1/docs/cli/qbraid.rst +0 -68
- qbraid-cli-0.8.0.dev1/docs/index.rst +0 -111
- qbraid-cli-0.8.0.dev1/docs/requirements.txt +0 -7
- qbraid-cli-0.8.0.dev1/qbraid_cli/configure/__init__.py +0 -6
- qbraid-cli-0.8.0.dev1/qbraid_cli/configure/app.py +0 -151
- qbraid-cli-0.8.0.dev1/qbraid_cli/credits/__init__.py +0 -6
- qbraid-cli-0.8.0.dev1/qbraid_cli/credits/app.py +0 -30
- qbraid-cli-0.8.0.dev1/qbraid_cli/devices/__init__.py +0 -6
- qbraid-cli-0.8.0.dev1/qbraid_cli/devices/app.py +0 -72
- qbraid-cli-0.8.0.dev1/qbraid_cli/envs/__init__.py +0 -6
- qbraid-cli-0.8.0.dev1/qbraid_cli/envs/app.py +0 -387
- qbraid-cli-0.8.0.dev1/qbraid_cli/envs/create.py +0 -125
- qbraid-cli-0.8.0.dev1/qbraid_cli/jobs/__init__.py +0 -6
- qbraid-cli-0.8.0.dev1/qbraid_cli/jobs/app.py +0 -169
- qbraid-cli-0.8.0.dev1/qbraid_cli/kernels/__init__.py +0 -6
- qbraid-cli-0.8.0.dev1/qbraid_cli/kernels/app.py +0 -42
- qbraid-cli-0.8.0.dev1/qbraid_cli/main.py +0 -73
- qbraid-cli-0.8.0.dev1/qbraid_cli.egg-info/PKG-INFO +0 -136
- qbraid-cli-0.8.0.dev1/qbraid_cli.egg-info/SOURCES.txt +0 -75
- qbraid-cli-0.8.0.dev1/qbraid_cli.egg-info/requires.txt +0 -21
- qbraid-cli-0.8.0.dev1/requirements.txt +0 -5
- qbraid-cli-0.8.0.dev1/tests/test_envs.py +0 -40
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/docs/Makefile +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/docs/_static/favicon.ico +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/docs/_static/logo.png +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/docs/_static/style/custom.css +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/docs/_static/style/s4defs-roles.css +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/docs/conf.py +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/docs/make.bat +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli/__init__.py +0 -0
- /qbraid-cli-0.8.0.dev1/tests/__init__.py → /qbraid_cli-0.9.6/qbraid_cli/py.typed +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli.egg-info/dependency_links.txt +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli.egg-info/entry_points.txt +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/qbraid_cli.egg-info/top_level.txt +0 -0
- {qbraid-cli-0.8.0.dev1 → qbraid_cli-0.9.6}/setup.cfg +0 -0
|
@@ -12,6 +12,7 @@ body:
|
|
|
12
12
|
attributes:
|
|
13
13
|
label: Environment
|
|
14
14
|
value: |
|
|
15
|
+
- **qBraid-CORE version**:
|
|
15
16
|
- **qBraid-CLI version**:
|
|
16
17
|
- **Python version**:
|
|
17
18
|
- **Operating system**:
|
|
@@ -31,11 +32,3 @@ body:
|
|
|
31
32
|
description: We warmly welcome any recommendations on potential fixes, insights, or considerations that contributors should keep in mind when working to resolve this issue.
|
|
32
33
|
validations:
|
|
33
34
|
required: false
|
|
34
|
-
|
|
35
|
-
- type: checkboxes
|
|
36
|
-
id: agreement
|
|
37
|
-
attributes:
|
|
38
|
-
label: 'Please confirm the following:'
|
|
39
|
-
options:
|
|
40
|
-
- label: 'I have searched the existing issues and confirm this is a new bug report.'
|
|
41
|
-
required: true
|
|
@@ -23,12 +23,3 @@ body:
|
|
|
23
23
|
description: "Do you have an idea for how this could be implemented? Please include those details here."
|
|
24
24
|
validations:
|
|
25
25
|
required: false
|
|
26
|
-
|
|
27
|
-
- type: checkboxes
|
|
28
|
-
id: agreement
|
|
29
|
-
attributes:
|
|
30
|
-
label: 'Please confirm the following:'
|
|
31
|
-
description: 'Understanding that feature requests are evaluated for their applicability and benefit to the community, and not all requests may be implemented.'
|
|
32
|
-
options:
|
|
33
|
-
- label: 'I have searched the existing issues and confirm this is a new feature request.'
|
|
34
|
-
required: true
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
name: Bump Version
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
bump_type:
|
|
7
|
+
description: 'Select the version bump type'
|
|
8
|
+
required: true
|
|
9
|
+
type: choice
|
|
10
|
+
options:
|
|
11
|
+
- major
|
|
12
|
+
- minor
|
|
13
|
+
- patch
|
|
14
|
+
default: 'patch'
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
bump-version:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
permissions:
|
|
20
|
+
contents: write
|
|
21
|
+
pull-requests: write
|
|
22
|
+
steps:
|
|
23
|
+
- name: Checkout code
|
|
24
|
+
uses: actions/checkout@v4
|
|
25
|
+
with:
|
|
26
|
+
ref: 'main'
|
|
27
|
+
|
|
28
|
+
- name: Create feature branch
|
|
29
|
+
run: git checkout -b qbraid-bot/${{ github.run_id }}
|
|
30
|
+
|
|
31
|
+
- name: Setup Python
|
|
32
|
+
uses: actions/setup-python@v5
|
|
33
|
+
with:
|
|
34
|
+
python-version: '3.11'
|
|
35
|
+
|
|
36
|
+
- name: Install dependencies
|
|
37
|
+
run: |
|
|
38
|
+
python -m pip install --upgrade pip
|
|
39
|
+
python -m pip install "qbraid-core>=0.1.17"
|
|
40
|
+
|
|
41
|
+
- name: Setup Git config
|
|
42
|
+
run: |
|
|
43
|
+
git config --global user.name 'qbraidTeam'
|
|
44
|
+
git config --global user.email 'qbraid.team@qbraid.com'
|
|
45
|
+
|
|
46
|
+
- name: Bump version, commit and push
|
|
47
|
+
id: bump_version
|
|
48
|
+
run: |
|
|
49
|
+
BUMP_TYPE=${{ github.event.inputs.bump_type }}
|
|
50
|
+
VERSION=$(python3 tools/bump_version.py qbraid_cli $BUMP_TYPE)
|
|
51
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
52
|
+
git commit -am "Bump $BUMP_TYPE version to $VERSION"
|
|
53
|
+
git push origin qbraid-bot/${{ github.run_id }}
|
|
54
|
+
|
|
55
|
+
- name: Create Pull Request
|
|
56
|
+
id: create_pr
|
|
57
|
+
run: |
|
|
58
|
+
VERSION=${{ steps.bump_version.outputs.version }}
|
|
59
|
+
PR_URL=$(gh pr create -B main -H qbraid-bot/${{ github.run_id }} --title "Bump project version to $VERSION" --body "This PR bumps the project version to $VERSION")
|
|
60
|
+
PR_NUMBER=$(echo "$PR_URL" | grep -o '[0-9]*$')
|
|
61
|
+
echo "url=$PR_URL" >> $GITHUB_OUTPUT
|
|
62
|
+
echo "number=$PR_NUMBER" >> $GITHUB_OUTPUT
|
|
63
|
+
env:
|
|
64
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
65
|
+
|
|
66
|
+
- name: Summary
|
|
67
|
+
run: |
|
|
68
|
+
VERSION=${{ steps.bump_version.outputs.version }}
|
|
69
|
+
PR_URL=${{ steps.create_pr.outputs.url }}
|
|
70
|
+
PR_NUMBER=${{ steps.create_pr.outputs.number }}
|
|
71
|
+
echo "Opened PR [#$PR_NUMBER]($PR_URL) to update project to version **$VERSION**." >> $GITHUB_STEP_SUMMARY
|
|
@@ -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,29 +3,31 @@ 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:
|
|
15
|
-
- uses: actions/checkout@
|
|
17
|
+
- uses: actions/checkout@v4
|
|
16
18
|
- name: Set up Python
|
|
17
|
-
uses: actions/setup-python@
|
|
19
|
+
uses: actions/setup-python@v5
|
|
18
20
|
with:
|
|
19
|
-
python-version: '3.
|
|
21
|
+
python-version: '3.11'
|
|
20
22
|
cache: pip
|
|
21
23
|
- name: Install dependencies
|
|
22
24
|
run: |
|
|
23
|
-
python -m pip install --upgrade pip setuptools
|
|
25
|
+
python -m pip install --upgrade pip setuptools build
|
|
24
26
|
python -m pip install -r docs/requirements.txt
|
|
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)"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: Format
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: ['main']
|
|
6
|
+
types: [opened, reopened, ready_for_review, synchronize]
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
check:
|
|
11
|
+
if: github.event.pull_request.draft == false
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- name: Set up Python
|
|
17
|
+
uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version: '3.11'
|
|
20
|
+
- name: Install dependencies
|
|
21
|
+
run: |
|
|
22
|
+
pip install --upgrade pip
|
|
23
|
+
pip install black isort pylint qbraid-cli
|
|
24
|
+
- name: Check isort, black, pylint
|
|
25
|
+
run: |
|
|
26
|
+
black --check qbraid_cli tests tools
|
|
27
|
+
isort --check-only qbraid_cli tests tools
|
|
28
|
+
- name: Check copyright headers
|
|
29
|
+
run: |
|
|
30
|
+
qbraid admin headers qbraid_cli tests tools
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: ['main']
|
|
6
|
+
types: [opened, reopened, ready_for_review, synchronize]
|
|
7
|
+
push:
|
|
8
|
+
branches: ['main']
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build:
|
|
13
|
+
if: github.event.pull_request.draft == false
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
strategy:
|
|
16
|
+
matrix:
|
|
17
|
+
python-version: ['3.11']
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
22
|
+
uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: ${{ matrix.python-version }}
|
|
25
|
+
cache: pip
|
|
26
|
+
- name: Upgrade pip and install build tools
|
|
27
|
+
run: |
|
|
28
|
+
pip install --upgrade pip
|
|
29
|
+
pip install setuptools wheel build
|
|
30
|
+
- name: Build the package
|
|
31
|
+
run: |
|
|
32
|
+
python -m build
|
|
33
|
+
- name: Upload built package
|
|
34
|
+
uses: actions/upload-artifact@v4
|
|
35
|
+
with:
|
|
36
|
+
name: built-package
|
|
37
|
+
path: dist/*.whl
|
|
38
|
+
|
|
39
|
+
test:
|
|
40
|
+
if: github.event.pull_request.draft == false
|
|
41
|
+
needs: build
|
|
42
|
+
runs-on: ${{ matrix.os }}
|
|
43
|
+
strategy:
|
|
44
|
+
matrix:
|
|
45
|
+
os: [ubuntu-latest, windows-latest]
|
|
46
|
+
python-version: ['3.9', '3.10', '3.11', '3.12']
|
|
47
|
+
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v4
|
|
50
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
51
|
+
uses: actions/setup-python@v5
|
|
52
|
+
with:
|
|
53
|
+
python-version: ${{ matrix.python-version }}
|
|
54
|
+
cache: pip
|
|
55
|
+
- name: Download built package
|
|
56
|
+
uses: actions/download-artifact@v4
|
|
57
|
+
with:
|
|
58
|
+
name: built-package
|
|
59
|
+
path: dist
|
|
60
|
+
- name: Install package
|
|
61
|
+
run: |
|
|
62
|
+
if ($env:RUNNER_OS -eq "Windows") {
|
|
63
|
+
Get-ChildItem dist/*.whl | ForEach-Object { pip install $_.FullName }
|
|
64
|
+
} else {
|
|
65
|
+
pip install dist/*.whl
|
|
66
|
+
}
|
|
67
|
+
shell: pwsh
|
|
68
|
+
- name: Install testing dependencies
|
|
69
|
+
run: |
|
|
70
|
+
pip install pytest pytest-cov qbraid-core[environments]
|
|
71
|
+
- name: Run tests with pytest
|
|
72
|
+
run: |
|
|
73
|
+
pytest --cov=qbraid_cli tests/ --cov-report=html --cov-report=xml --cov-report=term --cov-config=pyproject.toml
|
|
74
|
+
env:
|
|
75
|
+
QBRAID_API_KEY: ${{ secrets.QBRAID_API_KEY }}
|
|
76
|
+
- name: Upload coverage to Codecov
|
|
77
|
+
if: matrix.python-version == '3.11' && matrix.os == 'ubuntu-latest'
|
|
78
|
+
uses: codecov/codecov-action@v4.4.1
|
|
79
|
+
with:
|
|
80
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
81
|
+
fail_ci_if_error: false
|
|
82
|
+
files: ./build/coverage/coverage.xml
|
|
83
|
+
verbose: true
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Pre-release to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
pypi-publish:
|
|
8
|
+
name: Build pre-release dist & upload to PyPI
|
|
9
|
+
environment: publish
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
with:
|
|
14
|
+
fetch-depth: 1
|
|
15
|
+
|
|
16
|
+
- name: Set up Python
|
|
17
|
+
uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version: '3.11'
|
|
20
|
+
|
|
21
|
+
- name: Install build dependencies
|
|
22
|
+
run: python -m pip install -U pip wheel build toml-cli qbraid-core
|
|
23
|
+
|
|
24
|
+
- name: Build binary wheel + source tarball
|
|
25
|
+
id: build-dev
|
|
26
|
+
run: |
|
|
27
|
+
export PRE_RELEASE_VERSION=$(python tools/stamp_pre_release.py qbraid_cli)
|
|
28
|
+
[[ "$PRE_RELEASE_VERSION" =~ .*(-a\.|-b\.|-rc\.).* ]] && echo "Deploying pre-release version '$PRE_RELEASE_VERSION'" || (echo "not pre-release version"; exit 0)
|
|
29
|
+
out_dir="${PWD}/dist"
|
|
30
|
+
tools/create_dev_build.sh $PRE_RELEASE_VERSION "${out_dir}"
|
|
31
|
+
echo "dir=$out_dir" >> $GITHUB_OUTPUT
|
|
32
|
+
|
|
33
|
+
- name: Publish pre-release package to PyPI
|
|
34
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
35
|
+
with:
|
|
36
|
+
user: __token__
|
|
37
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
38
|
+
packages-dir: ${{ steps.build-dev.outputs.dir }}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
name: Publish to PyPI
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
release:
|
|
5
|
-
types: [published]
|
|
6
4
|
workflow_dispatch:
|
|
7
5
|
|
|
8
6
|
jobs:
|
|
9
7
|
pypi-publish:
|
|
10
8
|
name: Build dist & upload to PyPI
|
|
9
|
+
environment: publish
|
|
11
10
|
runs-on: ubuntu-latest
|
|
12
11
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
12
|
+
- uses: actions/checkout@v4
|
|
14
13
|
with:
|
|
15
14
|
fetch-depth: 1
|
|
16
15
|
|
|
17
16
|
- name: Set up Python
|
|
18
|
-
uses: actions/setup-python@
|
|
17
|
+
uses: actions/setup-python@v5
|
|
19
18
|
with:
|
|
20
|
-
python-version: '3.
|
|
19
|
+
python-version: '3.11'
|
|
21
20
|
|
|
22
21
|
- name: Build binary wheel + source tarball
|
|
23
22
|
run: |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Tag on PR Merge
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [closed]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
tag-version:
|
|
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
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
steps:
|
|
14
|
+
- name: Extract version
|
|
15
|
+
id: extract_version
|
|
16
|
+
run: |
|
|
17
|
+
VERSION=$(echo '${{ github.event.pull_request.title }}' | sed -E 's/Bump project version to (.*)/\1/')
|
|
18
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
19
|
+
|
|
20
|
+
- name: Checkout code
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
with:
|
|
23
|
+
ref: 'main'
|
|
24
|
+
|
|
25
|
+
- name: Setup Git config
|
|
26
|
+
run: |
|
|
27
|
+
git config --global user.name 'qbraidTeam'
|
|
28
|
+
git config --global user.email 'qbraid.team@qbraid.com'
|
|
29
|
+
|
|
30
|
+
- name: Create Tag
|
|
31
|
+
run: |
|
|
32
|
+
VERSION=${{ steps.extract_version.outputs.version }}
|
|
33
|
+
git tag v$VERSION
|
|
34
|
+
git push origin v$VERSION
|
|
35
|
+
env:
|
|
36
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -3,6 +3,9 @@ __pycache__/
|
|
|
3
3
|
*.py[cod]
|
|
4
4
|
*$py.class
|
|
5
5
|
|
|
6
|
+
.DS_Store
|
|
7
|
+
.vscode
|
|
8
|
+
|
|
6
9
|
# C extensions
|
|
7
10
|
*.so
|
|
8
11
|
|
|
@@ -161,4 +164,4 @@ cython_debug/
|
|
|
161
164
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
162
165
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
163
166
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
164
|
-
|
|
167
|
+
.idea/
|
|
@@ -10,9 +10,10 @@ build:
|
|
|
10
10
|
tools:
|
|
11
11
|
python: "3.10"
|
|
12
12
|
commands:
|
|
13
|
-
- pip install -r docs/requirements.txt
|
|
13
|
+
- python -m pip install -r docs/requirements.txt
|
|
14
|
+
- python -m pip install build
|
|
14
15
|
- python -m build .
|
|
15
|
-
-
|
|
16
|
+
- tools/install_wheel_extras.sh dist --extra envs
|
|
16
17
|
- mkdir -p docs/tree
|
|
17
18
|
- rm -f docs/tree/*.rst
|
|
18
19
|
- typer qbraid_cli.main utils docs --name=qbraid --output=docs/tree/qbraid.md
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Contributing
|
|
2
2
|
|
|
3
|
+
[](https://github.com/qBraid/qBraid-CLI/actions/workflows/main.yml)
|
|
4
|
+
[](https://codecov.io/gh/qBraid/qBraid-CLI)
|
|
5
|
+
|
|
3
6
|
Welcome! We're delighted that you're interested in contributing. Your help is essential for keeping the project great.
|
|
4
7
|
|
|
5
8
|
## Getting Started
|
|
@@ -32,27 +35,33 @@ qbraid --version
|
|
|
32
35
|
|
|
33
36
|
To view available `make` commands, run:
|
|
34
37
|
|
|
35
|
-
```
|
|
38
|
+
```bash
|
|
36
39
|
make help
|
|
37
40
|
```
|
|
38
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
|
+
|
|
39
48
|
## Testing
|
|
40
49
|
|
|
41
50
|
Install test dependencies:
|
|
42
51
|
|
|
43
|
-
```
|
|
52
|
+
```bash
|
|
44
53
|
pip install pytest
|
|
45
54
|
```
|
|
46
55
|
|
|
47
56
|
And run tests:
|
|
48
57
|
|
|
49
|
-
```
|
|
58
|
+
```bash
|
|
50
59
|
pytest tests
|
|
51
60
|
```
|
|
52
61
|
|
|
53
62
|
You can also run tests with make:
|
|
54
63
|
|
|
55
|
-
```
|
|
64
|
+
```bash
|
|
56
65
|
make test
|
|
57
66
|
```
|
|
58
67
|
|
|
@@ -60,19 +69,19 @@ make test
|
|
|
60
69
|
|
|
61
70
|
To generate the API reference documentation locally, install the necessary requirements:
|
|
62
71
|
|
|
63
|
-
```
|
|
72
|
+
```bash
|
|
64
73
|
pip install -r docs/requirements.txt
|
|
65
74
|
```
|
|
66
75
|
|
|
67
76
|
And then run
|
|
68
77
|
|
|
69
|
-
```
|
|
78
|
+
```bash
|
|
70
79
|
make docs
|
|
71
80
|
```
|
|
72
81
|
|
|
73
82
|
Alternatively, you can generate command tree `.rst` files step-by-step:
|
|
74
83
|
|
|
75
|
-
```
|
|
84
|
+
```bash
|
|
76
85
|
mkdir docs/tree
|
|
77
86
|
typer qbraid_cli.main utils docs --name=qbraid --output=docs/tree/qbraid.md
|
|
78
87
|
m2r docs/tree/qbraid.md
|
|
@@ -82,31 +91,32 @@ python tools/split_rst.py docs/tree/qbraid.rst
|
|
|
82
91
|
|
|
83
92
|
And then, build the docs:
|
|
84
93
|
|
|
85
|
-
```
|
|
94
|
+
```bash
|
|
86
95
|
sphinx-build -W -b html docs docs/build/html
|
|
87
96
|
```
|
|
88
97
|
|
|
89
98
|
You can view the generated documentation in your browser (on OS X) using:
|
|
90
99
|
|
|
91
|
-
```
|
|
100
|
+
```bash
|
|
92
101
|
open docs/build/html/index.html
|
|
93
102
|
```
|
|
94
103
|
|
|
95
104
|
## Code style
|
|
96
105
|
|
|
97
|
-
For code style, our project uses a combination of [isort](https://github.com/PyCQA/isort), [pylint](https://github.com/pylint-dev/pylint),
|
|
98
|
-
and [black](https://github.com/psf/black). Specific configurations for these tools should be added to [`pyproject.toml`](pyproject.toml).
|
|
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).
|
|
99
107
|
|
|
100
108
|
Install linters:
|
|
101
109
|
|
|
102
|
-
```
|
|
103
|
-
pip install black isort pylint
|
|
110
|
+
```bash
|
|
111
|
+
pip install black isort pylint mypy
|
|
104
112
|
```
|
|
105
113
|
|
|
106
114
|
Run the following and make changes as needed to satisfy format checks:
|
|
107
115
|
|
|
108
|
-
```
|
|
116
|
+
```bash
|
|
109
117
|
black qbraid_cli tests tools
|
|
110
118
|
isort qbraid_cli tests tools
|
|
111
119
|
pylint qbraid_cli tests tools
|
|
120
|
+
mypy qbraid_cli tests tools
|
|
121
|
+
qbraid admin headers qbraid_cli tests tools --type=default --fix
|
|
112
122
|
```
|
qbraid_cli-0.9.6/LICENSE
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
qBraid Closed-Source Software License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024, qBraid Development Team
|
|
4
|
+
|
|
5
|
+
All rights reserved.
|
|
6
|
+
|
|
7
|
+
This license agreement ("License") is between the qBraid Development Team ("Author") and you, the Licensee. By using or distributing the qBraid ("Software"), you agree to the following terms:
|
|
8
|
+
|
|
9
|
+
1. Grant of License.
|
|
10
|
+
|
|
11
|
+
Subject to the terms of this License, the Author grants you a non-exclusive, non-transferable license to use the Software for personal, academic, and educational purposes. Use of the Software for commercial purposes is strictly prohibited unless express permission is granted by the Author.
|
|
12
|
+
|
|
13
|
+
2. Distribution.
|
|
14
|
+
|
|
15
|
+
You may distribute the Software to others, provided that any such distribution is made under the same terms of this License. Modifications to the Software may not be distributed.
|
|
16
|
+
|
|
17
|
+
3. Modification.
|
|
18
|
+
|
|
19
|
+
You are permitted to modify the Software for personal use. You may contribute improvements or bug fixes back to the Author or the community, but you may not distribute the modifications.
|
|
20
|
+
|
|
21
|
+
4. Commercial Use.
|
|
22
|
+
|
|
23
|
+
The Software may not be used for commercial purposes without explicit, prior written permission from the Author. Permissions for commercial use will be considered on a case-by-case basis.
|
|
24
|
+
|
|
25
|
+
5. Attribution
|
|
26
|
+
|
|
27
|
+
If the Software is used in a non-private setting, including but not limited to academic work, commercial settings, or published literature, attribution must be given to the "qBraid Jupyter Environment Manager authored by the qBraid Development Team."
|
|
28
|
+
|
|
29
|
+
6. Disclaimer of Warranty.
|
|
30
|
+
|
|
31
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
|
|
32
|
+
|
|
33
|
+
7. Limitation of Liability.
|
|
34
|
+
|
|
35
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
36
|
+
|
|
37
|
+
8. Termination.
|
|
38
|
+
|
|
39
|
+
This License is effective until terminated. Your rights under this License will terminate automatically without notice from the Author if you fail to comply with any term(s) of this License.
|
|
40
|
+
|
|
41
|
+
By using the Software, you agree to be bound by the terms of this License. Redistribution of the Software or use of the Software other than as specifically authorized under this License is prohibited and may result in severe civil and criminal penalties.
|