Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
108481c
[QI2-1036] Add base files (#341)
oschusler Oct 30, 2025
019beea
[QI2-1720] Setup CLI scaffolding (#342)
oschusler Nov 3, 2025
fb5387a
[QI2-1722] Implemented config manager (#355)
NischalQuTech Dec 19, 2025
9314d33
[QI2-1721] Setup basic programming interface (#362)
NischalQuTech Jan 2, 2026
f903193
[QI2-1772] Improve user and project settings (#374)
NischalQuTech Jan 23, 2026
a57a561
[QI2-1724] Implemented auth management (#384)
NischalQuTech Jan 29, 2026
e1db253
[Qi2-1726] execution of algorithms (#397)
nienkeduetz Mar 23, 2026
0e298a8
[QI2-1728] job resources (#415)
nienkeduetz Mar 26, 2026
d03ab6d
[QI2-1727] compile file (#420)
nienkeduetz Apr 9, 2026
6400f37
[QI2-1729] connect cli and api (#432)
nienkeduetz Apr 28, 2026
3f853d0
[QI2-1845] refactor cli (#444)
nienkeduetz Apr 29, 2026
a40758d
[QI2-1850] Fallback to http if https raises exception (#447)
oschusler May 5, 2026
741240a
[QI2-1852] Set default number of shots if not shots available (#448)
oschusler May 7, 2026
dbd3b0c
[QI2-1853] filter projects (#449)
nienkeduetz May 7, 2026
01e0830
[QI2-1869] Add queueing formation to CLI (#459)
oschusler May 13, 2026
26b71d3
[QI2-1851] extend cli documentation (#454)
nienkeduetz May 13, 2026
aabec8b
[QI2-1870] order projects list (#471)
nienkeduetz May 21, 2026
2c53ad4
Add default values for optional arguments (#484)
hjir Jun 10, 2026
cdc2eaf
[QI2-1818] Implemented end to end tests (#483)
NischalQuTech Jun 30, 2026
f4bef23
[QI2-1899] Added job logs to cli options (#510)
NischalQuTech Aug 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,17 @@
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/python:1-3.12-bookworm",
"features": {
"ghcr.io/devcontainers-extra/features/poetry:2": {
"version": "1.8.5"
},
"ghcr.io/devcontainers-extra/features/poetry:2": {},
"ghcr.io/devcontainers-extra/features/tox:2": {}
},
"customizations": {
"vscode": {
"extensions": [
"ms-python.vscode-pylance",
"editorconfig.editorconfig",
"tamasfe.even-better-toml"
]
}
}
// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},
Expand Down
33 changes: 33 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# Override for python
[*.py]
indent_style = space
indent_size = 4

# Override for markdown
[*.{md}]
trim_trailing_whitespace = false
indent_style = space
indent_size = 2

# Override for JSON files
[*.{json,jsonc}]
indent_style = space
indent_size = 2

# Override for YAML files
[*.{yml,yaml}]
indent_style = space
indent_size = 2
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ jobs:
verbose: true
- name: Publish distribution 📦 to PyPI
if: github.event_name == 'release' && github.event.action == 'created'
uses: pypa/gh-action-pypi-publish@release/v1
uses: pypa/gh-action-pypi-publish@release/v1
77 changes: 12 additions & 65 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,68 +7,15 @@ on:
pull_request:

jobs:
lint:
name: Static analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: QuTech-Delft/GitHub-Actions/actions/python/tox-static-check@master
with:
python-version: 3.12
poetry-version: 1.8.5
unit-test:
name: Unit testing
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-15-intel # runs x64
- macos-15 # runs arm64
- windows-latest
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
runs-on: ${{ matrix.os }}
env:
PYTHON_KEYRING_BACKEND: keyring.backends.null.Keyring
steps:
- uses: actions/checkout@v7
- uses: QuTech-Delft/GitHub-Actions/actions/python/tox-unit-test@master
with:
python-version: 3.12
poetry-version: 1.8.5
complete:
# see https://github.community/t/status-check-for-a-matrix-jobs/127354/7
name: Report status
needs: [lint, unit-test]
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: Check all job status
# see https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context
# see https://stackoverflow.com/a/67532120/4907315
if: >-
${{
contains(needs.*.result, 'failure')
|| contains(needs.*.result, 'cancelled')
|| contains(needs.*.result, 'skipped')
}}
run: exit 1
auto-merge-dependabot:
name: Auto merge dependabot PR
needs: complete
if: ${{ (github.event_name == 'pull_request') && (github.actor == 'dependabot[bot]') }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
steps:
- uses: actions/checkout@v7
- uses: QuTech-Delft/GitHub-Actions/actions/generic/auto-merge@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
merge-method: squash

testing:
uses: qutech-delft/github-actions/.github/workflows/poetry-tests.yaml@master
with:
e2e_path: 'tests/e2e_test.py'
idp_url: 'https://quantum-inspire-staging.eu.auth0.com'
default_host: 'https://staging.qi2.quantum-inspire.com'
api_audience: 'compute-job-manager'
poetry-version: '2.4.1'
secrets:
e2e_username: ${{ secrets.E2E_USERNAME }}
e2e_password: ${{ secrets.E2E_PASSWORD }}
idp_client_id: ${{ secrets.IDP_CLIENT_ID }}
110 changes: 68 additions & 42 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Created by https://www.toptal.com/developers/gitignore/api/python,intellij+all,visualstudiocode,vagrant
# Edit at https://www.toptal.com/developers/gitignore?templates=python,intellij+all,visualstudiocode,vagrant
# Created by https://www.toptal.com/developers/gitignore/api/python,windows,macos,jetbrains+all,visualstudiocode
# Edit at https://www.toptal.com/developers/gitignore?templates=python,windows,macos,jetbrains+all,visualstudiocode

### Intellij+all ###
### JetBrains+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

Expand Down Expand Up @@ -80,7 +80,7 @@ fabric.properties
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### Intellij+all Patch ###
### JetBrains+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.

Expand All @@ -89,6 +89,39 @@ fabric.properties
!.idea/codeStyles
!.idea/runConfigurations

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### macOS Patch ###
# iCloud generated files
*.icloud

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down Expand Up @@ -251,15 +284,15 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

### Vagrant ###
# General
.vagrant/
### Python Patch ###
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
poetry.toml

# Log files (if you are creating logs in debug mode, uncomment this)
# *.log
# ruff
.ruff_cache/

### Vagrant Patch ###
*.box
# LSP config files
pyrightconfig.json

### VisualStudioCode ###
.vscode/*
Expand All @@ -280,42 +313,35 @@ cython_debug/
.history
.ionide

# End of https://www.toptal.com/developers/gitignore/api/python,intellij+all,visualstudiocode,vagrant
### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

### custom ignores
scratch
quantuminspire/**/output
# Folder config file
[Dd]esktop.ini

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Recycle Bin used on file shares
$RECYCLE.BIN/

# Icon must end with two \r
Icon
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

# Thumbnails
._*
# End of https://www.toptal.com/developers/gitignore/api/python,windows,macos,jetbrains+all,visualstudiocode

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
mutants

### macOS Patch ###
# iCloud generated files
*.icloud
# Persisting algorithms
**.quantuminspire
34 changes: 34 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"editor.wordWrap": "on",
"editor.wordWrapColumn": 120,
"python.analysis.autoImportCompletions": true,
"python.analysis.completeFunctionParens": true,
"python.analysis.diagnosticSeverityOverrides": {
"reportUnknownLambdaType": "none",
"reportUnknownParameterType": "warning",
"reportUnknownMemberType": "warning",
"reportUnknownArgumentType": "warning",
"reportUnknownVariableType": "warning",
"reportMissingTypeStubs": "none"
},
"python.analysis.typeCheckingMode": "strict",
"python.terminal.activateEnvironment": false,
"python.testing.pytestEnabled": true,
"python.testing.unittestEnabled": false,
"[markdown]": {
"editor.wordWrap": "on",
"editor.rulers": [
120
]
},
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
},
"python-envs.defaultEnvManager": "ms-python.python:poetry",
"python-envs.defaultPackageManager": "ms-python.python:poetry",
}
Loading
Loading