Skip to main content

libqasm Python Package

Project description

libQASM

CI Conan Center cpp-linter PyPI OS License

libQASM is a library to parse cQASM programs, developed by QuTech. At the moment, libQASM only supports cQASM v3.0 programs (see cQASM-spec for the language specification).

It performs lexical, syntactic, and semantic analysis of an input program received via a file or a string. It produces one of the following results:

  • A syntactic or semantic AST (Abstract Syntax Tree) object. Depending on if we are parsing or analysing.
  • A list of parsing or analysing errors. In case the input program was malformed.
  • A JSON representation of either the AST or the list of errors.

It can be used from:

Check out QX simulator and OpenSquirrel compiler for an example of use in a C++ and a Python project, respectively.

Getting started

Given a cQASM program example.cq.

version 3.0

qubit[2] q
bit[2] b

H q[0]
CNOT q[0], q[1]
b = measure q

We can parse or analyze this circuit using libQASM through the following programming language:

C++

#include "libqasm/v3x/cqasm-python.hpp"

int main() {
    auto parse_result = V3xAnalyzer::parse_file("example.cq");
    
    auto analyzer = V3xAnalyzer();
    auto analysis_result = analyzer.analyze_file("example.cq");
}

Emscripten

The emscripten API only allows to input a cQASM program as a string.

import { default as wrapper } from 'cqasm_emscripten.mjs';

wrapper().then(function(result: any) {
    let analyzer = new result["EmscriptenWrapper"]()
    let program = `
        version 3
        qubit[2] q
        bit[2] b 
        H q[0]
        CNOT q[0], q[1]
        b = measure q
    `
    let output = analyzer.parse_string_to_json(program)
    analyzer.delete()
}).catch((error: any) => {
    console.error("unhandledRejection", error, "\n");
});

Python

from libqasm import Analyzer

if __name__ == "__main__":
    parse_result = Analyzer.parse_file('example.cq')

    analyzer = Analyzer()
    analysis_result = analyzer.analyze_file('example.cq')

Documentation

The libQASM documentation is hosted through GitHub Pages.

License

libQASM is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Authors

Quantum Inspire: support@quantum-inspire.com

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

libqasm-1.2.0-cp312-cp312-win_amd64.whl (813.2 kB view details)

Uploaded CPython 3.12 Windows x86-64

libqasm-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

libqasm-1.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.27+ ARM64 manylinux: glibc 2.28+ ARM64

libqasm-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

libqasm-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

libqasm-1.2.0-cp311-cp311-win_amd64.whl (812.3 kB view details)

Uploaded CPython 3.11 Windows x86-64

libqasm-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

libqasm-1.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.27+ ARM64 manylinux: glibc 2.28+ ARM64

libqasm-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

libqasm-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

libqasm-1.2.0-cp310-cp310-win_amd64.whl (812.3 kB view details)

Uploaded CPython 3.10 Windows x86-64

libqasm-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

libqasm-1.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.27+ ARM64 manylinux: glibc 2.28+ ARM64

libqasm-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

libqasm-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

libqasm-1.2.0-cp39-cp39-win_amd64.whl (812.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

libqasm-1.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

libqasm-1.2.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.27+ ARM64 manylinux: glibc 2.28+ ARM64

libqasm-1.2.0-cp39-cp39-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

libqasm-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

File details

Details for the file libqasm-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: libqasm-1.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 813.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for libqasm-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d587a9f50b96824b34033649d5c12f74f87e1059bc4ac18a643b54cdcf413929
MD5 98d24429c9c12b180ab267e5e5c108ed
BLAKE2b-256 729feb4719d6873d648b106aeda9b67d54bbd280eb02ff45a8b35d2f5cb536df

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2da87aae9ba94f1d0e420ee24e3c68bef90bc51d53a96aa0b3ff3010d866ad2e
MD5 d458bc4bd456023ccb594eb42abd829d
BLAKE2b-256 964a99720f7577dac76bf1a2c7204c0213d32fcdf912f850ef46775f29194098

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 72084cd13047c0f9fc6a87682eb8ee1e91dc7715594ce7ca74f8a062e575ebdd
MD5 b01963d49c6ff922cba739c2e85bff40
BLAKE2b-256 d199ad91ebda70859c20943942f941f32cd7f9df7338fb72abe21df8a5263068

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7c3bbb747219e3fc48f93b0d36cfea898268686767f5b683ecdd1d7701da20e
MD5 4abd93d05482a702093f6c4ddf2570ad
BLAKE2b-256 1d34a8891695b38458f61e7a13d46d37b9bd805ab60a25caa7a456553ecdd915

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6bfe887d1f9bbbcd98428bc908d2336453247958eb750f7282e6fa7f0b9df45d
MD5 ef2134e81f908c16d6bb9d2c65e8cbc2
BLAKE2b-256 c1a589cab899ccafb4a8487d823c96d78cc89909c68640871b36a3c0ed728e5a

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: libqasm-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 812.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for libqasm-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3737086fbd0601433c56fab2f0cb50298aaed1ea9323e8f97d3c67656e763c1f
MD5 0ba59c92397ade3ec9c8c184c42ea6fe
BLAKE2b-256 18257a2d2f59809722d583260b1c6d139b3b3627d2df8f1b301d4276ef587e86

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 110c01bcbd12e3b2ed6e8aa50dd73e95dae8a3383b38bd1351fb90392cc46c4b
MD5 aed2019bdedace6e924a84428f8fcddf
BLAKE2b-256 664e982d967f553089cc5111a6d9c5093b8681706374fed8b3f412c5406253c0

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 123b8aa085569f25bfd852a72067fc1ac2892593852c678f320c121f6a15be3a
MD5 7e8bb8efe7472cbee76a4072f8869250
BLAKE2b-256 a9c1b0a7cd67762ab2fe079bfb06d4f65c891f0057638683254a1f70f49e12c4

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5891147046dac02ff3a2e057a3c6a66ea0138d6f6ce0e0d3680314181ec5cdfd
MD5 d0c2546946b5ea80c7ce12fd3fb5e524
BLAKE2b-256 6d75c9083600765fc909c3eec8038e16d0a1582eb1d0860e5bbe6891f78098b6

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 249358d98fca493651e4eec6dd594ead16a69ebfd08139b196cf1409cf0e03f3
MD5 8bccee26f301341ee7198f8d8de5a91d
BLAKE2b-256 c5b917a9a18bf22cdfa933359b9b9dd2b870b77ffe3feb3477b192c170ea9d89

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: libqasm-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 812.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for libqasm-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8d7d1a412ad94c0121c6ee8d707cd1ff344f7bda72557a8038b500639655fe46
MD5 b1d477ddc7b146def3b7edfd698684c5
BLAKE2b-256 7183c70a8843197a947058b383d79eb07b3a0e044c60866915339c847fccf2f9

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 11771ea65f31114d8d8f9226839445a46436a0656f90e30fe2fddf979e0fa37f
MD5 7fbe623b4c6d3b0f81eb7261bb55904b
BLAKE2b-256 89745d08718a8f300f57e70c73c16bceceeff61f2f0878f4ebd5bdc08fc85d81

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb641a6f02930ee3a82483e88684ab290e24f8125641c08a615fb4b2d744a3dd
MD5 26c5cf33c4557f1157a8286a13890f0e
BLAKE2b-256 4fdb5167b703ac5ad64bb499df92e042b986f612e59159b7da3c8af3f37d1a77

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11b30ebd51b2419257022d17e15185b6eadb5ba3917f145bd38cac374fc9f25a
MD5 e081b10bbca353f9306d0f9efeee16bc
BLAKE2b-256 f536357abedc5a8e35dcbf8dd94d3680f7f38fa777e2a812325a94d9adb62df1

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9b54c706e929d33dbdbcfefb9473c5280f816a091293bbf62a6733e0ead3502f
MD5 65e103aa24d840d9818d922f74d930f2
BLAKE2b-256 ef5151524cf5a4f407b9d8350608dbff61099fa80a4f0e7fc29afbc88053ae75

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: libqasm-1.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 812.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for libqasm-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8aced05bc75529c34c4be5afec824a04bcd30dfa00c498b9be696c41de0f1556
MD5 d50431cf8d62a1538b1e51687f9a3b63
BLAKE2b-256 035e5eddf5915bc4114a736887fdeacd6e08ad37405089692f64deec45a65e14

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c67b5698c858f8a0fc460e36a2cebaa0d4760e033cd6b7a8f34626c9c97e91d7
MD5 21e593f613e3aefa5bf731ab3ff3b2ff
BLAKE2b-256 ad475234447aa4775ec0fece5cf1870985da7f795bb0d2e2f6feb88c748bfb21

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb360afe4376dc42289ee86e708bb369ec5923e57000d3fe577b45d3d47a4a88
MD5 69b5537742294ffd354ab5793339a958
BLAKE2b-256 e376e4221c3abfe79758e985d54e8d47d74d92ecede7d413125fe1f539a36288

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d223d1790d6d640b6178e224cc0a3f0c4521a81aa3be9ed1aa8a9f0f28a4130
MD5 087d80ceb3b1534fd4dc56e9e813e2bb
BLAKE2b-256 e06fcb7d529a50ac9697ad3bd27bf2fc60195b7655727d9c72d3a723c8689a50

See more details on using hashes here.

File details

Details for the file libqasm-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for libqasm-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c61432086a243b8dea9515bb230d1ff7e7f22851da64f89b8448a842e3fa7a6b
MD5 751b578b3a55b1fff89c5fc7938eac3c
BLAKE2b-256 5266b12515e975a632e8037b5e36e0832d290ee7c21b4359dc06cc75748edc67

See more details on using hashes here.

Supported by

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