Metadata-Version: 2.4
Name: grovers-visualizer
Version: 0.4.1
Summary: A tiny Python package that steps through Grover’s Search algorithm.
License-File: LICENSE
Requires-Python: >=3.13
Requires-Dist: argparse==1.4.0
Requires-Dist: numpy==2.2.4
Requires-Dist: pyqt6==6.9.0
Requires-Dist: qiskit-aer==0.17.0
Requires-Dist: qiskit[visualization]==2.0.0
Provides-Extra: ui
Requires-Dist: dearpygui==2.0.0; extra == 'ui'
Description-Content-Type: text/markdown

# Grover’s Search Visualizer

A tiny Python package that steps through Grover’s Search algorithm and shows you, after each iteration:

- A bar‐chart of amplitudes (or probabilities)  
- A sine‐curve of success‐probability vs. iteration  
- A geometric "rotation" on the unit circle  

Choose between a Matplotlib-based CLI or an optional DearPyGui GUI (WIP).

---

![Demo of Grover’s Visualizer](media/demo.gif)

---

## Installation

### Via [pipx](https://pipx.pypa.io/stable/installation/)

Basic (CLI only):

```bash
pipx install grovers-visualizer
grovers-visualizer 1111
```

With the optional DearPyGui UI (WIP):

```bash
pipx "grovers-visualizer[ui]"
grovers-visualizer --ui
```

### Via [uvx](https://docs.astral.sh/uv/guides/tools/)

Basic (CLI only):

```bash
uvx grovers-visualizer 1111
```

With the optional UI extra:

```bash
uvx "grovers-visualizer[ui]" --ui
```

---

## Usage

### CLI Mode

Flags:

• `-t, --target`  
 Target bit‐string (e.g. `010`). Length determines number of qubits.  
• `-s, --speed`  
 Delay between iterations (seconds). Default `0.5`.  
• `-i, --iterations`  
 Max iterations; `0` means use the optimal $\lfloor\frac\pi4\sqrt{2^n}\rfloor$.  
• `--ui`  
 Launch the optional DearPyGui GUI (requires the `[ui]` extra) (WIP).

### GUI Mode (WIP)

If you installed with `"[ui]"`, launch the DearPyGui window:

```
grovers-visualizer --ui
```

In the UI you can:

- Set number of qubits  
- Enter the target bit‐string  
- Choose max iterations or leave at 0 for optimal  
- Control the animation speed  

Hit **Start** to watch the bar chart, sine plot, and rotation‐circle update in real time.

---

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
