Metadata-Version: 2.4
Name: paulie
Version: 0.0.1
Summary: Classification of Pauli Lie algebras
Author: Konstantin Golovkin, Mainak Roy
Author-email: Oxana Shaya <shayaoxana@gmail.com>
License: Copyright (c) 2018 The Python Packaging Authority
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
Project-URL: Documentation, https://qpaulie.github.io/PauLie/
Project-URL: Repository, https://github.com/QPauLie/PauLie
Project-URL: Issues, https://github.com/QPauLie/PauLie/issues
Keywords: quantum-simulation,lie-algebra,quantum-control
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy>=2.2.2
Requires-Dist: networkx>=3.3
Requires-Dist: bitarray>=3.0.0
Requires-Dist: memory-profiler>=0.61.0
Requires-Dist: matplotlib>=3.10.0
Requires-Dist: six>=1.17.0
Requires-Dist: tqdm>=4.67.1
Requires-Dist: scipy>=1.17.0
Requires-Dist: intersphinx-registry>=0.2602.2
Provides-Extra: dev
Requires-Dist: ruff>=0.9.5; extra == "dev"
Requires-Dist: pytest>=8.3.5; extra == "dev"
Requires-Dist: sphinx>=9.1.0; extra == "dev"
Requires-Dist: sphinxcontrib-bibtex>=2.6.1; extra == "dev"
Requires-Dist: mypy>=1.19.0; extra == "dev"
Requires-Dist: types-six>=1.17.0.20251009; extra == "dev"
Requires-Dist: types-networkx>=3.6.1.20251212; extra == "dev"
Requires-Dist: sphinx-rtd-theme>=1.1.1; extra == "dev"
Requires-Dist: pydata-sphinx-theme>=0.16.1; extra == "dev"
Dynamic: license-file

# PauLie
The `PauLie` package is an open-source library for studying various algebraic properties of quantum circuits.  This
first release focuses on the classification of the circuit's dynamical Lie algebra given the generators as Pauli strings.

<p align="center">
  <a href="https://qpaulie.github.io/PauLie/">
  <img width=30% src="https://img.shields.io/badge/documentation-blue?style=for-the-badge&logo=read%20the%20docs" alt="Documentation" />
  </a>
</p>


[![Unitary Fund](https://img.shields.io/badge/Supported%20By-UNITARY%20FUND-brightgreen.svg?style=for-the-badge)](https://unitary.fund)

Make sure to have Python >= 3.12 installed.

### Installation
Clone the repository. Once you have [`uv` installed](https://docs.astral.sh/uv/getting-started/installation/#pypi), run the following command to install all dependencies:

```sh
uv sync --all-extras --dev
```

### Getting started 

The following code gives an example of usage:

```python
    from paulie import get_pauli_string as p
    
    n_qubits = 6
    generators = p(["XYZX", "ZZYZY"], n = n_qubits)
    algebra = generators.get_algebra()
    print(f"number of qubits = {n_qubits}, algebra = {algebra}")
```

Feel free to contribute and check out our open issues. We are also happy to chat with you via [Discord](https://discord.gg/unitary-fund-764231928676089909)

### Testing

In order to run the test suite, run:

```sh
uv run python -m pytest
```

### Type Checking

Check for type errors, improve readability, and assist IDEs, run:

```sh
uv run mypy src/paulie/common src/paulie/classifier/classification.py
```

