qbraid-core 0.1.4.dev0__tar.gz → 0.1.4.dev1__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 (88) hide show
  1. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/PKG-INFO +1 -1
  2. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/pyproject.toml +2 -2
  3. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/_version.py +2 -2
  4. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/system/packages.py +50 -0
  5. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core.egg-info/PKG-INFO +1 -1
  6. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/system/test_packages.py +55 -1
  7. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  8. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  9. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  10. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.github/workflows/docs.yml +0 -0
  11. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.github/workflows/format.yml +0 -0
  12. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.github/workflows/main.yml +0 -0
  13. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.github/workflows/publish.yml +0 -0
  14. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.github/workflows/test-publish.yml +0 -0
  15. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.gitignore +0 -0
  16. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/.readthedocs.yaml +0 -0
  17. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/LICENSE +0 -0
  18. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/MANIFEST.in +0 -0
  19. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/README.md +0 -0
  20. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/Makefile +0 -0
  21. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/_static/cards/jupyter.png +0 -0
  22. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/_static/cards/python.png +0 -0
  23. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/_static/cards/terminal.png +0 -0
  24. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/_static/css/custom.css +0 -0
  25. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/_static/css/s4defs-roles.css +0 -0
  26. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/_static/favicon.ico +0 -0
  27. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/_static/logo.png +0 -0
  28. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/api/qbraid_core.rst +0 -0
  29. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/api/qbraid_core.services.rst +0 -0
  30. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/api/qbraid_core.system.rst +0 -0
  31. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/conf.py +0 -0
  32. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/index.rst +0 -0
  33. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/docs/make.bat +0 -0
  34. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/__init__.py +0 -0
  35. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/_compat.py +0 -0
  36. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/client.py +0 -0
  37. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/config.py +0 -0
  38. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/exceptions.py +0 -0
  39. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/registry.py +0 -0
  40. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/retry.py +0 -0
  41. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/__init__.py +0 -0
  42. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/admin/__init__.py +0 -0
  43. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/admin/client.py +0 -0
  44. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/environments/__init__.py +0 -0
  45. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/environments/client.py +0 -0
  46. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/environments/create.py +0 -0
  47. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/environments/exceptions.py +0 -0
  48. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/environments/paths.py +0 -0
  49. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/environments/state.py +0 -0
  50. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/environments/validate.py +0 -0
  51. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/quantum/__init__.py +0 -0
  52. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/quantum/adapter.py +0 -0
  53. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/quantum/client.py +0 -0
  54. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/quantum/exceptions.py +0 -0
  55. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/quantum/proxy.py +0 -0
  56. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/services/quantum/proxy_braket.py +0 -0
  57. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/sessions.py +0 -0
  58. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/system/__init__.py +0 -0
  59. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/system/exceptions.py +0 -0
  60. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/system/executables.py +0 -0
  61. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/system/generic.py +0 -0
  62. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/system/threader.py +0 -0
  63. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core/system/versions.py +0 -0
  64. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core.egg-info/SOURCES.txt +0 -0
  65. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core.egg-info/dependency_links.txt +0 -0
  66. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core.egg-info/requires.txt +0 -0
  67. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/qbraid_core.egg-info/top_level.txt +0 -0
  68. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/setup.cfg +0 -0
  69. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/__init__.py +0 -0
  70. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/__init__.py +0 -0
  71. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/conftest.py +0 -0
  72. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/fixtures/__init__.py +0 -0
  73. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/fixtures/environments.py +0 -0
  74. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/test_client.py +0 -0
  75. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/test_create.py +0 -0
  76. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/test_paths.py +0 -0
  77. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/test_state.py +0 -0
  78. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/environments/test_validate.py +0 -0
  79. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/quantum/test_aws_configure.py +0 -0
  80. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/quantum/test_proxy.py +0 -0
  81. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/system/test_executables.py +0 -0
  82. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/system/test_generic.py +0 -0
  83. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/system/test_versions.py +0 -0
  84. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/top_level/test_client.py +0 -0
  85. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/top_level/test_compat.py +0 -0
  86. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/top_level/test_config.py +0 -0
  87. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tests/top_level/test_sessions.py +0 -0
  88. {qbraid_core-0.1.4.dev0 → qbraid_core-0.1.4.dev1}/tools/verify_headers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qbraid-core
3
- Version: 0.1.4.dev0
3
+ Version: 0.1.4.dev1
4
4
  Summary: Python library with core abstractions for software development in the qBraid ecosystem.
5
5
  Author-email: qBraid Development Team <contact@qbraid.com>
6
6
  License: Proprietary
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "qbraid-core"
7
- version = "0.1.4.dev0"
7
+ version = "0.1.4.dev1"
8
8
  authors = [
9
9
  {name = "qBraid Development Team", email = "contact@qbraid.com"},
10
10
  ]
@@ -64,4 +64,4 @@ ignore-paths = [
64
64
 
65
65
  [tool.pytest.ini_options]
66
66
  addopts = "-ra"
67
- testpaths = ["tests"]
67
+ testpaths = ["tests"]
@@ -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+gee7f98c'
16
- __version_tuple__ = version_tuple = (0, 1, 'dev1', 'gee7f98c')
15
+ __version__ = version = '0.1.dev1+g27e20d8'
16
+ __version_tuple__ = version_tuple = (0, 1, 'dev1', 'g27e20d8')
@@ -184,3 +184,53 @@ def get_latest_package_version(package: str, prerelease: bool = False) -> str:
184
184
 
185
185
  latest_version = all_versions[-1]
186
186
  return latest_version
187
+
188
+
189
+ def extract_include_sys_site_pkgs_value(file_path: Union[str, Path]) -> Optional[bool]:
190
+ """Extracts the value of the 'include-system-site-packages' setting from a file."""
191
+ try:
192
+ with open(file_path, "r", encoding="utf-8") as file:
193
+ for line in file:
194
+ if line.startswith("include-system-site-packages"):
195
+ parts = line.strip().split("=")
196
+ if len(parts) == 2:
197
+ value = parts[1].strip().lower()
198
+ if value == "true":
199
+ return True
200
+ if value == "false":
201
+ return False
202
+ break
203
+ except FileNotFoundError as err:
204
+ raise FileNotFoundError("The specified file was not found.") from err
205
+ except Exception as err:
206
+ raise QbraidSystemError("An error occurred while reading the file.") from err
207
+
208
+ return None
209
+
210
+
211
+ def set_include_sys_site_pkgs_value(value: bool, file_path: Union[str, Path]) -> None:
212
+ """Sets the value of the 'include-system-site-packages' setting in a file."""
213
+ try:
214
+ with open(file_path, "r", encoding="utf-8") as file:
215
+ lines = file.readlines()
216
+
217
+ # Track whether the target line was found
218
+ found = False
219
+ for i, line in enumerate(lines):
220
+ if line.startswith("include-system-site-packages"):
221
+ lines[i] = f"include-system-site-packages = {str(value).lower()}\n"
222
+ found = True
223
+ break
224
+
225
+ if not found:
226
+ raise ValueError(
227
+ "The 'include-system-site-packages' setting was not found in the file."
228
+ )
229
+
230
+ with open(file_path, "w", encoding="utf-8") as file:
231
+ file.writelines(lines)
232
+
233
+ except FileNotFoundError as err:
234
+ raise FileNotFoundError("The specified file was not found.") from err
235
+ except Exception as err:
236
+ raise QbraidSystemError("An error occurred while updating the file") from err
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qbraid-core
3
- Version: 0.1.4.dev0
3
+ Version: 0.1.4.dev1
4
4
  Summary: Python library with core abstractions for software development in the qBraid ecosystem.
5
5
  Author-email: qBraid Development Team <contact@qbraid.com>
6
6
  License: Proprietary
@@ -7,17 +7,19 @@ Unit tests for qBraid core helper functions related to system site-packages.
7
7
  """
8
8
  import sys
9
9
  from pathlib import Path
10
- from unittest.mock import MagicMock, patch
10
+ from unittest.mock import MagicMock, mock_open, patch
11
11
 
12
12
  import pytest
13
13
 
14
14
  from qbraid_core.exceptions import QbraidException
15
15
  from qbraid_core.system.exceptions import QbraidSystemError
16
16
  from qbraid_core.system.packages import (
17
+ extract_include_sys_site_pkgs_value,
17
18
  get_active_site_packages_path,
18
19
  get_latest_package_version,
19
20
  get_local_package_path,
20
21
  get_local_package_version,
22
+ set_include_sys_site_pkgs_value,
21
23
  )
22
24
 
23
25
  # pylint: disable=unused-argument
@@ -150,3 +152,55 @@ def test_get_local_package_version_alt_python(python_path):
150
152
  with patch("subprocess.run") as mock_run:
151
153
  mock_run.return_value = MagicMock(stdout="2.31.0\n")
152
154
  assert get_local_package_version("requests", python_path=python_path) == "2.31.0"
155
+
156
+
157
+ def test_extract_true_value():
158
+ """Test extract_include_sys_site_pkgs_value function with 'true' value."""
159
+ with patch("builtins.open", mock_open(read_data="include-system-site-packages = true")):
160
+ assert extract_include_sys_site_pkgs_value("fake_path") is True
161
+
162
+
163
+ def test_extract_false_value():
164
+ """Test extract_include_sys_site_pkgs_value function with 'false' value."""
165
+ with patch("builtins.open", mock_open(read_data="include-system-site-packages = false")):
166
+ assert extract_include_sys_site_pkgs_value("fake_path") is False
167
+
168
+
169
+ def test_extract_value_no_target_line():
170
+ """Test extract_include_sys_site_pkgs_value function with no target line."""
171
+ with patch("builtins.open", mock_open(read_data="some-other-setting = true")):
172
+ assert extract_include_sys_site_pkgs_value("fake_path") is None
173
+
174
+
175
+ def test_extract_value_improper_format():
176
+ """Test extract_include_sys_site_pkgs_value function with improper format."""
177
+ with patch("builtins.open", mock_open(read_data="include-system-site-packages true")):
178
+ assert extract_include_sys_site_pkgs_value("fake_path") is None
179
+
180
+
181
+ def test_extract_value_file_not_found_error():
182
+ """Test extract_include_sys_site_pkgs_value function with FileNotFoundError."""
183
+ with patch("builtins.open", side_effect=FileNotFoundError):
184
+ with pytest.raises(FileNotFoundError):
185
+ extract_include_sys_site_pkgs_value("nonexistent_path")
186
+
187
+
188
+ def test_extract_value_unexpected_error():
189
+ """Test extract_include_sys_site_pkgs_value function with unexpected error."""
190
+ with patch("builtins.open", side_effect=Exception):
191
+ with pytest.raises(QbraidSystemError):
192
+ extract_include_sys_site_pkgs_value("fake_path")
193
+
194
+
195
+ def test_set_value_file_not_found_error():
196
+ """Test set_include_sys_site_pkgs_value function with FileNotFoundError."""
197
+ with patch("builtins.open", side_effect=FileNotFoundError):
198
+ with pytest.raises(FileNotFoundError):
199
+ set_include_sys_site_pkgs_value(True, "nonexistent_path")
200
+
201
+
202
+ def test_set_value_unexpected_error():
203
+ """Test set_include_sys_site_pkgs_value function with unexpected error."""
204
+ with patch("builtins.open", side_effect=Exception):
205
+ with pytest.raises(QbraidSystemError):
206
+ set_include_sys_site_pkgs_value(True, "fake_path")