diff --git a/.github/workflows/publish-python-testpypi.yml b/.github/workflows/publish-python-testpypi.yml new file mode 100644 index 0000000..360915c --- /dev/null +++ b/.github/workflows/publish-python-testpypi.yml @@ -0,0 +1,50 @@ +name: Publish Python distribution to Test PyPI + +on: workflow_dispatch + +jobs: + build: + name: Build distribution + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.x" + - name: Install pypa/build + run: >- + python3 -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: python3 -m build + - name: Store the distribution packages + uses: actions/upload-artifact@v3 + with: + name: python-package-distributions + path: dist/ + + publish-to-testpypi: + name: Publish Python distribution to TestPyPI + needs: + - build + runs-on: ubuntu-latest + + environment: testpypi + + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + + steps: + - name: Download all the dists + uses: actions/download-artifact@v3 + with: + name: python-package-distributions + path: dist/ + - name: Publish distribution to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/publish-python.yml b/.github/workflows/publish-python.yml index 782f063..dd3cf34 100644 --- a/.github/workflows/publish-python.yml +++ b/.github/workflows/publish-python.yml @@ -1,10 +1,10 @@ -name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI +name: Publish Python distribution to PyPI on: workflow_dispatch jobs: build: - name: Build distribution 📦 + name: Build distribution runs-on: ubuntu-latest steps: @@ -29,7 +29,7 @@ jobs: publish-to-pypi: name: >- - Publish Python 🐍 distribution 📦 to PyPI + Publish Python distribution to PyPI # if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes needs: - build @@ -46,12 +46,12 @@ jobs: with: name: python-package-distributions path: dist/ - - name: Publish distribution 📦 to PyPI + - name: Publish distribution to PyPI uses: pypa/gh-action-pypi-publish@release/v1 github-release: name: >- - Sign the Python 🐍 distribution 📦 with Sigstore + Sign the Python distribution with Sigstore and upload them to GitHub Release needs: - publish-to-pypi @@ -91,25 +91,3 @@ jobs: gh release upload '${{ github.ref_name }}' dist/** --repo '${{ github.repository }}' - - publish-to-testpypi: - name: Publish Python 🐍 distribution 📦 to TestPyPI - needs: - - build - runs-on: ubuntu-latest - - environment: testpypi - - permissions: - id-token: write # IMPORTANT: mandatory for trusted publishing - - steps: - - name: Download all the dists - uses: actions/download-artifact@v3 - with: - name: python-package-distributions - path: dist/ - - name: Publish distribution 📦 to TestPyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - repository-url: https://test.pypi.org/legacy/ diff --git a/README.md b/README.md index 2e8d625..e0af47b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,17 @@ # Hardware-Tailored Stabilizer Circuits Python library +
+ + + + This library provides - *hardware-tailored* quantum Clifford circuits for **stabilizer state preparation** or **measurement** as well as - mutually unbiased bases in order to perform more efficient **full-state tomography** on small qubit systems. @@ -9,12 +21,11 @@ Hereby, two-qubit gate count is minimized. All delivered circuits are designed t ## Installation - -You can clone the [repository][repository] and include it in your project. Soon, it will be available on [PyPi][pypi-page] and via `pip install`. +or you can clone the [repository][repository] and include it into your project. ## Tailored to your hardware connectivity @@ -70,12 +81,7 @@ View examples for exploring the functionality: [repository]: https://github.com/Mc-Zen/htstabilizer [license]: https://github.com/Mc-Zen/htstabilizer/blob/master/LICENSE.txt -[2-qubit-con]: docs/images/2-qubit%20connectivities.png -[3-qubit-con]: docs/images/3-qubit%20connectivities.png -[4-qubit-con]: docs/images/4-qubit%20connectivities.png -[5-qubit-con]: docs/images/5-qubit%20connectivities.png -[6-qubit-con]: docs/images/6-qubit%20connectivities.png -[hardware-connectivities]: docs/images/Hardware_Connectivities.svg +[hardware-connectivities]: https://github.com/Mc-Zen/htstabilizer/raw/master/docs/images/Hardware_Connectivities.svg [example-compress]: https://github.com/Mc-Zen/htstabilizer/blob/master/examples/compress_preparation_circuit.py [example-readout]: https://github.com/Mc-Zen/htstabilizer/blob/master/examples/readout_circuit.py diff --git a/pyproject.toml b/pyproject.toml index 49f3cc2..cc157ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "htstabilizer" version = "1.0.0" description = "Hardware-tailored quantum Clifford circuits for stabilizer state preparation or readout as well as mutually unbiased bases in order to perform efficient full-state tomography on small qubit systems." readme = "README.md" -requires-python = ">=3.7" +requires-python = ">=3.10" authors = [{ name = "Mc-Zen"}] license = { file = "LICENSE.txt" } classifiers = [