superquantx 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl

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 (51) hide show
  1. superquantx/__init__.py +24 -12
  2. superquantx/algorithms/__init__.py +1 -1
  3. superquantx/algorithms/base_algorithm.py +36 -36
  4. superquantx/algorithms/hybrid_classifier.py +22 -22
  5. superquantx/algorithms/qaoa.py +29 -28
  6. superquantx/algorithms/quantum_agents.py +57 -56
  7. superquantx/algorithms/quantum_kmeans.py +17 -17
  8. superquantx/algorithms/quantum_nn.py +18 -18
  9. superquantx/algorithms/quantum_pca.py +26 -26
  10. superquantx/algorithms/quantum_svm.py +26 -25
  11. superquantx/algorithms/vqe.py +40 -39
  12. superquantx/algorithms.py +56 -55
  13. superquantx/backends/__init__.py +12 -12
  14. superquantx/backends/base_backend.py +25 -24
  15. superquantx/backends/braket_backend.py +21 -21
  16. superquantx/backends/cirq_backend.py +26 -26
  17. superquantx/backends/ocean_backend.py +38 -38
  18. superquantx/backends/pennylane_backend.py +12 -11
  19. superquantx/backends/qiskit_backend.py +12 -12
  20. superquantx/backends/simulator_backend.py +31 -17
  21. superquantx/backends/tket_backend.py +23 -23
  22. superquantx/circuits.py +25 -25
  23. superquantx/cli/commands.py +6 -7
  24. superquantx/cli/main.py +5 -6
  25. superquantx/client.py +42 -42
  26. superquantx/config.py +14 -14
  27. superquantx/datasets/__init__.py +58 -0
  28. superquantx/datasets/molecular.py +307 -0
  29. superquantx/datasets/preprocessing.py +279 -0
  30. superquantx/datasets/quantum_datasets.py +277 -0
  31. superquantx/datasets/synthetic.py +300 -0
  32. superquantx/exceptions.py +29 -29
  33. superquantx/gates.py +26 -26
  34. superquantx/logging_config.py +29 -29
  35. superquantx/measurements.py +53 -54
  36. superquantx/ml.py +51 -52
  37. superquantx/noise.py +49 -49
  38. superquantx/utils/benchmarking.py +41 -36
  39. superquantx/utils/classical_utils.py +32 -32
  40. superquantx/utils/feature_mapping.py +40 -35
  41. superquantx/utils/optimization.py +28 -26
  42. superquantx/utils/quantum_utils.py +47 -48
  43. superquantx/utils/visualization.py +49 -49
  44. superquantx/version.py +3 -3
  45. {superquantx-0.1.0.dist-info → superquantx-0.1.1.dist-info}/METADATA +18 -16
  46. superquantx-0.1.1.dist-info/RECORD +51 -0
  47. superquantx-0.1.1.dist-info/licenses/LICENSE +180 -0
  48. superquantx-0.1.0.dist-info/RECORD +0 -46
  49. superquantx-0.1.0.dist-info/licenses/LICENSE +0 -21
  50. {superquantx-0.1.0.dist-info → superquantx-0.1.1.dist-info}/WHEEL +0 -0
  51. {superquantx-0.1.0.dist-info → superquantx-0.1.1.dist-info}/entry_points.txt +0 -0
@@ -5,7 +5,6 @@ including fidelity calculations, quantum distances, and entanglement measures.
5
5
  """
6
6
 
7
7
  import warnings
8
- from typing import Tuple
9
8
 
10
9
  import numpy as np
11
10
  from scipy.linalg import sqrtm
@@ -17,18 +16,18 @@ def fidelity(
17
16
  validate: bool = True
18
17
  ) -> float:
19
18
  """Calculate quantum fidelity between two quantum states.
20
-
19
+
21
20
  For pure states |ψ₁⟩ and |ψ₂⟩:
22
21
  F(ψ₁, ψ₂) = |⟨ψ₁|ψ₂⟩|²
23
-
22
+
24
23
  For mixed states ρ₁ and ρ₂:
25
24
  F(ρ₁, ρ₂) = Tr(√(√ρ₁ ρ₂ √ρ₁))²
26
-
25
+
27
26
  Args:
28
27
  state1: First quantum state (vector or density matrix)
29
28
  state2: Second quantum state (vector or density matrix)
30
29
  validate: Whether to validate inputs
31
-
30
+
32
31
  Returns:
33
32
  Fidelity value between 0 and 1
34
33
 
@@ -79,15 +78,15 @@ def trace_distance(
79
78
  validate: bool = True
80
79
  ) -> float:
81
80
  """Calculate trace distance between two quantum states.
82
-
81
+
83
82
  For quantum states ρ₁ and ρ₂:
84
83
  D(ρ₁, ρ₂) = (1/2) * Tr(|ρ₁ - ρ₂|)
85
-
84
+
86
85
  Args:
87
86
  state1: First quantum state
88
- state2: Second quantum state
87
+ state2: Second quantum state
89
88
  validate: Whether to validate inputs
90
-
89
+
91
90
  Returns:
92
91
  Trace distance between 0 and 1
93
92
 
@@ -113,20 +112,20 @@ def trace_distance(
113
112
 
114
113
  def quantum_mutual_information(
115
114
  joint_state: np.ndarray,
116
- subsystem_dims: Tuple[int, int],
115
+ subsystem_dims: tuple[int, int],
117
116
  validate: bool = True
118
117
  ) -> float:
119
118
  """Calculate quantum mutual information between two subsystems.
120
-
119
+
121
120
  I(A:B) = S(ρₐ) + S(ρᵦ) - S(ρₐᵦ)
122
-
121
+
123
122
  where S(ρ) is the von Neumann entropy.
124
-
123
+
125
124
  Args:
126
125
  joint_state: Joint quantum state of both subsystems
127
126
  subsystem_dims: Dimensions of subsystems (dim_A, dim_B)
128
127
  validate: Whether to validate inputs
129
-
128
+
130
129
  Returns:
131
130
  Quantum mutual information
132
131
 
@@ -154,18 +153,18 @@ def quantum_mutual_information(
154
153
 
155
154
  def entanglement_measure(
156
155
  state: np.ndarray,
157
- subsystem_dims: Tuple[int, int],
156
+ subsystem_dims: tuple[int, int],
158
157
  measure: str = 'negativity',
159
158
  validate: bool = True
160
159
  ) -> float:
161
160
  """Calculate entanglement measure for a bipartite quantum state.
162
-
161
+
163
162
  Args:
164
163
  state: Quantum state (pure or mixed)
165
164
  subsystem_dims: Dimensions of subsystems (dim_A, dim_B)
166
165
  measure: Type of measure ('negativity', 'concurrence', 'entropy')
167
166
  validate: Whether to validate inputs
168
-
167
+
169
168
  Returns:
170
169
  Entanglement measure value
171
170
 
@@ -185,19 +184,19 @@ def entanglement_measure(
185
184
 
186
185
  def negativity(
187
186
  state: np.ndarray,
188
- subsystem_dims: Tuple[int, int]
187
+ subsystem_dims: tuple[int, int]
189
188
  ) -> float:
190
189
  """Calculate negativity entanglement measure.
191
-
190
+
192
191
  Negativity is defined as:
193
192
  N(ρ) = (||ρᵀᴬ||₁ - 1) / 2
194
-
193
+
195
194
  where ρᵀᴬ is the partial transpose with respect to subsystem A.
196
-
195
+
197
196
  Args:
198
197
  state: Quantum state
199
198
  subsystem_dims: Dimensions of subsystems
200
-
199
+
201
200
  Returns:
202
201
  Negativity value
203
202
 
@@ -216,16 +215,16 @@ def negativity(
216
215
 
217
216
  def concurrence(
218
217
  state: np.ndarray,
219
- subsystem_dims: Tuple[int, int]
218
+ subsystem_dims: tuple[int, int]
220
219
  ) -> float:
221
220
  """Calculate concurrence for two-qubit systems.
222
-
221
+
223
222
  Note: This implementation is only valid for 2×2 systems.
224
-
223
+
225
224
  Args:
226
225
  state: Two-qubit quantum state
227
226
  subsystem_dims: Should be (2, 2) for two qubits
228
-
227
+
229
228
  Returns:
230
229
  Concurrence value
231
230
 
@@ -259,14 +258,14 @@ def concurrence(
259
258
 
260
259
  def entanglement_entropy(
261
260
  state: np.ndarray,
262
- subsystem_dims: Tuple[int, int]
261
+ subsystem_dims: tuple[int, int]
263
262
  ) -> float:
264
263
  """Calculate entanglement entropy (von Neumann entropy of reduced state).
265
-
264
+
266
265
  Args:
267
266
  state: Quantum state
268
267
  subsystem_dims: Dimensions of subsystems
269
-
268
+
270
269
  Returns:
271
270
  Entanglement entropy
272
271
 
@@ -281,12 +280,12 @@ def entanglement_entropy(
281
280
 
282
281
  def von_neumann_entropy(rho: np.ndarray) -> float:
283
282
  """Calculate von Neumann entropy of a quantum state.
284
-
283
+
285
284
  S(ρ) = -Tr(ρ log ρ)
286
-
285
+
287
286
  Args:
288
287
  rho: Density matrix
289
-
288
+
290
289
  Returns:
291
290
  von Neumann entropy
292
291
 
@@ -304,16 +303,16 @@ def von_neumann_entropy(rho: np.ndarray) -> float:
304
303
 
305
304
  def partial_trace(
306
305
  rho: np.ndarray,
307
- subsystem_dims: Tuple[int, int],
306
+ subsystem_dims: tuple[int, int],
308
307
  trace_out: int
309
308
  ) -> np.ndarray:
310
309
  """Compute partial trace of a density matrix.
311
-
310
+
312
311
  Args:
313
312
  rho: Density matrix
314
313
  subsystem_dims: Dimensions of subsystems (dim_A, dim_B)
315
314
  trace_out: Which subsystem to trace out (0 for A, 1 for B)
316
-
315
+
317
316
  Returns:
318
317
  Reduced density matrix
319
318
 
@@ -345,16 +344,16 @@ def partial_trace(
345
344
 
346
345
  def partial_transpose(
347
346
  rho: np.ndarray,
348
- subsystem_dims: Tuple[int, int],
347
+ subsystem_dims: tuple[int, int],
349
348
  transpose_subsystem: int
350
349
  ) -> np.ndarray:
351
350
  """Compute partial transpose of a density matrix.
352
-
351
+
353
352
  Args:
354
353
  rho: Density matrix
355
354
  subsystem_dims: Dimensions of subsystems
356
355
  transpose_subsystem: Which subsystem to transpose (0 for A, 1 for B)
357
-
356
+
358
357
  Returns:
359
358
  Partially transposed density matrix
360
359
 
@@ -367,9 +366,9 @@ def partial_transpose(
367
366
  for i in range(dim_A):
368
367
  for j in range(dim_A):
369
368
  for k in range(dim_B):
370
- for l in range(dim_B):
369
+ for m in range(dim_B):
371
370
  # Transpose indices for subsystem A
372
- rho_TA[i*dim_B + k, j*dim_B + l] = rho[j*dim_B + k, i*dim_B + l]
371
+ rho_TA[i*dim_B + k, j*dim_B + m] = rho[j*dim_B + k, i*dim_B + m]
373
372
  return rho_TA
374
373
 
375
374
  elif transpose_subsystem == 1:
@@ -378,9 +377,9 @@ def partial_transpose(
378
377
  for i in range(dim_A):
379
378
  for j in range(dim_A):
380
379
  for k in range(dim_B):
381
- for l in range(dim_B):
380
+ for m in range(dim_B):
382
381
  # Transpose indices for subsystem B
383
- rho_TB[i*dim_B + k, j*dim_B + l] = rho[i*dim_B + l, j*dim_B + k]
382
+ rho_TB[i*dim_B + k, j*dim_B + m] = rho[i*dim_B + m, j*dim_B + k]
384
383
  return rho_TB
385
384
 
386
385
  else:
@@ -392,7 +391,7 @@ def _validate_quantum_state(state: np.ndarray) -> None:
392
391
  if len(state.shape) == 1:
393
392
  # Pure state vector
394
393
  if not np.isclose(np.linalg.norm(state), 1.0, atol=1e-10):
395
- warnings.warn("State vector is not normalized")
394
+ warnings.warn("State vector is not normalized", stacklevel=2)
396
395
 
397
396
  elif len(state.shape) == 2:
398
397
  # Density matrix
@@ -401,16 +400,16 @@ def _validate_quantum_state(state: np.ndarray) -> None:
401
400
 
402
401
  # Check if Hermitian
403
402
  if not np.allclose(state, np.conj(state.T), atol=1e-10):
404
- warnings.warn("Density matrix is not Hermitian")
403
+ warnings.warn("Density matrix is not Hermitian", stacklevel=2)
405
404
 
406
405
  # Check if positive semidefinite
407
406
  eigenvals = np.linalg.eigvals(state)
408
407
  if np.any(eigenvals < -1e-10):
409
- warnings.warn("Density matrix is not positive semidefinite")
408
+ warnings.warn("Density matrix is not positive semidefinite", stacklevel=2)
410
409
 
411
410
  # Check trace
412
411
  if not np.isclose(np.trace(state), 1.0, atol=1e-10):
413
- warnings.warn("Density matrix trace is not 1")
412
+ warnings.warn("Density matrix trace is not 1", stacklevel=2)
414
413
 
415
414
  else:
416
415
  raise ValueError("Invalid quantum state format")
@@ -433,12 +432,12 @@ def quantum_state_distance(
433
432
  metric: str = 'fidelity'
434
433
  ) -> float:
435
434
  """Calculate distance between quantum states using various metrics.
436
-
435
+
437
436
  Args:
438
437
  state1: First quantum state
439
438
  state2: Second quantum state
440
439
  metric: Distance metric ('fidelity', 'trace_distance', 'hilbert_schmidt')
441
-
440
+
442
441
  Returns:
443
442
  Distance value
444
443
 
@@ -4,7 +4,7 @@ This module provides functions to visualize quantum circuits, optimization resul
4
4
  quantum states, and other quantum machine learning concepts.
5
5
  """
6
6
 
7
- from typing import Any, Dict, List, Optional
7
+ from typing import Any
8
8
 
9
9
  import numpy as np
10
10
 
@@ -28,14 +28,14 @@ except ImportError:
28
28
 
29
29
 
30
30
  def visualize_results(
31
- results: Dict[str, Any],
31
+ results: dict[str, Any],
32
32
  plot_type: str = 'optimization',
33
33
  backend: str = 'matplotlib',
34
- save_path: Optional[str] = None,
34
+ save_path: str | None = None,
35
35
  **kwargs
36
36
  ) -> None:
37
37
  """Visualize quantum machine learning results.
38
-
38
+
39
39
  Args:
40
40
  results: Results dictionary from algorithm execution
41
41
  plot_type: Type of plot ('optimization', 'classification', 'regression')
@@ -60,13 +60,13 @@ def visualize_results(
60
60
 
61
61
 
62
62
  def plot_optimization_history(
63
- results: Dict[str, Any],
63
+ results: dict[str, Any],
64
64
  backend: str = 'matplotlib',
65
- save_path: Optional[str] = None,
65
+ save_path: str | None = None,
66
66
  **kwargs
67
67
  ) -> None:
68
68
  """Plot optimization history from algorithm results.
69
-
69
+
70
70
  Args:
71
71
  results: Results containing 'cost_history' or similar
72
72
  backend: Plotting backend
@@ -95,13 +95,13 @@ def plot_optimization_history(
95
95
 
96
96
 
97
97
  def plot_circuit(
98
- circuit_data: Dict[str, Any],
98
+ circuit_data: dict[str, Any],
99
99
  backend: str = 'matplotlib',
100
- save_path: Optional[str] = None,
100
+ save_path: str | None = None,
101
101
  **kwargs
102
102
  ) -> None:
103
103
  """Plot quantum circuit diagram.
104
-
104
+
105
105
  Args:
106
106
  circuit_data: Circuit information dictionary
107
107
  backend: Plotting backend
@@ -121,11 +121,11 @@ def plot_quantum_state(
121
121
  state_vector: np.ndarray,
122
122
  backend: str = 'matplotlib',
123
123
  representation: str = 'bar',
124
- save_path: Optional[str] = None,
124
+ save_path: str | None = None,
125
125
  **kwargs
126
126
  ) -> None:
127
127
  """Plot quantum state vector.
128
-
128
+
129
129
  Args:
130
130
  state_vector: Complex quantum state vector
131
131
  backend: Plotting backend
@@ -145,11 +145,11 @@ def plot_quantum_state(
145
145
  def plot_bloch_sphere(
146
146
  state_vector: np.ndarray,
147
147
  backend: str = 'matplotlib',
148
- save_path: Optional[str] = None,
148
+ save_path: str | None = None,
149
149
  **kwargs
150
150
  ) -> None:
151
151
  """Plot quantum state on Bloch sphere (for single qubit states).
152
-
152
+
153
153
  Args:
154
154
  state_vector: Single qubit state vector [α, β]
155
155
  backend: Plotting backend
@@ -172,9 +172,9 @@ def plot_bloch_sphere(
172
172
 
173
173
 
174
174
  def plot_classification_results(
175
- results: Dict[str, Any],
175
+ results: dict[str, Any],
176
176
  backend: str = 'matplotlib',
177
- save_path: Optional[str] = None,
177
+ save_path: str | None = None,
178
178
  **kwargs
179
179
  ) -> None:
180
180
  """Plot classification results including confusion matrix and metrics."""
@@ -187,9 +187,9 @@ def plot_classification_results(
187
187
 
188
188
 
189
189
  def plot_regression_results(
190
- results: Dict[str, Any],
190
+ results: dict[str, Any],
191
191
  backend: str = 'matplotlib',
192
- save_path: Optional[str] = None,
192
+ save_path: str | None = None,
193
193
  **kwargs
194
194
  ) -> None:
195
195
  """Plot regression results including predictions vs actual."""
@@ -203,8 +203,8 @@ def plot_regression_results(
203
203
 
204
204
  # Matplotlib implementations
205
205
  def _plot_optimization_matplotlib(
206
- cost_history: List[float],
207
- save_path: Optional[str] = None,
206
+ cost_history: list[float],
207
+ save_path: str | None = None,
208
208
  **kwargs
209
209
  ) -> None:
210
210
  """Plot optimization history using matplotlib."""
@@ -222,8 +222,8 @@ def _plot_optimization_matplotlib(
222
222
 
223
223
 
224
224
  def _plot_circuit_matplotlib(
225
- circuit_data: Dict[str, Any],
226
- save_path: Optional[str] = None,
225
+ circuit_data: dict[str, Any],
226
+ save_path: str | None = None,
227
227
  **kwargs
228
228
  ) -> None:
229
229
  """Plot circuit diagram using matplotlib."""
@@ -240,7 +240,7 @@ def _plot_circuit_matplotlib(
240
240
  # Draw gates (simplified representation)
241
241
  gate_positions = np.linspace(1, 9, len(gates)) if gates else []
242
242
 
243
- for pos, gate in zip(gate_positions, gates):
243
+ for pos, gate in zip(gate_positions, gates, strict=False):
244
244
  gate_type = gate.get('type', 'X')
245
245
  qubit = gate.get('qubit', 0)
246
246
 
@@ -269,7 +269,7 @@ def _plot_circuit_matplotlib(
269
269
  def _plot_state_matplotlib(
270
270
  state_vector: np.ndarray,
271
271
  representation: str,
272
- save_path: Optional[str] = None,
272
+ save_path: str | None = None,
273
273
  **kwargs
274
274
  ) -> None:
275
275
  """Plot quantum state using matplotlib."""
@@ -298,13 +298,13 @@ def _plot_state_matplotlib(
298
298
  phases = np.angle(state_vector)
299
299
 
300
300
  plt.figure(figsize=(10, 8))
301
- scatter = plt.scatter(phases, amplitudes, s=100, alpha=0.7)
301
+ plt.scatter(phases, amplitudes, s=100, alpha=0.7)
302
302
  plt.xlabel('Phase (radians)')
303
303
  plt.ylabel('Amplitude')
304
304
  plt.title('Quantum State (Phase-Amplitude)')
305
305
 
306
306
  # Add state labels
307
- for i, (phase, amp) in enumerate(zip(phases, amplitudes)):
307
+ for i, (phase, amp) in enumerate(zip(phases, amplitudes, strict=False)):
308
308
  if amp > 0.01: # Only label significant amplitudes
309
309
  plt.annotate(f'|{i}⟩', (phase, amp), xytext=(5, 5),
310
310
  textcoords='offset points')
@@ -317,7 +317,7 @@ def _plot_state_matplotlib(
317
317
 
318
318
  def _plot_bloch_matplotlib(
319
319
  bloch_vector: np.ndarray,
320
- save_path: Optional[str] = None,
320
+ save_path: str | None = None,
321
321
  **kwargs
322
322
  ) -> None:
323
323
  """Plot Bloch sphere using matplotlib."""
@@ -360,8 +360,8 @@ def _plot_bloch_matplotlib(
360
360
 
361
361
 
362
362
  def _plot_classification_matplotlib(
363
- results: Dict[str, Any],
364
- save_path: Optional[str] = None,
363
+ results: dict[str, Any],
364
+ save_path: str | None = None,
365
365
  **kwargs
366
366
  ) -> None:
367
367
  """Plot classification results using matplotlib."""
@@ -410,8 +410,8 @@ def _plot_classification_matplotlib(
410
410
 
411
411
 
412
412
  def _plot_regression_matplotlib(
413
- results: Dict[str, Any],
414
- save_path: Optional[str] = None,
413
+ results: dict[str, Any],
414
+ save_path: str | None = None,
415
415
  **kwargs
416
416
  ) -> None:
417
417
  """Plot regression results using matplotlib."""
@@ -465,8 +465,8 @@ def _plot_regression_matplotlib(
465
465
 
466
466
  # Plotly implementations (simplified)
467
467
  def _plot_optimization_plotly(
468
- cost_history: List[float],
469
- save_path: Optional[str] = None,
468
+ cost_history: list[float],
469
+ save_path: str | None = None,
470
470
  **kwargs
471
471
  ) -> None:
472
472
  """Plot optimization history using plotly."""
@@ -475,7 +475,7 @@ def _plot_optimization_plotly(
475
475
  y=cost_history,
476
476
  mode='lines',
477
477
  name='Cost',
478
- line=dict(width=3)
478
+ line={'width': 3}
479
479
  ))
480
480
  fig.update_layout(
481
481
  title='Optimization History',
@@ -490,8 +490,8 @@ def _plot_optimization_plotly(
490
490
 
491
491
 
492
492
  def _plot_circuit_plotly(
493
- circuit_data: Dict[str, Any],
494
- save_path: Optional[str] = None,
493
+ circuit_data: dict[str, Any],
494
+ save_path: str | None = None,
495
495
  **kwargs
496
496
  ) -> None:
497
497
  """Plot circuit using plotly (simplified)."""
@@ -514,7 +514,7 @@ def _plot_circuit_plotly(
514
514
  def _plot_state_plotly(
515
515
  state_vector: np.ndarray,
516
516
  representation: str,
517
- save_path: Optional[str] = None,
517
+ save_path: str | None = None,
518
518
  **kwargs
519
519
  ) -> None:
520
520
  """Plot state using plotly."""
@@ -537,7 +537,7 @@ def _plot_state_plotly(
537
537
 
538
538
  def _plot_bloch_plotly(
539
539
  bloch_vector: np.ndarray,
540
- save_path: Optional[str] = None,
540
+ save_path: str | None = None,
541
541
  **kwargs
542
542
  ) -> None:
543
543
  """Plot Bloch sphere using plotly."""
@@ -562,17 +562,17 @@ def _plot_bloch_plotly(
562
562
  fig.add_trace(go.Scatter3d(
563
563
  x=[0, x], y=[0, y], z=[0, z],
564
564
  mode='lines+markers',
565
- line=dict(width=5, color='red'),
566
- marker=dict(size=8, color='red')
565
+ line={'width': 5, 'color': 'red'},
566
+ marker={'size': 8, 'color': 'red'}
567
567
  ))
568
568
 
569
569
  fig.update_layout(
570
570
  title='Bloch Sphere',
571
- scene=dict(
572
- xaxis_title='X',
573
- yaxis_title='Y',
574
- zaxis_title='Z'
575
- )
571
+ scene={
572
+ 'xaxis_title': 'X',
573
+ 'yaxis_title': 'Y',
574
+ 'zaxis_title': 'Z'
575
+ }
576
576
  )
577
577
 
578
578
  if save_path:
@@ -582,8 +582,8 @@ def _plot_bloch_plotly(
582
582
 
583
583
 
584
584
  def _plot_classification_plotly(
585
- results: Dict[str, Any],
586
- save_path: Optional[str] = None,
585
+ results: dict[str, Any],
586
+ save_path: str | None = None,
587
587
  **kwargs
588
588
  ) -> None:
589
589
  """Plot classification results using plotly."""
@@ -605,8 +605,8 @@ def _plot_classification_plotly(
605
605
 
606
606
 
607
607
  def _plot_regression_plotly(
608
- results: Dict[str, Any],
609
- save_path: Optional[str] = None,
608
+ results: dict[str, Any],
609
+ save_path: str | None = None,
610
610
  **kwargs
611
611
  ) -> None:
612
612
  """Plot regression results using plotly."""
superquantx/version.py CHANGED
@@ -1,10 +1,10 @@
1
1
  """Version information for SuperQuantX."""
2
2
 
3
- __version__ = "0.1.0"
4
- __version_info__ = (0, 1, 0)
3
+ __version__ = "0.1.1"
4
+ __version_info__ = (0, 1, 1)
5
5
 
6
6
  # Release information
7
- __release_date__ = "2024-09-06"
7
+ __release_date__ = "2025-09-11"
8
8
  __release_name__ = "Agentic AI Genesis"
9
9
 
10
10
  # Build information - will be updated during CI/CD
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superquantx
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Quantum AI Research Platform - Unified API for QuantumAgentic AIsystems research
5
5
  Project-URL: Homepage, https://github.com/SuperagenticAI/superquantx
6
6
  Project-URL: Documentation, https://superagenticai.github.io/superquantx
@@ -8,10 +8,8 @@ Project-URL: Repository, https://github.com/SuperagenticAI/superquantx
8
8
  Project-URL: Bug Tracker, https://github.com/SuperagenticAI/superquantx/issues
9
9
  Project-URL: Source Code, https://github.com/SuperagenticAI/superquantx
10
10
  Project-URL: Changelog, https://github.com/SuperagenticAI/superquantx/blob/main/CHANGELOG.md
11
- Project-URL: Discussions, https://github.com/SuperagenticAI/superquantx/discussions
12
- Project-URL: Funding, https://github.com/sponsors/SuperagenticAI
13
11
  Author-email: Shashi Jagtap <shashi@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>, SuperXLab Research Team <research@super-agentic.ai>
14
- Maintainer-email: Shashi Jagtap <shashi@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>, SuperXLab Research Team <research@super-agentic.ai>
12
+ Maintainer-email: Shashi Jagtap <shashi@super-agentic.ai>, Shashi Jagtap <shashikant.jagtap@icloud.com>, Superagentic AI Research Team <research@super-agentic.ai>
15
13
  License: Apache-2.0
16
14
  License-File: LICENSE
17
15
  Keywords: agentic-ai,braket,cirq,experimental,pennylane,qiskit,quantum-agents,quantum-algorithms,quantum-computing,quantum-machine-learning,research-platform,unified-api
@@ -123,20 +121,18 @@ Requires-Dist: pytket-qiskit>=0.50.0; extra == 'tket'
123
121
  Requires-Dist: pytket>=1.25.0; extra == 'tket'
124
122
  Description-Content-Type: text/markdown
125
123
 
126
- <div align="center">
127
- <img src="resources/logo.png" alt="SuperQuantX Logo" width="600"/>
128
- </div>
129
-
130
- # SuperQuantX
131
-
132
124
  [![PyPI - Version](https://img.shields.io/pypi/v/superquantx)](https://pypi.org/project/superquantx/)
133
125
  [![Python Version](https://img.shields.io/pypi/pyversions/superquantx)](https://pypi.org/project/superquantx/)
134
- [![License](https://img.shields.io/github/license/SuperagenticAI/superquantx)](https://github.com/SuperagenticAI/superquantx/blob/main/LICENSE)
126
+ [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
135
127
  [![Tests](https://github.com/SuperagenticAI/superquantx/workflows/Tests/badge.svg)](https://github.com/SuperagenticAI/superquantx/actions)
136
- [![Documentation](https://img.shields.io/badge/docs-mkdocs-blue)](#-documentation)
128
+ [![Documentation](https://img.shields.io/badge/docs-mkdocs-blue)](https://superagenticai.github.io/superquantx)
137
129
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
138
130
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
139
131
 
132
+ # SuperQuantX
133
+ ### The foundation for the future of Agentic and Quantum AI
134
+ SuperQuantX unified API for the next wave of Quantum AI. It's a foundation to build powerful Quantum Agentic AI systems with a single interface to Qiskit, Cirq, PennyLane, and more. SuperQuantX is your launchpad into the world of Quantum + Agentic AI.
135
+
140
136
  **Unified Quantum Computing Platform - Building autonomous quantum-enhanced AI systems**
141
137
 
142
138
  > 📖 **[Read the Full Documentation →](https://superagenticai.github.io/superquantx/)**
@@ -152,6 +148,12 @@ SuperQuantX is a **unified quantum computing platform** that makes quantum algor
152
148
  - **🧠 Quantum ML** - Advanced quantum machine learning algorithms and neural networks
153
149
  - **⚡ Easy Setup** - Get started in minutes with comprehensive documentation
154
150
 
151
+ <div align="center">
152
+ <a href="https://super-agentic.ai" target="_blank">
153
+ <img src="resources/logo.png" alt="SuperQuantX Logo" width="500">
154
+ </a>
155
+ </div>
156
+
155
157
  ## ✨ Key Features
156
158
 
157
159
  ### **🔗 Universal Quantum Backend Support**
@@ -236,7 +238,7 @@ solution = qaoa.solve()
236
238
  The documentation includes comprehensive guides for getting started, detailed API references, tutorials, and examples for all supported quantum backends. Visit the documentation site for:
237
239
 
238
240
  - **Getting Started** - Installation, configuration, and your first quantum program
239
- - **User Guides** - Platform overview, backends, and algorithms
241
+ - **User Guides** - Platform overview, backends, and algorithms
240
242
  - **Tutorials** - Hands-on quantum computing and machine learning examples
241
243
  - **API Reference** - Complete API documentation with examples
242
244
  - **Development** - Contributing guidelines, architecture, and testing
@@ -330,7 +332,7 @@ Help improve our documentation:
330
332
 
331
333
  ## 📄 License
332
334
 
333
- SuperQuantX is released under the [MIT License](LICENSE). Feel free to use it in your projects, research, and commercial applications.
335
+ SuperQuantX is released under the [Apache License 2.0](LICENSE). Feel free to use it in your projects, research, and commercial applications.
334
336
 
335
337
  ---
336
338
 
@@ -350,13 +352,13 @@ print('✅ SuperQuantX is ready!')
350
352
 
351
353
  **Ready to explore quantum computing?**
352
354
 
353
- 👉 **[Start with the Quick Start Guide →](docs/getting-started/quickstart.md)**
355
+ 👉 **[Start with the Quick Start Guide →](https://superagenticai.github.io/superquantx/)**
354
356
 
355
357
  ---
356
358
 
357
359
  <div align="center">
358
360
 
359
- **SuperQuantX: Making Quantum Computing Accessible**
361
+ **SuperQuantX: Making Quantum Computing Accessible to all**
360
362
 
361
363
  *Built with ❤️ by [Superagentic AI](https://super-agentic.ai)*
362
364