Python bindings for DQCsim
Project description
DQCsim
DQCsim, short for Delft Quantum & Classical simulator, is a framework that can be used to tie components of quantum computer simulators together in a standardized yet flexible, developer-friendly, and reproducible way. Click here for more information!
Installation
If you're a user or a plugin developer (Python, C, or C++), the recommended way to install DQCsim is through Python's package manager:
sudo pip3 install dqcsim
This will install just the DQCsim core files and so-called "null" plugins for
testing. So you'll also want to install plugins in addition. This is currently
TODO, because there are no supported plugins yet. However, the current idea is
that these will also be distributed through pip, with a dependency on
dqcsim
. For instance, you should be able to install dqcsim-qx
through pip
to get the QX simulator with appropriate DQCsim bindings.
You can find more information here.
Getting started
Read the documentation!
Reporting bugs
We use github's issue tracker. Click here to open a new issue.
Contributing to DQCsim
TODO: until we (jvanstraten and mbrobbel) get a first release going, contributing is probably more trouble than it's worth.
What to contribute?
Check github's issue tracker to see what we're working on and what needs to be done.
Code style
For Rust code this is simple: always apply cargo format
and
cargo clippy -Dwarnings
before committing. The CI will fail if your code does
not comply. For C, C++, and Python, there isn't really a specific code style
defined right now; please just try to mimic the existing code.
Any tab character that isn't required by the language (looking at you, Make) will be shot on sight.
Building
Within the root directory of the repository resides a Cargo workspace, a Python setup.py
(using setuptools
), and a CMake buildsystem. Since we're using pip for distribution, setup.py
is the master: running python3 setup.py build
will chain to Cargo to build the Rust modules before building the Python-specific things. The C/C++ API is currently header-only, so it doesn't need to do anything with CMake. Running python3 setup.py bdist_wheel
after the build will produce a wheel file in target/python/dist
, which you can then install into a Python venv using pip; just replace dqcsim
in the install notes above with the wheel file.
Testing
Testing is done by the buildsystem associated with the language:
cargo test
will run the core test suite for DQCsim and its command-line interface.- TODO will run the C/C++ API tests.
python3 setup.py test
will run the Python API test suite.
Code coverage
TODO (read the drone/travis build instructions)
Version management & distribution
TODO
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for dqcsim-0.0.6-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de5b86adbb4759e9639be6b874578fbb20805e992de25f5364025008809a9184 |
|
MD5 | 69cd4dbf0a405bd4157653aca7af1877 |
|
BLAKE2b-256 | a32c11d1d19470474ccff06c70c379d689d5760fc696096eaafc8be1dba9ae19 |
Hashes for dqcsim-0.0.6-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e39154ba40498978adaa267c73fc1f5b95200aba8167162ad12cc094b467807 |
|
MD5 | efc1bbff457631fe530c770476dd79ca |
|
BLAKE2b-256 | f7c1374554c1e24a07f09e8dd4347f75f9897a7281b5a1d7b84b6b6ab8af866c |
Hashes for dqcsim-0.0.6-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2b98b86bbd6eab1ee68377c98127f0371c9af0c4f36221787c8436b8e217093 |
|
MD5 | 32735e8aae3019e74a81ea67d7f23e84 |
|
BLAKE2b-256 | 6ff1d5983cd6ac70f112f03fcbac2733de1f7453122f424daab78738ab62f14e |
Hashes for dqcsim-0.0.6-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9470bb6e5d8e1fc5bfba5b689b81b57eacacf42f0c0bf85d1516a067f3f24dab |
|
MD5 | b0836699cfff02b53ffff19c4eceffc9 |
|
BLAKE2b-256 | 02d67f45147f0856de07231305af624f98f8bbf03e23c586856ffb7794f88ad5 |
Hashes for dqcsim-0.0.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 262bb52bd6cf28b7bc4fd5dc37679b7c70757074acca091d86fc1208f123b05c |
|
MD5 | 7e6b69da1b19128d21f86f17190d239c |
|
BLAKE2b-256 | c34514b62726183fc78dc68d33f8a287f410d244e3c7367eae23d5acf1997986 |
Hashes for dqcsim-0.0.6-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 537edb2bb183d9a307d079e3ded584e2708fd0d87ce0c3b4391fe5a190126837 |
|
MD5 | 77959213fe9def4988503e488494a71e |
|
BLAKE2b-256 | 1966c73c1ca50bdff7f1c52267c561f79107d815537ff1e555056647f24914cb |
Hashes for dqcsim-0.0.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a4bb188c9b31bd971c0bafd033403f24e58ab72b210e42070800cf8e6ee7680 |
|
MD5 | d5780414ea408e2adeb4561e59de971d |
|
BLAKE2b-256 | 82669bfb8fa8015e19f83eefd453ae3bce12b2d571cbf92afdc6d9260c0f4a03 |