Metadata-Version: 2.3
Name: sqil-core
Version: 1.1.0
Summary: The codebase of the SQIL group in EPFL
Author: Andrea Duina
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: blinker (>=1.9.0,<2.0.0)
Requires-Dist: h5py (>=3.12.1,<4.0.0)
Requires-Dist: isort (==5.9.3)
Requires-Dist: laboneq (>=2.54.0,<3.0.0)
Requires-Dist: laboneq-applications (>=2.4.0,<3.0.0)
Requires-Dist: lmfit (>=1.3.2,<2.0.0)
Requires-Dist: matplotlib (>=3.9.3,<4.0.0)
Requires-Dist: mpld3 (>=0.5.10,<0.6.0)
Requires-Dist: numpy (>=2.2.3,<3.0.0)
Requires-Dist: plottr (>=0.14.0,<0.15.0)
Requires-Dist: pyro5 (>=5.15,<6.0)
Requires-Dist: qcodes (>=0.51.0,<0.52.0)
Requires-Dist: qcodes-contrib-drivers (>=0.23.0,<0.24.0)
Requires-Dist: scipy (>=1.14.1,<2.0.0)
Requires-Dist: tabulate (>=0.9.0,<0.10.0)
Description-Content-Type: text/markdown

# For users

## Installation

```bash
$ pip install sqil_core
```

## Usage

You can find all the functions available and examples in the documentation.

```python
import sqil_core as sqil

path = 'path to your data folder'

# Extract data
mag, phase, freq = sqil.extract_h5_data(path, ['mag_dB', 'phase', 'ro_freq'])
```

## Documentation
You can find the documentation for this package [here](https://sqil-epfl.github.io/sqil-core/)

# For developers

## Development

1. **Install poetry if you haven't already**

```bash
$ pip install poetry
$ pip install poetry-plugin-shell
```

2. **Install the required packages using poetry**

```bash
$ poetry install
```

3. **Install the pre-commit hooks**
   If you are on windows you need to install git ([https://git-scm.com/downloads](here)) and add it to your windows PATH.
   After the installation open a new terminal.

```bash
$ poetry run pre-commit install
```

This will check if your python files are formatted correctly when you try to commit.
If that's not the case the commit will be canceled and the files will be automatically formatted.
Then you'll have to add and commit again the new files.

4. **Start the virtual environment**

```bash
$ poetry shell
```

To exit the virtual environment just use `exit`

#### Test your changes

```bash
$ pip install -e . --user
```

**Anaconda**
If you want to install in a specific anaconda environment

- from your poetry shell build the package

```bash
$ poetry run build
```

- open an anaconda shell
- activate the desired environemnt
- pip install the wheel file (.whl) in the dist folder of the sqil-core project

```bash
$ pip install PATH_TO_SQIL_CORE_FOLDER/dist/SQIL_CORE-VERSION.whl
```

If you're testing a new function remember to import it in the folder's `__init__.py` file.


If you're using a jupyter notebook remember to restart the kernel.


## Build

```bash
$ poetry run build
```

## Publish

To publish version X.X.X run the commands below. This will trigger a GitHub action that deploys to release to PyPi (pip) and GitHub.
Remember also to change the version number in the `pyproject.toml` file.

```bash
$ git tag vX.X.X
$ git push origin vX.X.X
```

## Docs

Serve docs

```bash
$ poetry run docs_serve
```

Build docs

```bash
$ poetry run docs_build
```

