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
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
Metadata Files
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:
- Ruff
- Typos
- Python (includes Pyright and Jupyter)
- GitHub Pull Requests and Issues
- SSH
- GitLens (Optional, but very useful for visualizing git history)
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.tomlfile.
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
- Website: http://www.cambridgequantum.com
- Repositories: 48
- Profile: https://github.com/CQCL
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
- actions/checkout v4 composite
- astral-sh/setup-uv v5 composite
- sphinx *
- 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 *
- 138 dependencies