https://github.com/cqcl/qtnm-tts

https://github.com/cqcl/qtnm-tts

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: CQCL
  • Language: Python
  • Default Branch: main
  • Size: 374 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme

README.md

qtnmtts

This is a Python 3.12 app called qtnmtts. It is an Quantinuum library for truncated taylor series LCU algorithms.

Project Structure

The project is structured as follows:

  • Circuits: Circuit primitives which can be combined to build a set of quantum algorithms.
  • Measurement: Interchangeable routines which measure the quantum circuit.
  • Operators: Operators which can be used in the circuits.

Installation

To install the project, clone the repository and run:

sh python -m pip install --upgrade pip python -m pip install uv uv venv .venv -p 3.12 source .venv/bin/activate uv sync pre-commit install pre-commit run --all-files

Developers

It is strongly recommended developers use VSCode, using the configuration provided in .vscode.

Useful extensions:

qtnmtts uses pre-commit via a .pre-commit-config.yaml. This runs a series of checks on each local commit to make sure your code is up to the correct standard of the library. It will be annoying at first, but lead to very high code quality. These are:

  • Ruff-format: This is a reformatter. If your code is not formatted correctly, it will be reformatted on the commit. If this happens, just commit again and it should pass the reformatting.
  • Ruff: Ruff is the fastest, most modern Python linter written in Rust. Think of it as a code spell checker Ruff Documentation. It will keep your code to a good standard and give you lots of warnings and errors as you develop the code. These will also show up in the problems bar (VSCode). If you commit without fixing these, your commit will fail. Ruff also ensures docstrings are formatted correctly, where we use the Google style for readability. If your docstrings are not good enough, you will not be able to commit your code.
  • Pyright: Pyright is a C++ Python type checker Pyright Documentation. It comes with Pylance (Python language server) in VSCode. It enforces you to have all the object input and output types correctly defined. If this is not the case, your commit will fail. Type checking errors will appear in the problems bar (VSCode).
  • typos: This is a spell checker for your code. It will check all the strings in your code to make sure they are spelled correctly. If they are not, you will not be able to commit your code. It will autofix your code on commit and give you a diff. False positives can be added to the ._typos.toml file.

Because we are using Pyright and Ruff, pre-commit should be very quick and barely noticeable, hence leading to a much better developer experience and higher code quality.

Testing

We use pytest with .conftest.py and lazy_fixture to ensure test parameterization is easy pytest parameterization. When developing a feature, please always have a test in mind. Feature branches will not be accepted without extensive testing.

Pytest can be run in parallel locally with the following command:

sh pytest --workers auto --tests-per-worker auto

These run on PR and pushes to main and research via a GitHub action .github/workflows/python_app.yml. This will run the tests in parallel on the GitHub runners.

CI

The same pre-commit hooks are run in the CI via GitHub actions. These ensure local commits should pass the linting and type checking CI. All tests are run in CI. The CO workflows are in .github/workflows/python_app.yml.

Owner

  • Name: Cambridge Quantum
  • Login: CQCL
  • Kind: organization
  • Location: Cambridge, UK

Quantum Software and Technologies

GitHub Events

Total
  • Delete event: 1
  • Member event: 1
  • Push event: 4
  • Pull request event: 2
  • Create event: 1
Last Year
  • Delete event: 1
  • Member event: 1
  • Push event: 4
  • Pull request event: 2
  • Create event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: less than a minute
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: less than a minute
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • msze-quantinuum (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/python-app.yml actions
  • actions/checkout v4 composite
  • astral-sh/setup-uv v5 composite
docs/requirements.txt pypi
  • sphinx *
pyproject.toml pypi
  • black *
  • ipykernel *
  • matplotlib *
  • nbconvert *
  • nbformat *
  • numpy <2.0
  • pandas *
  • pandas-stubs *
  • pre-commit *
  • py *
  • pyright *
  • pytest <8.0.0
  • pytest-lazy-fixture *
  • pytest-parallel *
  • pytket *
  • pytket-qiskit *
  • pytket-qulacs *
  • sphinx *
  • sympy *
  • types-setuptools *
  • wheel *
uv.lock pypi
  • 138 dependencies