qbraid-cli 0.8.0.dev7__tar.gz → 0.8.1a0__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.

Files changed (135) hide show
  1. qbraid_cli-0.8.1a0/.env.example +4 -0
  2. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.github/workflows/docs.yml +2 -2
  3. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.github/workflows/format.yml +2 -8
  4. qbraid_cli-0.8.1a0/.github/workflows/pre-release.yml +38 -0
  5. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.github/workflows/publish.yml +1 -3
  6. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.readthedocs.yml +1 -1
  7. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/PKG-INFO +46 -4
  8. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/README.md +44 -2
  9. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/pyproject.toml +2 -2
  10. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/_version.py +2 -2
  11. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/admin/headers.py +41 -41
  12. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/credits/app.py +5 -2
  13. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/handlers.py +15 -2
  14. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/main.py +3 -2
  15. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli.egg-info/PKG-INFO +46 -4
  16. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli.egg-info/SOURCES.txt +4 -3
  17. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli.egg-info/requires.txt +1 -1
  18. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_credits/test_credits_value.py +3 -3
  19. qbraid_cli-0.8.1a0/tools/create_dev_build.sh +88 -0
  20. qbraid_cli-0.8.1a0/tools/install_wheel_extras.sh +67 -0
  21. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tools/split_rst.py +0 -0
  22. qbraid_cli-0.8.1a0/tools/stamp_pre_release.py +68 -0
  23. qbraid_cli-0.8.0.dev7/.env.example +0 -3
  24. qbraid_cli-0.8.0.dev7/.github/workflows/test-publish.yml +0 -29
  25. qbraid_cli-0.8.0.dev7/docs/requirements.txt +0 -7
  26. qbraid_cli-0.8.0.dev7/tools/verify_headers.py +0 -209
  27. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  28. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  29. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  30. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.github/workflows/main.yml +0 -0
  31. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/.gitignore +0 -0
  32. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/CONTRIBUTING.md +0 -0
  33. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/MANIFEST.IN +0 -0
  34. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/Makefile +0 -0
  35. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/Makefile +0 -0
  36. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/_static/api-key.png +0 -0
  37. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/_static/cards/jupyter.png +0 -0
  38. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/_static/cards/python.png +0 -0
  39. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/_static/cards/terminal.png +0 -0
  40. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/_static/favicon.ico +0 -0
  41. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/_static/logo.png +0 -0
  42. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/_static/style/custom.css +0 -0
  43. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/_static/style/s4defs-roles.css +0 -0
  44. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/configure.rst +0 -0
  45. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/credits.rst +0 -0
  46. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/devices-list.rst +0 -0
  47. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/devices.rst +0 -0
  48. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/envs-activate.rst +0 -0
  49. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/envs-list.rst +0 -0
  50. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/envs-uninstall.rst +0 -0
  51. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/envs.rst +0 -0
  52. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/jobs-add.rst +0 -0
  53. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/jobs-disable.rst +0 -0
  54. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/jobs-enable.rst +0 -0
  55. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/jobs-list.rst +0 -0
  56. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/jobs.rst +0 -0
  57. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/kernels.rst +0 -0
  58. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/cli/qbraid.rst +0 -0
  59. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/conf.py +0 -0
  60. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/guide/overview.rst +0 -0
  61. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/index.rst +0 -0
  62. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/docs/make.bat +0 -0
  63. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/__init__.py +0 -0
  64. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/admin/__init__.py +0 -0
  65. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/admin/app.py +0 -0
  66. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/admin/validation.py +0 -0
  67. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/configure/__init__.py +0 -0
  68. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/configure/actions.py +0 -0
  69. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/configure/app.py +0 -0
  70. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/credits/__init__.py +0 -0
  71. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/devices/__init__.py +0 -0
  72. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/devices/app.py +0 -0
  73. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/devices/validation.py +0 -0
  74. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/envs/__init__.py +0 -0
  75. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/envs/activate.py +0 -0
  76. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/envs/app.py +0 -0
  77. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/envs/create.py +0 -0
  78. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/envs/data_handling.py +0 -0
  79. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/exceptions.py +0 -0
  80. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/jobs/__init__.py +0 -0
  81. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/jobs/app.py +0 -0
  82. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/jobs/toggle_braket.py +0 -0
  83. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/jobs/validation.py +0 -0
  84. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/kernels/__init__.py +0 -0
  85. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli/kernels/app.py +0 -0
  86. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli.egg-info/dependency_links.txt +0 -0
  87. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli.egg-info/entry_points.txt +0 -0
  88. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/qbraid_cli.egg-info/top_level.txt +0 -0
  89. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/setup.cfg +0 -0
  90. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/__init__.py +0 -0
  91. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_configure/__init__.py +0 -0
  92. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_configure/test_configure_set.py +0 -0
  93. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_configure/test_prompt_for_config.py +0 -0
  94. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_configure/test_validate_input.py +0 -0
  95. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_credits/__init__.py +0 -0
  96. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_devices/__init__.py +0 -0
  97. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_devices/test_devices_list.py +0 -0
  98. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_devices/test_validations.py +0 -0
  99. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/__init__.py +0 -0
  100. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_activate/__init__.py +0 -0
  101. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_activate/test_activate_pyenv.py +0 -0
  102. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_activate/test_find_shell_rc.py +0 -0
  103. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_activate/test_print_activate_command.py +0 -0
  104. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_app/__init__.py +0 -0
  105. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_app/test_envs_activate.py +0 -0
  106. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_app/test_envs_create.py +0 -0
  107. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_app/test_envs_list.py +0 -0
  108. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_app/test_envs_remove.py +0 -0
  109. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_create/__init__.py +0 -0
  110. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_create/test_create_qbraid_env_assets.py +0 -0
  111. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_create/test_replace_str.py +0 -0
  112. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_create/test_update_state_json.py +0 -0
  113. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_data_handling/__init__.py +0 -0
  114. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_data_handling/test_installed_envs_data.py +0 -0
  115. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_data_handling/test_is_valid_env_name.py +0 -0
  116. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_data_handling/test_request_delete_env.py +0 -0
  117. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_envs/test_data_handling/test_validate_env_name.py +0 -0
  118. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/__init__.py +0 -0
  119. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_app/__init__.py +0 -0
  120. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_app/test_jobs_disable.py +0 -0
  121. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_app/test_jobs_enable.py +0 -0
  122. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_app/test_jobs_list.py +0 -0
  123. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_app/test_jobs_state.py +0 -0
  124. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_toggle_braket/__init__.py +0 -0
  125. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_toggle_braket/test_confirm_updates.py +0 -0
  126. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_toggle_braket/test_disable_braket.py +0 -0
  127. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_toggle_braket/test_enable_braket.py +0 -0
  128. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_toggle_braket/test_get_package_data.py +0 -0
  129. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_validation/__init__.py +0 -0
  130. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_validation/test_get_state.py +0 -0
  131. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_validation/test_handle_jobs_state.py +0 -0
  132. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_validation/test_run_progress_get_state.py +0 -0
  133. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_jobs/test_validation/test_validate_library.py +0 -0
  134. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_kernels/__init__.py +0 -0
  135. {qbraid_cli-0.8.0.dev7 → qbraid_cli-0.8.1a0}/tests/test_kernels/test_kernels_list.py +0 -0
@@ -0,0 +1,4 @@
1
+ QBRAID_API_KEY= # YOURAPIKEY
2
+ QBRAID_ENVS_PATH= # default: ~/.qbraid/environments
3
+ QBRAID_CONFIG_FILE= # default: ~/.qbraid/qbraidrc
4
+ QBRAID_CLI_SHOW_PROGRESS= # default: true
@@ -20,12 +20,12 @@ jobs:
20
20
  cache: pip
21
21
  - name: Install dependencies
22
22
  run: |
23
- python -m pip install --upgrade pip setuptools
24
- python -m pip install -r docs/requirements.txt
23
+ python -m pip install --upgrade pip setuptools build
25
24
  - name: Build & install package
26
25
  run: |
27
26
  python -m build .
28
27
  python -m pip install dist/*.whl
28
+ tools/install_wheel_extras.sh dist --extra docs
29
29
  - name: Generate docs assets
30
30
  run: |
31
31
  python -c "import pathlib; pathlib.Path('docs/tree').mkdir(parents=True, exist_ok=True)"
@@ -18,17 +18,11 @@ jobs:
18
18
  - name: Install dependencies
19
19
  run: |
20
20
  pip install --upgrade pip
21
- pip install black isort pylint
21
+ pip install black isort pylint qbraid-cli
22
22
  - name: Check isort, black, pylint
23
23
  run: |
24
24
  black --check qbraid_cli tests tools
25
25
  isort --check-only qbraid_cli tests tools
26
- # if pylint qbraid_cli tests tools --disable=C0415,R0914,W0511 2>&1 | grep 'Your code has been rated at 10\.00/10' > /dev/null; then
27
- # echo "Perfect pylint score!"
28
- # else
29
- # echo "Pylint score is not 10/10."
30
- # exit 1
31
- # fi
32
26
  - name: Check copyright headers
33
27
  run: |
34
- python tools/verify_headers.py qbraid_cli tests tools --skip qbraid_cli/_version.py
28
+ qbraid admin headers qbraid_cli tests tools
@@ -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@v3
13
+ with:
14
+ fetch-depth: 1
15
+
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v4
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)
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,8 +1,6 @@
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:
@@ -18,7 +16,7 @@ jobs:
18
16
  - name: Set up Python
19
17
  uses: actions/setup-python@v4
20
18
  with:
21
- python-version: '3.10'
19
+ python-version: '3.11'
22
20
 
23
21
  - name: Build binary wheel + source tarball
24
22
  run: |
@@ -10,9 +10,9 @@ build:
10
10
  tools:
11
11
  python: "3.10"
12
12
  commands:
13
- - pip install -r docs/requirements.txt
14
13
  - python -m build .
15
14
  - python -m pip install dist/*.whl
15
+ - tools/install_wheel_extras.sh dist --extra docs
16
16
  - mkdir -p docs/tree
17
17
  - rm -f docs/tree/*.rst
18
18
  - typer qbraid_cli.main utils docs --name=qbraid --output=docs/tree/qbraid.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qbraid-cli
3
- Version: 0.8.0.dev7
3
+ Version: 0.8.1a0
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
@@ -39,7 +39,7 @@ Requires-Dist: isort; extra == "dev"
39
39
  Requires-Dist: pylint; extra == "dev"
40
40
  Requires-Dist: pytest; extra == "dev"
41
41
  Provides-Extra: docs
42
- Requires-Dist: sphinx~=7.2.6; extra == "docs"
42
+ Requires-Dist: sphinx<7.4.0,>=7.2.6; extra == "docs"
43
43
  Requires-Dist: sphinx-rtd-theme<2.1,>=1.3; extra == "docs"
44
44
  Requires-Dist: docutils<0.22; extra == "docs"
45
45
  Requires-Dist: toml; extra == "docs"
@@ -58,17 +58,37 @@ Requires-Dist: typer; extra == "docs"
58
58
 
59
59
  Command Line Interface for interacting with all parts of the qBraid platform.
60
60
 
61
- The **qBraid CLI** is a specialized command-line interface tool designed *exclusively* for use within the [qBraid Lab](https://docs.qbraid.com/projects/lab/en/latest/lab/overview.html) platform. It is not intended for local installations or use outside the qBraid Lab environment. This tool ensures seamless integration and optimized performance specifically tailored for qBraid Lab's unique cloud-based quantum computing ecosystem.
61
+ 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/projects/lab/en/latest/lab/overview.html) platform, the CLI now supports local installations as well. This enhancement broadens access to features like [qBraid Quantum Jobs](https://docs.qbraid.com/projects/lab/en/latest/lab/quantum_jobs.html), enabling direct acess to QPU devices from leading providers like IonQ, Oxford Quantum Circuits, QuEra, and Rigetti, as well as on-demand simulators from AWS, all using qBraid credits, with no additional access keys required.
62
62
 
63
63
  ## Getting Started
64
64
 
65
- To use the qBraid CLI, login to qBraid (or create an account), launch Lab, and then open Terminal. You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/projects/lab/en/latest/lab/notebooks.html) using the ``!`` operator. See [quantum jobs example](https://github.com/qBraid/qbraid-lab-demo/blob/045c7a8fbdcae66a7e64533dd9fe0e981dc02cf4/qbraid_lab/quantum_jobs/aws_quantum_jobs.ipynb).
65
+ The qBraid-CLI comes pre-installed and pre-configured in qBraid Lab:
66
66
 
67
67
  - [Launch qBraid Lab &rarr;](https://lab.qbraid.com/)
68
68
  - [Make an account &rarr;](https://account.qbraid.com/)
69
69
 
70
70
  For help, see qBraid Lab User Guide: [Getting Started](https://docs.qbraid.com/projects/lab/en/latest/lab/getting_started.html).
71
71
 
72
+ You can also install the qBraid-CLI from PyPI with:
73
+
74
+ ```shell
75
+ pip install qbraid-cli
76
+ ```
77
+
78
+ ## Local configuration
79
+
80
+ After installation, you must configure your account credentials to use the CLI locally:
81
+
82
+ 1. Create a qBraid account or log in to your existing account by visiting
83
+ [account.qbraid.com](https://account.qbraid.com/)
84
+ 2. Copy your API Key token from the left side of
85
+ your [account page](https://account.qbraid.com/):
86
+ 3. Save your API key from step 2 in local configuration file `~/.qbraid/qbraidrc` using:
87
+
88
+ ```shell
89
+ $ qbraid configure
90
+ ```
91
+
72
92
  ## Basic Commands
73
93
 
74
94
  ```shell
@@ -141,3 +161,25 @@ To get the version of the qBraid CLI:
141
161
  ```shell
142
162
  $ qbraid --version
143
163
  ```
164
+
165
+ ## Magic Commands
166
+
167
+ You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/projects/lab/en/latest/lab/notebooks.html) using IPython [magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html). First, configure the qBraid magic commands extension using:
168
+
169
+ ```shell
170
+ $ qbraid configure magic
171
+ ```
172
+
173
+ 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:
174
+
175
+ ```python
176
+ In [1]: %load_ext qbraid_magic
177
+ ```
178
+
179
+ Now you can continue to use the qBraid-CLI as normal from within your Jupyter notebook using the magic ``%`` operator, e.g.
180
+
181
+ ```python
182
+ In [2]: %qbraid jobs state
183
+
184
+ In [3]: %qbraid jobs enable braket -y
185
+ ```
@@ -9,17 +9,37 @@
9
9
 
10
10
  Command Line Interface for interacting with all parts of the qBraid platform.
11
11
 
12
- The **qBraid CLI** is a specialized command-line interface tool designed *exclusively* for use within the [qBraid Lab](https://docs.qbraid.com/projects/lab/en/latest/lab/overview.html) platform. It is not intended for local installations or use outside the qBraid Lab environment. This tool ensures seamless integration and optimized performance specifically tailored for qBraid Lab's unique cloud-based quantum computing ecosystem.
12
+ 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/projects/lab/en/latest/lab/overview.html) platform, the CLI now supports local installations as well. This enhancement broadens access to features like [qBraid Quantum Jobs](https://docs.qbraid.com/projects/lab/en/latest/lab/quantum_jobs.html), enabling direct acess to QPU devices from leading providers like IonQ, Oxford Quantum Circuits, QuEra, and Rigetti, as well as on-demand simulators from AWS, all using qBraid credits, with no additional access keys required.
13
13
 
14
14
  ## Getting Started
15
15
 
16
- To use the qBraid CLI, login to qBraid (or create an account), launch Lab, and then open Terminal. You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/projects/lab/en/latest/lab/notebooks.html) using the ``!`` operator. See [quantum jobs example](https://github.com/qBraid/qbraid-lab-demo/blob/045c7a8fbdcae66a7e64533dd9fe0e981dc02cf4/qbraid_lab/quantum_jobs/aws_quantum_jobs.ipynb).
16
+ The qBraid-CLI comes pre-installed and pre-configured in qBraid Lab:
17
17
 
18
18
  - [Launch qBraid Lab &rarr;](https://lab.qbraid.com/)
19
19
  - [Make an account &rarr;](https://account.qbraid.com/)
20
20
 
21
21
  For help, see qBraid Lab User Guide: [Getting Started](https://docs.qbraid.com/projects/lab/en/latest/lab/getting_started.html).
22
22
 
23
+ You can also install the qBraid-CLI from PyPI with:
24
+
25
+ ```shell
26
+ pip install qbraid-cli
27
+ ```
28
+
29
+ ## Local configuration
30
+
31
+ After installation, you must configure your account credentials to use the CLI locally:
32
+
33
+ 1. Create a qBraid account or log in to your existing account by visiting
34
+ [account.qbraid.com](https://account.qbraid.com/)
35
+ 2. Copy your API Key token from the left side of
36
+ your [account page](https://account.qbraid.com/):
37
+ 3. Save your API key from step 2 in local configuration file `~/.qbraid/qbraidrc` using:
38
+
39
+ ```shell
40
+ $ qbraid configure
41
+ ```
42
+
23
43
  ## Basic Commands
24
44
 
25
45
  ```shell
@@ -92,3 +112,25 @@ To get the version of the qBraid CLI:
92
112
  ```shell
93
113
  $ qbraid --version
94
114
  ```
115
+
116
+ ## Magic Commands
117
+
118
+ You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/projects/lab/en/latest/lab/notebooks.html) using IPython [magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html). First, configure the qBraid magic commands extension using:
119
+
120
+ ```shell
121
+ $ qbraid configure magic
122
+ ```
123
+
124
+ 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:
125
+
126
+ ```python
127
+ In [1]: %load_ext qbraid_magic
128
+ ```
129
+
130
+ Now you can continue to use the qBraid-CLI as normal from within your Jupyter notebook using the magic ``%`` operator, e.g.
131
+
132
+ ```python
133
+ In [2]: %qbraid jobs state
134
+
135
+ In [3]: %qbraid jobs enable braket -y
136
+ ```
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "qbraid-cli"
7
- version = "0.8.0.dev7"
7
+ version = "0.8.1-alpha"
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" }]
@@ -45,7 +45,7 @@ Discord = "https://discord.gg/KugF6Cnncm"
45
45
  [project.optional-dependencies]
46
46
  jobs = ["amazon-braket-sdk>=1.48.1"]
47
47
  dev = ["black", "isort", "pylint", "pytest"]
48
- docs = ["sphinx~=7.2.6", "sphinx-rtd-theme>=1.3,<2.1", "docutils<0.22", "toml", "build", "m2r", "typer"]
48
+ docs = ["sphinx>=7.2.6,<7.4.0", "sphinx-rtd-theme>=1.3,<2.1", "docutils<0.22", "toml", "build", "m2r", "typer"]
49
49
 
50
50
  [project.scripts]
51
51
  qbraid = "qbraid_cli.main:app"
@@ -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+g8891b4e'
16
- __version_tuple__ = version_tuple = (0, 1, 'dev1', 'g8891b4e')
15
+ __version__ = version = '0.1.dev1+gc908824'
16
+ __version_tuple__ = version_tuple = (0, 1, 'dev1', 'gc908824')
@@ -6,11 +6,13 @@ Script to verify qBraid copyright file headers
6
6
 
7
7
  """
8
8
  import os
9
- import sys
10
9
  from typing import List, Optional
11
10
 
11
+ import typer
12
12
  from rich.console import Console
13
13
 
14
+ from qbraid_cli.handlers import handle_error
15
+
14
16
  # pylint: disable=too-many-branches,too-many-statements
15
17
 
16
18
  DEFAULT_HEADER = """# Copyright (c) 2024, qBraid Development Team
@@ -43,19 +45,17 @@ def check_and_fix_headers(
43
45
  """Script to add or verify qBraid copyright file headers"""
44
46
  try:
45
47
  header = HEADER_TYPES[header_type]
46
- except KeyError as err:
47
- raise ValueError(
48
- f"Invalid header type: {HEADER_TYPES}. Expected one of {list(HEADER_TYPES.keys())}"
49
- ) from err
48
+ except KeyError:
49
+ handle_error(
50
+ error_type="ValueError",
51
+ message=(
52
+ f"Invalid header type: {HEADER_TYPES}. Expected one of {list(HEADER_TYPES.keys())}"
53
+ ),
54
+ )
50
55
 
51
56
  for path in src_paths:
52
57
  if not os.path.exists(path):
53
- sys.stderr.write(
54
- f"Usage: qbraid verify_headers [OPTIONS] SRC ...\n"
55
- f"Try 'qbraid verify_headers --help' for help.\n\n"
56
- f"Error: Invalid value for 'SRC ...': Path '{path}' does not exist.\n"
57
- )
58
- sys.exit(1)
58
+ handle_error(error_type="FileNotFoundError", message=f"Path '{path}' does not exist.")
59
59
 
60
60
  header_2023 = header.replace("2024", "2023")
61
61
 
@@ -139,8 +139,11 @@ def check_and_fix_headers(
139
139
  replace_or_add_header(item, fix)
140
140
  checked += 1
141
141
  else:
142
- failed_headers.append(item)
143
- print(f"File or directory not found: {item}")
142
+ handle_error(error_type="FileNotFoundError", message=f"Path '{item}' does not exist.")
143
+
144
+ if checked == 0:
145
+ console.print("[bold]No Python files present. Nothing to do[/bold] 😴")
146
+ raise typer.Exit(0)
144
147
 
145
148
  if not fix:
146
149
  if failed_headers:
@@ -160,34 +163,31 @@ def check_and_fix_headers(
160
163
 
161
164
  failed_msg = f"[bold][blue]{num_failed}[/blue] file{s1} need{s2} updating{punc}[/bold]"
162
165
  console.print(f"{failed_msg}{passed_msg}")
163
- elif checked == 0:
164
- console.print("[bold]No Python files present. Nothing to do[/bold] 😴")
165
- else:
166
- s_checked = "" if checked == 1 else "s"
167
- console.print("[bold]All done![/bold] 🚀 ")
168
- console.print(f"[blue]{checked}[/blue] file{s_checked} would be left unchanged.")
169
-
166
+ raise typer.Exit(1)
167
+
168
+ s_checked = "" if checked == 1 else "s"
169
+ console.print("[bold]All done![/bold] 🚀 ")
170
+ console.print(f"[blue]{checked}[/blue] file{s_checked} would be left unchanged.")
171
+ raise typer.Exit(0)
172
+
173
+ for file in fixed_headers:
174
+ console.print(f"[bold]fixed {file}[/bold]")
175
+ num_fixed = len(fixed_headers)
176
+ num_ok = checked - num_fixed
177
+ s_fixed = "" if num_fixed == 1 else "s"
178
+ s_ok = "" if num_ok == 1 else "s"
179
+ console.print("\n[bold]All done![/bold] ✨ 🚀 ✨")
180
+ if num_ok > 0:
181
+ punc = ", "
182
+ unchanged_msg = f"[blue]{num_ok}[/blue] file{s_ok} left unchanged."
170
183
  else:
171
- for file in fixed_headers:
172
- console.print(f"[bold]fixed {file}[/bold]")
173
- num_fixed = len(fixed_headers)
174
- num_ok = checked - num_fixed
175
- s_fixed = "" if num_fixed == 1 else "s"
176
- s_ok = "" if num_ok == 1 else "s"
177
- console.print("\n[bold]All done![/bold] ✨ 🚀 ✨")
178
- if num_ok > 0:
179
- punc = ", "
180
- unchanged_msg = f"[blue]{num_ok}[/blue] file{s_ok} left unchanged."
181
- else:
182
- punc = "."
183
- unchanged_msg = ""
184
+ punc = "."
185
+ unchanged_msg = ""
184
186
 
185
- if num_fixed > 0:
186
- fixed_msg = f"[bold][blue]{num_fixed}[/blue] file{s_fixed} fixed{punc}[/bold]"
187
- else:
188
- fixed_msg = ""
187
+ if num_fixed > 0:
188
+ fixed_msg = f"[bold][blue]{num_fixed}[/blue] file{s_fixed} fixed{punc}[/bold]"
189
+ else:
190
+ fixed_msg = ""
189
191
 
190
- if fixed_msg or unchanged_msg:
191
- console.print(f"{fixed_msg}{unchanged_msg}")
192
- else:
193
- console.print("[bold]No Python files present. Nothing to do[/bold] 😴")
192
+ console.print(f"{fixed_msg}{unchanged_msg}")
193
+ raise typer.Exit(0)
@@ -24,8 +24,11 @@ def credits_value():
24
24
  return client.user_credits_value()
25
25
 
26
26
  qbraid_credits: float = run_progress_task(get_credits)
27
- credits_text = typer.style(f"{qbraid_credits:.2f}", fg=typer.colors.GREEN, bold=True)
28
- typer.secho(f"\nqBraid credits: {credits_text}")
27
+ typer.secho(
28
+ f"\n{typer.style('qBraid credits remaining:')} "
29
+ f"{typer.style(f'{qbraid_credits:.4f}', fg=typer.colors.MAGENTA, bold=True)}",
30
+ nl=True, # Ensure a newline after output (default is True)
31
+ )
29
32
 
30
33
 
31
34
  if __name__ == "__main__":
@@ -7,6 +7,7 @@ and executing operations with progress tracking within the qBraid CLI.
7
7
 
8
8
  """
9
9
 
10
+ import os
10
11
  import traceback
11
12
  from pathlib import Path
12
13
  from typing import Any, Callable, List, Optional, Union
@@ -18,6 +19,11 @@ from rich.progress import Progress, SpinnerColumn, TextColumn
18
19
  from .exceptions import DEFAULT_ERROR_MESSAGE, QbraidException
19
20
 
20
21
 
22
+ def _should_display_progress():
23
+ """Whether to display rich progress UI."""
24
+ return os.getenv("QBRAID_CLI_SHOW_PROGRESS", "true").lower() in ["true", "1", "t", "y", "yes"]
25
+
26
+
21
27
  def handle_error(
22
28
  error_type: Optional[str] = None, message: Optional[str] = None, include_traceback: bool = True
23
29
  ) -> None:
@@ -104,6 +110,13 @@ def run_progress_task(
104
110
  Raises:
105
111
  typer.Exit: If the operation fails, after displaying the error message using typer.secho.
106
112
  """
113
+ if not _should_display_progress():
114
+ try:
115
+ return operation(*args, **kwargs)
116
+ except Exception as err: # pylint: disable=broad-exception-caught
117
+ custom_message = error_message if error_message else str(err)
118
+ return handle_error(message=custom_message)
119
+
107
120
  console = Console()
108
121
  with Progress(
109
122
  "[progress.description]{task.description}",
@@ -117,9 +130,9 @@ def run_progress_task(
117
130
  result = operation(*args, **kwargs)
118
131
  progress.update(task, completed=100, status="Done")
119
132
  return result
120
- except Exception as e: # pylint: disable=broad-exception-caught
133
+ except Exception as err: # pylint: disable=broad-exception-caught
121
134
  progress.update(task, completed=100, status="Failed")
122
- custom_message = error_message if error_message else str(e)
135
+ custom_message = error_message if error_message else str(err)
123
136
  return handle_error(message=custom_message)
124
137
 
125
138
 
@@ -30,10 +30,11 @@ app.add_typer(kernels_app, name="kernels")
30
30
  def version_callback(value: bool):
31
31
  """Show the version and exit."""
32
32
  if value:
33
- from ._version import __version__
33
+ # pylint: disable-next=import-error
34
+ from ._version import __version__ # type: ignore
34
35
 
35
36
  typer.echo(f"qbraid-cli/{__version__}")
36
- raise typer.Exit()
37
+ raise typer.Exit(0)
37
38
 
38
39
 
39
40
  def show_banner():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qbraid-cli
3
- Version: 0.8.0.dev7
3
+ Version: 0.8.1a0
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
@@ -39,7 +39,7 @@ Requires-Dist: isort; extra == "dev"
39
39
  Requires-Dist: pylint; extra == "dev"
40
40
  Requires-Dist: pytest; extra == "dev"
41
41
  Provides-Extra: docs
42
- Requires-Dist: sphinx~=7.2.6; extra == "docs"
42
+ Requires-Dist: sphinx<7.4.0,>=7.2.6; extra == "docs"
43
43
  Requires-Dist: sphinx-rtd-theme<2.1,>=1.3; extra == "docs"
44
44
  Requires-Dist: docutils<0.22; extra == "docs"
45
45
  Requires-Dist: toml; extra == "docs"
@@ -58,17 +58,37 @@ Requires-Dist: typer; extra == "docs"
58
58
 
59
59
  Command Line Interface for interacting with all parts of the qBraid platform.
60
60
 
61
- The **qBraid CLI** is a specialized command-line interface tool designed *exclusively* for use within the [qBraid Lab](https://docs.qbraid.com/projects/lab/en/latest/lab/overview.html) platform. It is not intended for local installations or use outside the qBraid Lab environment. This tool ensures seamless integration and optimized performance specifically tailored for qBraid Lab's unique cloud-based quantum computing ecosystem.
61
+ 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/projects/lab/en/latest/lab/overview.html) platform, the CLI now supports local installations as well. This enhancement broadens access to features like [qBraid Quantum Jobs](https://docs.qbraid.com/projects/lab/en/latest/lab/quantum_jobs.html), enabling direct acess to QPU devices from leading providers like IonQ, Oxford Quantum Circuits, QuEra, and Rigetti, as well as on-demand simulators from AWS, all using qBraid credits, with no additional access keys required.
62
62
 
63
63
  ## Getting Started
64
64
 
65
- To use the qBraid CLI, login to qBraid (or create an account), launch Lab, and then open Terminal. You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/projects/lab/en/latest/lab/notebooks.html) using the ``!`` operator. See [quantum jobs example](https://github.com/qBraid/qbraid-lab-demo/blob/045c7a8fbdcae66a7e64533dd9fe0e981dc02cf4/qbraid_lab/quantum_jobs/aws_quantum_jobs.ipynb).
65
+ The qBraid-CLI comes pre-installed and pre-configured in qBraid Lab:
66
66
 
67
67
  - [Launch qBraid Lab &rarr;](https://lab.qbraid.com/)
68
68
  - [Make an account &rarr;](https://account.qbraid.com/)
69
69
 
70
70
  For help, see qBraid Lab User Guide: [Getting Started](https://docs.qbraid.com/projects/lab/en/latest/lab/getting_started.html).
71
71
 
72
+ You can also install the qBraid-CLI from PyPI with:
73
+
74
+ ```shell
75
+ pip install qbraid-cli
76
+ ```
77
+
78
+ ## Local configuration
79
+
80
+ After installation, you must configure your account credentials to use the CLI locally:
81
+
82
+ 1. Create a qBraid account or log in to your existing account by visiting
83
+ [account.qbraid.com](https://account.qbraid.com/)
84
+ 2. Copy your API Key token from the left side of
85
+ your [account page](https://account.qbraid.com/):
86
+ 3. Save your API key from step 2 in local configuration file `~/.qbraid/qbraidrc` using:
87
+
88
+ ```shell
89
+ $ qbraid configure
90
+ ```
91
+
72
92
  ## Basic Commands
73
93
 
74
94
  ```shell
@@ -141,3 +161,25 @@ To get the version of the qBraid CLI:
141
161
  ```shell
142
162
  $ qbraid --version
143
163
  ```
164
+
165
+ ## Magic Commands
166
+
167
+ You can also access the CLI directly from within [Notebooks](https://docs.qbraid.com/projects/lab/en/latest/lab/notebooks.html) using IPython [magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html). First, configure the qBraid magic commands extension using:
168
+
169
+ ```shell
170
+ $ qbraid configure magic
171
+ ```
172
+
173
+ 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:
174
+
175
+ ```python
176
+ In [1]: %load_ext qbraid_magic
177
+ ```
178
+
179
+ Now you can continue to use the qBraid-CLI as normal from within your Jupyter notebook using the magic ``%`` operator, e.g.
180
+
181
+ ```python
182
+ In [2]: %qbraid jobs state
183
+
184
+ In [3]: %qbraid jobs enable braket -y
185
+ ```
@@ -12,13 +12,12 @@ pyproject.toml
12
12
  .github/workflows/docs.yml
13
13
  .github/workflows/format.yml
14
14
  .github/workflows/main.yml
15
+ .github/workflows/pre-release.yml
15
16
  .github/workflows/publish.yml
16
- .github/workflows/test-publish.yml
17
17
  docs/Makefile
18
18
  docs/conf.py
19
19
  docs/index.rst
20
20
  docs/make.bat
21
- docs/requirements.txt
22
21
  docs/_static/api-key.png
23
22
  docs/_static/favicon.ico
24
23
  docs/_static/logo.png
@@ -124,5 +123,7 @@ tests/test_jobs/test_validation/test_run_progress_get_state.py
124
123
  tests/test_jobs/test_validation/test_validate_library.py
125
124
  tests/test_kernels/__init__.py
126
125
  tests/test_kernels/test_kernels_list.py
126
+ tools/create_dev_build.sh
127
+ tools/install_wheel_extras.sh
127
128
  tools/split_rst.py
128
- tools/verify_headers.py
129
+ tools/stamp_pre_release.py
@@ -11,7 +11,7 @@ pylint
11
11
  pytest
12
12
 
13
13
  [docs]
14
- sphinx~=7.2.6
14
+ sphinx<7.4.0,>=7.2.6
15
15
  sphinx-rtd-theme<2.1,>=1.3
16
16
  docutils<0.22
17
17
  toml
@@ -28,7 +28,7 @@ def test_credits_value_success():
28
28
  session = QbraidSession(api_key=qbraid_api_key)
29
29
  session.save_config()
30
30
 
31
- mock_response = float(100)
31
+ mock_response = float(100.457321)
32
32
  mock_qbraid_client.return_value = mock_response
33
33
 
34
34
  # Setup mock for run_progress_task to return the credits directly
@@ -36,6 +36,6 @@ def test_credits_value_success():
36
36
 
37
37
  result = runner.invoke(credits_app)
38
38
 
39
- assert "qBraid credits:" in result.output
40
- assert "100.00" in result.output
39
+ assert "qBraid credits remaining:" in result.output
40
+ assert "100.4573" in result.output
41
41
  assert result.exit_code == 0