Skip to main content

qKIT quantum measurement suite in python

Project description

QKIT

Qkit - a quantum measurement suite in python

PyPI - Version PyPI - Python Version

Features:

  • a collection of ipython notebooks for measurement and data analysis tasks.
  • hdf5 based data storage of 1,2 and 3 dimensional data, including a viewer.
  • classes for data fitting, e.g. of microwave resonator data. This includes also a robust circle fit algorithm.
  • extended and maintained drivers for various low frequency and microwave electronics.

Platform:

The qkit framework has been tested under windows and with limits under macos x and linux. The gui requires h5py, qt and pyqtgraph, which work fine on these platforms. The core of the framework should run with python 2.7.x/3.4+

Configuration

There are three sources of configuration, which are used to set up your environment

  • qkit defaults (you shouldn't change those)
  • local config file
  • configuration in notebooks

Local config file

On import, qkit will look for a file called qkit_local_config.py or local.py in your current working directory or any of its parents. Note, that in case of a jupyter notebook, the current working directory is the directory in which your notebook is located.

If you can't put such a configuration file into a suitable location, you can set the environment variable QKIT_LOCAL_CONFIG with a path pointing to such a configuration file. This variable circumvents the search, and the file is directly loaded.

Installation Guide

Installing qkit is a two step process: First you need to obtain the qkit package, and then you need to setup your system to use it properly. This guide will provide you with the required steps.

Creating a Virtual Environment

It is recommended to use a virtual environment. This isolates this local environment from your global packages. This way, version conflicts can be avoided. If you choose to use a virtual environment, then it needs to be activated, otherwise, qkit and its dependencies will not be available. This also means double click to open .h5 files will require configuration.

NOTE: WE DO NOT GUARANTEE COMPATIBILITY WITH ANACONDA/MINICONDA/CONDA! USE AT YOUR OWN RISK!

First, create a virtual environment:

python -m virtualenv venv

And then activate it on Linux:

source venv/bin/activate

or Windows:

.\venv\bin\activate.bat

Obtaining the qkit package

You have two choices, based on whether you want to modify qkit (development) or only want to use it.

Install qkit for usage only

Create a virtual environment, as described above. Then use pip to install qkit:

pip install qkit-core[jupyter,analysis]

Install qkit for development

Clone this repository to wherever is convenient.

git clone https://github.com/qkitgroup/qkit

Create a virtual environment, as described above.

Now, you can install qkit as an editable package. This means, that you can change files in the cloned repository. Changes will affect your python setup.

The brackets contain optional dependencies. This pulls the libraries needed for jupyter lab.

pip install --editable '.[jupyter,analysis]'

Configuring your system

In order to make .h5-files clickable and to configure qkit globally, run

qkit-install

On Windows, some of the changes require editing the registry. qkit-install can do that automatically, if run with elevated priviledges (as an Admin). To do so, run in a PowerShell

Start-Process qkit-install -Verb runAs

This will associate .h5-files with qkit, and set the environment variables QKIT_LOCAL_CONFIG and QKIT_VENV to the correct values. It will also create the required directories for data, notebooks and logs, and it will instantiate the configuration files for Jupyter Lab and Qkit.

If the notebooks folder this creates does not match your needs, you can change it by modifiying jupyter_lab_config.py:

# Set Notebook directory
notebook_dir = r'C:\notebooks' # Change this line

Launching Jupyter Lab

On Linux, qkit-install will install a desktop file to launch Qkit. Look for "Qkit Jupyter Lab". On Windows, qkit-install will create a batch script launch.bat. You can create a shortcut to it to launch it from the desktop.

Upgrading

If you use an existing installation of qkit, there might be some breaking changes. They are not major, but need to be taken care of.

Migrating Configuration

Previously, the configuration of qkit was located in qkit/config/local.py. As this directory is now a child of src/, you are probably not supposed to touch this file. This method is deprecated (you will receive warnings).

Instead, in a parent directory, a file named qkit_local_config.py is used to configure your environment.

To migrate, copy the code in your old local.py into the new qkit_local_config.py file. Do note, however, that the datadir and logdir paths have changed. It is recommended to use the new values. Conflicting entries in your config may need to be deleted.

"My changes to the configuration are not applied after upgrading"

If your notebooks do not reside in a child directory of qkit, the qkit_local_config.py may not be found, as each notebook launches a Python process in its location running itself. Thus qkit_local_config.py may not be in any of the notebooks parent directories. In this case, either set the environment variable QKIT_LOCAL_CONFIG to your configuration, or place the configuration in your notebook directory instead.

Migrating Notebooks

The new setup assumes, that notebooks are located in notebooks/. This way, qkit_local_config.py is in a parent directory of your notebooks and is thus loaded when you initialize qkit in your notebooks.

On measurement computers, it is recommended to move your notebooks into that directory. Alternatively, update jupyter_lab_config.py to point to the notebook directory:

# Set Notebook directory
notebook_dir = 'notebooks' # Change this line

On Windows, this might be set to:

# Set Notebook directory
notebook_dir = r'C:\notebooks' # Change this line

Also, you will need to migrate your local config to a parent directory of your notebooks, or point to it using the environment variable QKIT_LOCAL_CONFIG. It is possible to set this environment variable in jupyter_lab_config.py, as environment variables are inherited to process children.

Long Term Goal: Pip Installation (NOT YET WORKING)

If you intend to actively work on the code, look at the section for developing this code. To install this package, run:

pip install 'qkit[jupyter,analysis] @ git+https://github.com/qkitgroup/qkit.git@master'

If you are simply using qkit, changes to files in src/ should not be necessary. If you find things you need to change there, this might be a bug. Please report this.

If you intend to use the option to click on .h5 files in order to open them, don't install qkit in a virtual environment.

Requirements

This project uses python. An up to date installation of python is expected to be present.

Library Usage
pyqt5 GUI
numpy, scipy, uncertainties General Usage
pyqtgraph, matplotlib Plotting
h5py Data Stroage
jupyterlab Interactive Notebooks
jupyterlab-templates Notebook Templating
pyvisa, pyvisa-py Communication with Devices
zhinst Drivers for Zurich Instruments devices
zeromq Messaging
toml Configuration

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qkit-0.4.8.tar.gz (5.5 MB view details)

Uploaded Source

Built Distribution

qkit-0.4.8-py3-none-any.whl (5.2 MB view details)

Uploaded Python 3

File details

Details for the file qkit-0.4.8.tar.gz.

File metadata

  • Download URL: qkit-0.4.8.tar.gz
  • Upload date:
  • Size: 5.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.2

File hashes

Hashes for qkit-0.4.8.tar.gz
Algorithm Hash digest
SHA256 2523dc88c8e436f035e0cf36e0d59bdadcbf9b320e28958da12860d2e8dc1c45
MD5 3058c121e76331e4b2df147b5f862528
BLAKE2b-256 8cd904c6333f3c74f3ec54ad316bd3d86a095df6b81838c3f899cddf2aef5439

See more details on using hashes here.

File details

Details for the file qkit-0.4.8-py3-none-any.whl.

File metadata

  • Download URL: qkit-0.4.8-py3-none-any.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.2

File hashes

Hashes for qkit-0.4.8-py3-none-any.whl
Algorithm Hash digest
SHA256 fdff19077b32f916e237f8d845d89ea4efd5871a4724d856f376aef7fd617194
MD5 2be61c87dd3e59128657847f85afc012
BLAKE2b-256 c4006e678ed5ef17a6b2701f8b85ff6608501462e97e704f40c6154610faa371

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page