Qadence Protocols
Qadence Protocols is a collection of features to enhance Qadence inputs and outputs for error mitigation and measurements.
Feature highlights
- A collection of readout error mitigation protocols.
- A collection of measurement handling protocols when computing expectation values.
Pre-requisites
The library uses the following tools:
- hatch for managing virtual environment and dependencies
- pytest for building the unit tests suite
- black, isort and flake8 for code formatting and linting
- mypy for static type checking
- pre-commit for applying linting and formatting automatically before committing new code
We recommend to use pyenv
for managing
python versions for managing python versions both globally and locally:
# System-wide install of a python version.
pyenv install 3.10
# Use 3.10 everywhere.
pyenv global 3.10
# Or locally in the current directory.
pyenv local 3.10
Install from PyPi
qadence-protocols
is available on PyPi through pip
.
Install from source
All Pasqal quantum libraries require Python >=3.8. For development, the preferred method to install this package is
to use hatch
. You can install from source by cloning this repository and run:
python -m pip install hatch
python -m hatch -v shell
# execute any script using the library
python my_script.py
Alternatively, you can also:
- install with
pip
in development mode by simply runningpip install -e .
. Notice that in this way you will install all the dependencies, including extras. - install it with
conda
by simply usingpip
inside the Conda environment.
Develop
When developing the package, the recommended way is to create a virtual environment with hatch
as shown above:
When inside the shell with development dependencies, install first the pre-commit hook:
In this way, you will get automatic linting and formatting every time you commit new code. Do not
forget to run the unit test suite by simply running the pytest
command.
If you do not want to get into the Hatch shell, you can alternatively do the following:
python -m pip install hatch
python -m hatch -v shell
# install the pre-commit
python -m hatch run pre-commit install
# commit some code
python -m hatch run git commit -m "My awesome commit"
# run the unit tests suite
python -m hatch run pytest
Document
You can improve the documentation of the package by editing this file for the landing page or adding new
markdown or Jupyter notebooks to the docs/
folder in the root of the project. In order to modify the
table of contents, edit the mkdocs.yml
file in the root of the project.
In order to build and serve the documentation locally, you can use hatch
with the right environment:
If you don't want to use hatch
, just check into your favorite virtual environment and
execute the following commands: