QUARK-plugin-quantinuum 0.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- quark_plugin_quantinuum-0.0.1/.github/change-filters.yml +10 -0
- quark_plugin_quantinuum-0.0.1/.github/workflows/ci-tests.yml +94 -0
- quark_plugin_quantinuum-0.0.1/.github/workflows/release.yml +133 -0
- quark_plugin_quantinuum-0.0.1/.gitignore +232 -0
- quark_plugin_quantinuum-0.0.1/.pre-commit-config.yaml +44 -0
- quark_plugin_quantinuum-0.0.1/DEVELOPMENT.md +22 -0
- quark_plugin_quantinuum-0.0.1/LICENSE +201 -0
- quark_plugin_quantinuum-0.0.1/NOTICE +5 -0
- quark_plugin_quantinuum-0.0.1/PKG-INFO +233 -0
- quark_plugin_quantinuum-0.0.1/README.md +8 -0
- quark_plugin_quantinuum-0.0.1/examples/single_pipeline_local_aer_simulator.yml +5 -0
- quark_plugin_quantinuum-0.0.1/examples/single_pipeline_nexus.yml +6 -0
- quark_plugin_quantinuum-0.0.1/mypy.ini +11 -0
- quark_plugin_quantinuum-0.0.1/pyproject.toml +49 -0
- quark_plugin_quantinuum-0.0.1/setup.cfg +4 -0
- quark_plugin_quantinuum-0.0.1/src/QUARK_plugin_quantinuum.egg-info/PKG-INFO +233 -0
- quark_plugin_quantinuum-0.0.1/src/QUARK_plugin_quantinuum.egg-info/SOURCES.txt +40 -0
- quark_plugin_quantinuum-0.0.1/src/QUARK_plugin_quantinuum.egg-info/dependency_links.txt +1 -0
- quark_plugin_quantinuum-0.0.1/src/QUARK_plugin_quantinuum.egg-info/requires.txt +9 -0
- quark_plugin_quantinuum-0.0.1/src/QUARK_plugin_quantinuum.egg-info/top_level.txt +1 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/__init__.py +58 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/backends/__init__.py +13 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/backends/aer_simulator.py +83 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/backends/helpers.py +17 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/backends/quantinuuum_nexus.py +162 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/benchmarks/__init__.py +13 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/benchmarks/free_fermion/__init__.py +17 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/benchmarks/free_fermion/free_fermion.py +207 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/benchmarks/free_fermion/free_fermion_helpers.py +421 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/interfaces/__init__.py +13 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/interfaces/backend_input_pytket.py +26 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/interfaces/backend_input_qiskit.py +26 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/interfaces/backend_result.py +23 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/interfaces/nexus_compilation_result.py +28 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/interfaces/nexus_upload_result.py +30 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/miscellaneous/__init__.py +13 -0
- quark_plugin_quantinuum-0.0.1/src/quark_plugin_quantinuum/miscellaneous/nexus_upload.py +66 -0
- quark_plugin_quantinuum-0.0.1/tests/__init__.py +0 -0
- quark_plugin_quantinuum-0.0.1/tests/configs/free_fermion_test_config.yml +10 -0
- quark_plugin_quantinuum-0.0.1/tests/conftest.py +4 -0
- quark_plugin_quantinuum-0.0.1/tests/test_free_fermion.py +8 -0
- quark_plugin_quantinuum-0.0.1/uv.lock +3014 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Filters used by [dorny/path-filters](https://github.com/dorny/paths-filter)
|
|
2
|
+
# to detect changes in each subproject, and only run the corresponding jobs.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
python-tests:
|
|
6
|
+
- "src/**"
|
|
7
|
+
- "tests/**"
|
|
8
|
+
- "pyproject.toml"
|
|
9
|
+
- "uv.lock"
|
|
10
|
+
- ".github/workflows/ci-tests.yml"
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
name: Continuous integration 🐍
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- '*'
|
|
10
|
+
merge_group:
|
|
11
|
+
types: [checks_requested]
|
|
12
|
+
workflow_dispatch: {}
|
|
13
|
+
|
|
14
|
+
env:
|
|
15
|
+
# Pinned version for the uv package manager
|
|
16
|
+
UV_VERSION: "0.6.11"
|
|
17
|
+
UV_FROZEN: 1
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
# Check if changes were made to the relevant files.
|
|
21
|
+
# Always returns true if running on the default branch, to ensure all changes are thoroughly checked.
|
|
22
|
+
changes:
|
|
23
|
+
name: Check for changes in Python files
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
# Required permissions
|
|
26
|
+
permissions:
|
|
27
|
+
pull-requests: read
|
|
28
|
+
# Set job outputs to values from filter step
|
|
29
|
+
outputs:
|
|
30
|
+
has-changes: ${{ github.ref_name == github.event.repository.default_branch || steps.filter.outputs.python-tests }}
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
- uses: dorny/paths-filter@v3
|
|
34
|
+
id: filter
|
|
35
|
+
with:
|
|
36
|
+
filters: .github/change-filters.yml
|
|
37
|
+
|
|
38
|
+
check:
|
|
39
|
+
needs: changes
|
|
40
|
+
if: ${{ needs.changes.outputs.has-changes == 'true' }}
|
|
41
|
+
|
|
42
|
+
name: check python ${{ matrix.python-version }}
|
|
43
|
+
runs-on: ubuntu-latest
|
|
44
|
+
|
|
45
|
+
strategy:
|
|
46
|
+
matrix:
|
|
47
|
+
python-version: ['3.12', '3.13']
|
|
48
|
+
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@v4
|
|
51
|
+
- name: Set up uv
|
|
52
|
+
uses: astral-sh/setup-uv@v5
|
|
53
|
+
with:
|
|
54
|
+
version: ${{ env.UV_VERSION }}
|
|
55
|
+
enable-cache: true
|
|
56
|
+
- name: Setup dependencies.
|
|
57
|
+
run: uv sync --python ${{ matrix.python-version }}
|
|
58
|
+
|
|
59
|
+
- name: Type check with mypy
|
|
60
|
+
run: uv run mypy .
|
|
61
|
+
|
|
62
|
+
- name: Check formatting with ruff
|
|
63
|
+
run: uv run ruff format --check
|
|
64
|
+
|
|
65
|
+
- name: Lint with ruff
|
|
66
|
+
run: uv run ruff check
|
|
67
|
+
|
|
68
|
+
- name: Run tests
|
|
69
|
+
run: |
|
|
70
|
+
uv run pytest
|
|
71
|
+
|
|
72
|
+
# This is a meta job to mark successful completion of the required checks,
|
|
73
|
+
# even if they are skipped due to no changes in the relevant files.
|
|
74
|
+
required-checks:
|
|
75
|
+
name: Required checks 🐍
|
|
76
|
+
needs: [changes, check]
|
|
77
|
+
if: ${{ !cancelled() }}
|
|
78
|
+
runs-on: ubuntu-latest
|
|
79
|
+
steps:
|
|
80
|
+
- name: Fail if required checks failed
|
|
81
|
+
# This condition should simply be `if: failure() || cancelled()`,
|
|
82
|
+
# but there seems to be a bug in the github workflow runner.
|
|
83
|
+
#
|
|
84
|
+
# See https://github.com/orgs/community/discussions/80788
|
|
85
|
+
if: |
|
|
86
|
+
needs.changes.result == 'failure' || needs.changes.result == 'cancelled' ||
|
|
87
|
+
needs.check.result == 'failure' || needs.check.result == 'cancelled'
|
|
88
|
+
run: |
|
|
89
|
+
echo "Required checks failed"
|
|
90
|
+
echo "Please check the logs for more information"
|
|
91
|
+
exit 1
|
|
92
|
+
- name: Pass if required checks passed
|
|
93
|
+
run: |
|
|
94
|
+
echo "All required checks passed"
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches:
|
|
6
|
+
- "*"
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
release:
|
|
11
|
+
types:
|
|
12
|
+
- published
|
|
13
|
+
|
|
14
|
+
env:
|
|
15
|
+
UV_VERSION: "0.6.11"
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
build:
|
|
19
|
+
name: Build distribution
|
|
20
|
+
if: ${{ github.event_name == 'pull_request' || github.event_name == 'push' }}
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
steps:
|
|
25
|
+
- name: Check out repository
|
|
26
|
+
uses: actions/checkout@v4
|
|
27
|
+
with:
|
|
28
|
+
fetch-depth: 0
|
|
29
|
+
|
|
30
|
+
- name: Set up Python
|
|
31
|
+
uses: actions/setup-python@v5
|
|
32
|
+
with:
|
|
33
|
+
python-version: "3.12"
|
|
34
|
+
|
|
35
|
+
- name: Set up uv
|
|
36
|
+
uses: astral-sh/setup-uv@v5
|
|
37
|
+
with:
|
|
38
|
+
version: ${{ env.UV_VERSION }}
|
|
39
|
+
enable-cache: true
|
|
40
|
+
|
|
41
|
+
- name: Build distributions
|
|
42
|
+
run: uv build
|
|
43
|
+
|
|
44
|
+
- name: Upload distributions artifact
|
|
45
|
+
uses: actions/upload-artifact@v4
|
|
46
|
+
with:
|
|
47
|
+
name: python-package-distributions-ci
|
|
48
|
+
path: dist/
|
|
49
|
+
if-no-files-found: error
|
|
50
|
+
|
|
51
|
+
release-build:
|
|
52
|
+
name: Build release distribution
|
|
53
|
+
if: ${{ github.event_name == 'release' }}
|
|
54
|
+
runs-on: ubuntu-latest
|
|
55
|
+
permissions:
|
|
56
|
+
contents: read
|
|
57
|
+
outputs:
|
|
58
|
+
package-version: ${{ steps.package-version.outputs.version }}
|
|
59
|
+
steps:
|
|
60
|
+
- name: Check out release tag
|
|
61
|
+
uses: actions/checkout@v4
|
|
62
|
+
with:
|
|
63
|
+
fetch-depth: 0
|
|
64
|
+
ref: refs/tags/${{ github.event.release.tag_name }}
|
|
65
|
+
|
|
66
|
+
- name: Set up Python
|
|
67
|
+
uses: actions/setup-python@v5
|
|
68
|
+
with:
|
|
69
|
+
python-version: "3.12"
|
|
70
|
+
|
|
71
|
+
- name: Set up uv
|
|
72
|
+
uses: astral-sh/setup-uv@v5
|
|
73
|
+
with:
|
|
74
|
+
version: ${{ env.UV_VERSION }}
|
|
75
|
+
enable-cache: true
|
|
76
|
+
|
|
77
|
+
- name: Build distributions
|
|
78
|
+
run: uv build
|
|
79
|
+
|
|
80
|
+
- name: Read built version
|
|
81
|
+
id: package-version
|
|
82
|
+
run: |
|
|
83
|
+
python - <<'PY'
|
|
84
|
+
import os
|
|
85
|
+
from pathlib import Path
|
|
86
|
+
|
|
87
|
+
wheel = next(Path("dist").glob("*.whl"))
|
|
88
|
+
version = wheel.name.split("-")[1]
|
|
89
|
+
github_output = Path(os.environ["GITHUB_OUTPUT"])
|
|
90
|
+
with github_output.open("a", encoding="utf-8") as fh:
|
|
91
|
+
fh.write(f"version={version}\n")
|
|
92
|
+
PY
|
|
93
|
+
|
|
94
|
+
- name: Upload distributions artifact
|
|
95
|
+
uses: actions/upload-artifact@v4
|
|
96
|
+
with:
|
|
97
|
+
name: python-package-distributions-release
|
|
98
|
+
path: dist/
|
|
99
|
+
if-no-files-found: error
|
|
100
|
+
|
|
101
|
+
publish:
|
|
102
|
+
name: Publish to PyPI
|
|
103
|
+
if: ${{ github.event_name == 'release' }}
|
|
104
|
+
needs: release-build
|
|
105
|
+
runs-on: ubuntu-latest
|
|
106
|
+
environment:
|
|
107
|
+
name: pypi
|
|
108
|
+
url: https://pypi.org/p/QUARK-plugin-quantinuum
|
|
109
|
+
permissions:
|
|
110
|
+
id-token: write
|
|
111
|
+
steps:
|
|
112
|
+
- name: Download distributions
|
|
113
|
+
uses: actions/download-artifact@v4
|
|
114
|
+
with:
|
|
115
|
+
name: python-package-distributions-release
|
|
116
|
+
path: dist/
|
|
117
|
+
|
|
118
|
+
- name: Publish distributions
|
|
119
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
120
|
+
|
|
121
|
+
release-summary:
|
|
122
|
+
name: Release summary
|
|
123
|
+
if: ${{ github.event_name == 'release' && success() }}
|
|
124
|
+
needs: [release-build, publish]
|
|
125
|
+
runs-on: ubuntu-latest
|
|
126
|
+
steps:
|
|
127
|
+
- name: Summarize release
|
|
128
|
+
run: |
|
|
129
|
+
{
|
|
130
|
+
echo "Published version \`${{ needs.release-build.outputs.package-version }}\` to PyPI."
|
|
131
|
+
echo
|
|
132
|
+
echo "Package page: https://pypi.org/project/QUARK-plugin-quantinuum/${{ needs.release-build.outputs.package-version }}/"
|
|
133
|
+
} >> "${GITHUB_STEP_SUMMARY}"
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# === Custom files ===
|
|
2
|
+
benchmark_runs
|
|
3
|
+
.idea
|
|
4
|
+
*.pkl
|
|
5
|
+
*.png
|
|
6
|
+
# === Custom files ===
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# Byte-compiled / optimized / DLL files
|
|
11
|
+
__pycache__/
|
|
12
|
+
*.py[cod]
|
|
13
|
+
*$py.class
|
|
14
|
+
|
|
15
|
+
# C extensions
|
|
16
|
+
*.so
|
|
17
|
+
|
|
18
|
+
# Distribution / packaging
|
|
19
|
+
.Python
|
|
20
|
+
build/
|
|
21
|
+
develop-eggs/
|
|
22
|
+
dist/
|
|
23
|
+
downloads/
|
|
24
|
+
eggs/
|
|
25
|
+
.eggs/
|
|
26
|
+
lib/
|
|
27
|
+
lib64/
|
|
28
|
+
parts/
|
|
29
|
+
sdist/
|
|
30
|
+
var/
|
|
31
|
+
wheels/
|
|
32
|
+
share/python-wheels/
|
|
33
|
+
*.egg-info/
|
|
34
|
+
.installed.cfg
|
|
35
|
+
*.egg
|
|
36
|
+
MANIFEST
|
|
37
|
+
|
|
38
|
+
# PyInstaller
|
|
39
|
+
# Usually these files are written by a python script from a template
|
|
40
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
41
|
+
*.manifest
|
|
42
|
+
*.spec
|
|
43
|
+
|
|
44
|
+
# Installer logs
|
|
45
|
+
pip-log.txt
|
|
46
|
+
pip-delete-this-directory.txt
|
|
47
|
+
|
|
48
|
+
# Unit test / coverage reports
|
|
49
|
+
htmlcov/
|
|
50
|
+
.tox/
|
|
51
|
+
.nox/
|
|
52
|
+
.coverage
|
|
53
|
+
.coverage.*
|
|
54
|
+
.cache
|
|
55
|
+
nosetests.xml
|
|
56
|
+
coverage.xml
|
|
57
|
+
*.cover
|
|
58
|
+
*.py,cover
|
|
59
|
+
.hypothesis/
|
|
60
|
+
.pytest_cache/
|
|
61
|
+
cover/
|
|
62
|
+
|
|
63
|
+
# Translations
|
|
64
|
+
*.mo
|
|
65
|
+
*.pot
|
|
66
|
+
|
|
67
|
+
# Django stuff:
|
|
68
|
+
*.log
|
|
69
|
+
local_settings.py
|
|
70
|
+
db.sqlite3
|
|
71
|
+
db.sqlite3-journal
|
|
72
|
+
|
|
73
|
+
# Flask stuff:
|
|
74
|
+
instance/
|
|
75
|
+
.webassets-cache
|
|
76
|
+
|
|
77
|
+
# Scrapy stuff:
|
|
78
|
+
.scrapy
|
|
79
|
+
|
|
80
|
+
# Sphinx documentation
|
|
81
|
+
docs/_build/
|
|
82
|
+
|
|
83
|
+
# PyBuilder
|
|
84
|
+
.pybuilder/
|
|
85
|
+
target/
|
|
86
|
+
|
|
87
|
+
# Jupyter Notebook
|
|
88
|
+
.ipynb_checkpoints
|
|
89
|
+
|
|
90
|
+
# IPython
|
|
91
|
+
profile_default/
|
|
92
|
+
ipython_config.py
|
|
93
|
+
|
|
94
|
+
# pyenv
|
|
95
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
96
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
97
|
+
# .python-version
|
|
98
|
+
|
|
99
|
+
# pipenv
|
|
100
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
101
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
102
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
103
|
+
# install all needed dependencies.
|
|
104
|
+
#Pipfile.lock
|
|
105
|
+
|
|
106
|
+
# UV
|
|
107
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
108
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
109
|
+
# commonly ignored for libraries.
|
|
110
|
+
#uv.lock
|
|
111
|
+
|
|
112
|
+
# poetry
|
|
113
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
114
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
115
|
+
# commonly ignored for libraries.
|
|
116
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
117
|
+
#poetry.lock
|
|
118
|
+
|
|
119
|
+
# pdm
|
|
120
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
121
|
+
#pdm.lock
|
|
122
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
123
|
+
# in version control.
|
|
124
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
|
125
|
+
.pdm.toml
|
|
126
|
+
.pdm-python
|
|
127
|
+
.pdm-build/
|
|
128
|
+
|
|
129
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
130
|
+
__pypackages__/
|
|
131
|
+
|
|
132
|
+
# Celery stuff
|
|
133
|
+
celerybeat-schedule
|
|
134
|
+
celerybeat.pid
|
|
135
|
+
|
|
136
|
+
# SageMath parsed files
|
|
137
|
+
*.sage.py
|
|
138
|
+
|
|
139
|
+
# Environments
|
|
140
|
+
.env
|
|
141
|
+
.venv
|
|
142
|
+
env/
|
|
143
|
+
venv/
|
|
144
|
+
ENV/
|
|
145
|
+
env.bak/
|
|
146
|
+
venv.bak/
|
|
147
|
+
|
|
148
|
+
# Spyder project settings
|
|
149
|
+
.spyderproject
|
|
150
|
+
.spyproject
|
|
151
|
+
|
|
152
|
+
# Rope project settings
|
|
153
|
+
.ropeproject
|
|
154
|
+
|
|
155
|
+
# mkdocs documentation
|
|
156
|
+
/site
|
|
157
|
+
|
|
158
|
+
# mypy
|
|
159
|
+
.mypy_cache/
|
|
160
|
+
.dmypy.json
|
|
161
|
+
dmypy.json
|
|
162
|
+
|
|
163
|
+
# Pyre type checker
|
|
164
|
+
.pyre/
|
|
165
|
+
|
|
166
|
+
# pytype static type analyzer
|
|
167
|
+
.pytype/
|
|
168
|
+
|
|
169
|
+
# Cython debug symbols
|
|
170
|
+
cython_debug/
|
|
171
|
+
|
|
172
|
+
# PyCharm
|
|
173
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
174
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
175
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
176
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
177
|
+
#.idea/
|
|
178
|
+
|
|
179
|
+
# Ruff stuff:
|
|
180
|
+
.ruff_cache/
|
|
181
|
+
|
|
182
|
+
# PyPI configuration file
|
|
183
|
+
.pypirc
|
|
184
|
+
|
|
185
|
+
# Latex
|
|
186
|
+
*.acn
|
|
187
|
+
*.acr
|
|
188
|
+
*.alg
|
|
189
|
+
*.aux
|
|
190
|
+
*.bak
|
|
191
|
+
*.bbl
|
|
192
|
+
*.bcf
|
|
193
|
+
*.blg
|
|
194
|
+
*.brf
|
|
195
|
+
*.bst
|
|
196
|
+
*.dvi
|
|
197
|
+
*.fdb_latexmk
|
|
198
|
+
*.fls
|
|
199
|
+
*.glg
|
|
200
|
+
*.glo
|
|
201
|
+
*.gls
|
|
202
|
+
*.idx
|
|
203
|
+
*.ilg
|
|
204
|
+
*.ind
|
|
205
|
+
*.ist
|
|
206
|
+
*.lof
|
|
207
|
+
*.log
|
|
208
|
+
*.lol
|
|
209
|
+
*.lot
|
|
210
|
+
*.maf
|
|
211
|
+
*.mtc
|
|
212
|
+
*.mtc1
|
|
213
|
+
*.nav
|
|
214
|
+
*.nlo
|
|
215
|
+
*.nls
|
|
216
|
+
*.out
|
|
217
|
+
*.pdf
|
|
218
|
+
*.pyg
|
|
219
|
+
*.run.xml
|
|
220
|
+
*.snm
|
|
221
|
+
*.synctex.gz
|
|
222
|
+
*.tex.backup
|
|
223
|
+
*.tex~
|
|
224
|
+
*.thm
|
|
225
|
+
*.toc
|
|
226
|
+
*.vrb
|
|
227
|
+
*.xdy
|
|
228
|
+
*.xml
|
|
229
|
+
*blx.bib
|
|
230
|
+
.bak
|
|
231
|
+
.mtc
|
|
232
|
+
build/
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v4.5.0 # Use the ref you want to point at
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-added-large-files
|
|
6
|
+
- id: check-case-conflict
|
|
7
|
+
- id: check-executables-have-shebangs
|
|
8
|
+
- id: check-merge-conflict
|
|
9
|
+
- id: check-toml
|
|
10
|
+
- id: check-vcs-permalinks
|
|
11
|
+
- id: check-yaml
|
|
12
|
+
- id: detect-private-key
|
|
13
|
+
- id: end-of-file-fixer
|
|
14
|
+
- id: trailing-whitespace
|
|
15
|
+
- id: fix-byte-order-marker
|
|
16
|
+
- id: mixed-line-ending
|
|
17
|
+
# Python-specific
|
|
18
|
+
- id: check-ast
|
|
19
|
+
- id: check-docstring-first
|
|
20
|
+
- id: debug-statements
|
|
21
|
+
|
|
22
|
+
- repo: local
|
|
23
|
+
hooks:
|
|
24
|
+
- id: ruff-format
|
|
25
|
+
name: ruff format
|
|
26
|
+
description: Format python code with `ruff`.
|
|
27
|
+
entry: uv run ruff format
|
|
28
|
+
language: system
|
|
29
|
+
files: \.py$
|
|
30
|
+
pass_filenames: false
|
|
31
|
+
- id: ruff-check
|
|
32
|
+
name: ruff
|
|
33
|
+
description: Check python code with `ruff`.
|
|
34
|
+
entry: uv run ruff check --fix --exit-non-zero-on-fix
|
|
35
|
+
language: system
|
|
36
|
+
files: \.py$
|
|
37
|
+
pass_filenames: false
|
|
38
|
+
- id: mypy-check
|
|
39
|
+
name: mypy
|
|
40
|
+
description: Check python code with `mypy`.
|
|
41
|
+
entry: uv run mypy .
|
|
42
|
+
language: system
|
|
43
|
+
files: \.py$
|
|
44
|
+
pass_filenames: false
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Development
|
|
2
|
+
|
|
3
|
+
## Publishing to PyPI
|
|
4
|
+
|
|
5
|
+
Publishing is handled by the GitHub Actions workflow in `.github/workflows/release.yml`.
|
|
6
|
+
|
|
7
|
+
Pull requests and pushes to `main` build the sdist and wheel with `uv build` to validate packaging.
|
|
8
|
+
|
|
9
|
+
To publish:
|
|
10
|
+
|
|
11
|
+
1. Configure this GitHub repository as a trusted publisher for the `QUARK-plugin-quantinuum` project on PyPI.
|
|
12
|
+
2. Create a GitHub Release for the version you want to publish.
|
|
13
|
+
3. When the release is published, the workflow will build the sdist and wheel from the release tag and upload them to PyPI.
|
|
14
|
+
|
|
15
|
+
## Versioning
|
|
16
|
+
|
|
17
|
+
Package versions are derived from git tags via `setuptools-scm`.
|
|
18
|
+
|
|
19
|
+
- A release created from tag `v0.1.0` will publish package version `0.1.0`.
|
|
20
|
+
- Development builds created from commits after a tag will get an auto-generated development version.
|
|
21
|
+
|
|
22
|
+
Each GitHub Release should therefore point at a clean version tag such as `v0.1.0`.
|