qbraid-cli 0.12.1__tar.gz → 0.13.0__tar.gz

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