jaqsi 0.1.0__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.
- jaqsi-0.1.0/.github/CODEOWNERS +1 -0
- jaqsi-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
- jaqsi-0.1.0/.github/ISSUE_TEMPLATE/code-health.md +10 -0
- jaqsi-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- jaqsi-0.1.0/.github/dependabot.yml +35 -0
- jaqsi-0.1.0/.github/workflows/dependabot-approve.yml +27 -0
- jaqsi-0.1.0/.github/workflows/docs-publish.yml +77 -0
- jaqsi-0.1.0/.github/workflows/docs.yml +70 -0
- jaqsi-0.1.0/.github/workflows/publish.yml +72 -0
- jaqsi-0.1.0/.github/workflows/quality-publish.yml +24 -0
- jaqsi-0.1.0/.github/workflows/quality.yml +25 -0
- jaqsi-0.1.0/.github/workflows/test-on-pr.yml +27 -0
- jaqsi-0.1.0/.github/workflows/test-on-publish.yml +25 -0
- jaqsi-0.1.0/.gitignore +185 -0
- jaqsi-0.1.0/.pre-commit-config.yaml +12 -0
- jaqsi-0.1.0/CITATION.cff +28 -0
- jaqsi-0.1.0/CONTRIBUTING.md +63 -0
- jaqsi-0.1.0/LICENSE +7 -0
- jaqsi-0.1.0/PKG-INFO +127 -0
- jaqsi-0.1.0/README.md +96 -0
- jaqsi-0.1.0/docs/benchmarks.py +322 -0
- jaqsi-0.1.0/docs/diagrams.drawio +474 -0
- jaqsi-0.1.0/docs/figures/gates_fidelities_dark.png +0 -0
- jaqsi-0.1.0/docs/figures/gates_fidelities_light.png +0 -0
- jaqsi-0.1.0/docs/figures/invert_images.sh +24 -0
- jaqsi-0.1.0/docs/figures/jaqsi_overview_dark.png +0 -0
- jaqsi-0.1.0/docs/figures/jaqsi_overview_light.png +0 -0
- jaqsi-0.1.0/docs/figures/jaqsi_pulse_dark.png +0 -0
- jaqsi-0.1.0/docs/figures/jaqsi_pulse_light.png +0 -0
- jaqsi-0.1.0/docs/figures/pulse_gates_dependencies_dark.png +0 -0
- jaqsi-0.1.0/docs/figures/pulse_gates_dependencies_light.png +0 -0
- jaqsi-0.1.0/docs/figures/pulse_schedule_dark.png +0 -0
- jaqsi-0.1.0/docs/figures/pulse_schedule_light.png +0 -0
- jaqsi-0.1.0/docs/figures/pulses_structure_dark.png +0 -0
- jaqsi-0.1.0/docs/figures/pulses_structure_light.png +0 -0
- jaqsi-0.1.0/docs/index.md +50 -0
- jaqsi-0.1.0/docs/javascripts/mathjax.js +23 -0
- jaqsi-0.1.0/docs/logo.svg +114 -0
- jaqsi-0.1.0/docs/math_utils.md +96 -0
- jaqsi-0.1.0/docs/noise.md +81 -0
- jaqsi-0.1.0/docs/pulses.ipynb +569 -0
- jaqsi-0.1.0/docs/pulses.md +136 -0
- jaqsi-0.1.0/docs/references.md +263 -0
- jaqsi-0.1.0/docs/slurm_benchmark.sh +31 -0
- jaqsi-0.1.0/docs/style.css +10 -0
- jaqsi-0.1.0/docs/training.md +167 -0
- jaqsi-0.1.0/docs/usage.ipynb +551 -0
- jaqsi-0.1.0/docs/usage.md +314 -0
- jaqsi-0.1.0/jaqsi/__init__.py +192 -0
- jaqsi-0.1.0/jaqsi/drawing.py +970 -0
- jaqsi-0.1.0/jaqsi/evolution.py +570 -0
- jaqsi-0.1.0/jaqsi/gates.py +244 -0
- jaqsi-0.1.0/jaqsi/gateset.py +863 -0
- jaqsi-0.1.0/jaqsi/math.py +522 -0
- jaqsi-0.1.0/jaqsi/memory.py +345 -0
- jaqsi-0.1.0/jaqsi/noise.py +466 -0
- jaqsi-0.1.0/jaqsi/operations.py +822 -0
- jaqsi-0.1.0/jaqsi/paulis.py +597 -0
- jaqsi-0.1.0/jaqsi/pulses.py +1702 -0
- jaqsi-0.1.0/jaqsi/qoc.py +3088 -0
- jaqsi-0.1.0/jaqsi/qoc_results_drag.csv +4 -0
- jaqsi-0.1.0/jaqsi/qoc_results_gaussian.csv +4 -0
- jaqsi-0.1.0/jaqsi/qoc_results_square.csv +4 -0
- jaqsi-0.1.0/jaqsi/script.py +721 -0
- jaqsi-0.1.0/jaqsi/simulation.py +402 -0
- jaqsi-0.1.0/jaqsi/tape.py +138 -0
- jaqsi-0.1.0/jaqsi/unitary.py +599 -0
- jaqsi-0.1.0/jaqsi/utils.py +8 -0
- jaqsi-0.1.0/mkdocs.yml +85 -0
- jaqsi-0.1.0/pyproject.toml +93 -0
- jaqsi-0.1.0/tests/__init__.py +0 -0
- jaqsi-0.1.0/tests/conftest.py +21 -0
- jaqsi-0.1.0/tests/test_jaqsi.py +3080 -0
- jaqsi-0.1.0/tests/test_math.py +425 -0
- jaqsi-0.1.0/tests/test_pauli.py +206 -0
- jaqsi-0.1.0/tests/test_pulse_state.py +113 -0
- jaqsi-0.1.0/tests/test_qoc.py +419 -0
- jaqsi-0.1.0/uv.lock +1954 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/.github/ @stroblme @majafranz
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: "[BUG]"
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
**To Reproduce**
|
|
14
|
+
Steps to reproduce the behavior:
|
|
15
|
+
1. Go to '...'
|
|
16
|
+
2. Click on '....'
|
|
17
|
+
3. Scroll down to '....'
|
|
18
|
+
4. See error
|
|
19
|
+
|
|
20
|
+
**Expected behavior**
|
|
21
|
+
A clear and concise description of what you expected to happen.
|
|
22
|
+
|
|
23
|
+
**Screenshots**
|
|
24
|
+
If applicable, add screenshots to help explain your problem.
|
|
25
|
+
|
|
26
|
+
**Additional context**
|
|
27
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: "[FR]"
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
+
|
|
13
|
+
**Describe the solution you'd like**
|
|
14
|
+
A clear and concise description of what you want to happen.
|
|
15
|
+
|
|
16
|
+
**Describe alternatives you've considered**
|
|
17
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
18
|
+
|
|
19
|
+
**Additional context**
|
|
20
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#about-the-dependabotyml-file
|
|
2
|
+
version: 2
|
|
3
|
+
updates:
|
|
4
|
+
- package-ecosystem: "pip" # See documentation for possible values
|
|
5
|
+
directory: "/" # Location of package manifests
|
|
6
|
+
groups:
|
|
7
|
+
security-updates:
|
|
8
|
+
applies-to: "security-updates"
|
|
9
|
+
patterns:
|
|
10
|
+
- "*"
|
|
11
|
+
version-updates:
|
|
12
|
+
applies-to: "version-updates"
|
|
13
|
+
patterns:
|
|
14
|
+
- "*"
|
|
15
|
+
open-pull-requests-limit: 5
|
|
16
|
+
schedule:
|
|
17
|
+
day: "monday"
|
|
18
|
+
interval: "weekly"
|
|
19
|
+
time: "06:00"
|
|
20
|
+
timezone: "Europe/Amsterdam"
|
|
21
|
+
reviewers:
|
|
22
|
+
- "stroblme"
|
|
23
|
+
assignees:
|
|
24
|
+
- "stroblme"
|
|
25
|
+
- package-ecosystem: "github-actions"
|
|
26
|
+
directory: "/"
|
|
27
|
+
schedule:
|
|
28
|
+
day: "monday"
|
|
29
|
+
interval: "weekly"
|
|
30
|
+
time: "06:00"
|
|
31
|
+
timezone: "Europe/Amsterdam"
|
|
32
|
+
reviewers:
|
|
33
|
+
- "stroblme"
|
|
34
|
+
assignees:
|
|
35
|
+
- "stroblme"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Dependabot auto-approve
|
|
2
|
+
on: pull_request_target
|
|
3
|
+
|
|
4
|
+
permissions:
|
|
5
|
+
pull-requests: write
|
|
6
|
+
contents: write
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
dependabot:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'cirKITers/jaqsi'
|
|
12
|
+
steps:
|
|
13
|
+
- name: Dependabot metadata
|
|
14
|
+
id: metadata
|
|
15
|
+
uses: dependabot/fetch-metadata@25dd0e34f4fe68f24cc83900b1fe3fe149efef98
|
|
16
|
+
with:
|
|
17
|
+
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
18
|
+
- name: Approve a PR
|
|
19
|
+
run: gh pr review --approve "$PR_URL"
|
|
20
|
+
env:
|
|
21
|
+
PR_URL: ${{github.event.pull_request.html_url}}
|
|
22
|
+
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
23
|
+
- name: Enable auto-merge
|
|
24
|
+
run: gh pr merge --auto --squash "$PR_URL"
|
|
25
|
+
env:
|
|
26
|
+
PR_URL: ${{github.event.pull_request.html_url}}
|
|
27
|
+
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
name: Documentation on Publish
|
|
2
|
+
on:
|
|
3
|
+
workflow_call:
|
|
4
|
+
inputs:
|
|
5
|
+
test-run-id:
|
|
6
|
+
required: true
|
|
7
|
+
type: string
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
pages: write
|
|
11
|
+
id-token: write
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
runs-on: self-hosted
|
|
15
|
+
if: ${{ github.ref != 'refs/heads/main' }}
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v7
|
|
18
|
+
- name: Install system dependencies
|
|
19
|
+
run: sudo apt-get update && sudo apt-get install -y gcc graphviz libgraphviz-dev pkg-config
|
|
20
|
+
- name: Set up Python 3.13
|
|
21
|
+
uses: actions/setup-python@v7
|
|
22
|
+
with:
|
|
23
|
+
python-version: "3.13"
|
|
24
|
+
# cache: "uv"
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: pipx run uv sync --group docs
|
|
27
|
+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
28
|
+
# - name: Setting up Cache
|
|
29
|
+
# uses: actions/cache@v4
|
|
30
|
+
# with:
|
|
31
|
+
# key: mkdocs-material-${{ env.cache_id }}
|
|
32
|
+
# path: .ci-cache
|
|
33
|
+
# restore-keys: |
|
|
34
|
+
# mkdocs-material-
|
|
35
|
+
- name: Build Docs
|
|
36
|
+
run: pipx run uv run zensical build --strict
|
|
37
|
+
deploy:
|
|
38
|
+
runs-on: self-hosted
|
|
39
|
+
if: ${{ github.ref == 'refs/heads/main' }}
|
|
40
|
+
environment:
|
|
41
|
+
name: github-pages
|
|
42
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
43
|
+
steps:
|
|
44
|
+
- uses: actions/configure-pages@v6
|
|
45
|
+
- uses: actions/checkout@v7
|
|
46
|
+
- name: Configure Git Credentials
|
|
47
|
+
run: |
|
|
48
|
+
git config user.name github-actions[bot]
|
|
49
|
+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
50
|
+
- name: Set up Python 3.13
|
|
51
|
+
uses: actions/setup-python@v7
|
|
52
|
+
with:
|
|
53
|
+
python-version: "3.13"
|
|
54
|
+
# cache: "uv"
|
|
55
|
+
- name: Install dependencies
|
|
56
|
+
run: pipx run uv sync --group docs
|
|
57
|
+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
58
|
+
# - name: Setting up Cache
|
|
59
|
+
# uses: actions/cache@v4
|
|
60
|
+
# with:
|
|
61
|
+
# key: mkdocs-material-${{ env.cache_id }}
|
|
62
|
+
# path: .ci-cache
|
|
63
|
+
# restore-keys: |
|
|
64
|
+
# mkdocs-material-
|
|
65
|
+
- name: Download a single artifact
|
|
66
|
+
uses: actions/download-artifact@v7
|
|
67
|
+
with:
|
|
68
|
+
name: coverage-report
|
|
69
|
+
run-id: ${{ inputs.test-run-id }}
|
|
70
|
+
path: docs/coverage/
|
|
71
|
+
- name: Build Docs
|
|
72
|
+
run: pipx run uv run zensical build --strict --clean
|
|
73
|
+
- uses: actions/upload-pages-artifact@v5
|
|
74
|
+
with:
|
|
75
|
+
path: site
|
|
76
|
+
- uses: actions/deploy-pages@v5
|
|
77
|
+
id: deployment
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
branches: ["main"]
|
|
5
|
+
workflow_call:
|
|
6
|
+
inputs:
|
|
7
|
+
test-run-id:
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
permissions:
|
|
11
|
+
contents: write
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
runs-on: self-hosted
|
|
15
|
+
if: ${{ github.ref != 'refs/heads/main' }}
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v7
|
|
18
|
+
- name: Install system dependencies
|
|
19
|
+
run: sudo apt-get update && sudo apt-get install -y gcc graphviz libgraphviz-dev pkg-config
|
|
20
|
+
- name: Set up Python 3.13
|
|
21
|
+
uses: actions/setup-python@v7
|
|
22
|
+
with:
|
|
23
|
+
python-version: "3.13"
|
|
24
|
+
# cache: "uv"
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: pipx run uv sync --group docs
|
|
27
|
+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
28
|
+
# - name: Setting up Cache
|
|
29
|
+
# uses: actions/cache@v4
|
|
30
|
+
# with:
|
|
31
|
+
# key: mkdocs-material-${{ env.cache_id }}
|
|
32
|
+
# path: .ci-cache
|
|
33
|
+
# restore-keys: |
|
|
34
|
+
# mkdocs-material-
|
|
35
|
+
- name: Build Docs
|
|
36
|
+
run: pipx run uv run zensical build --strict
|
|
37
|
+
deploy:
|
|
38
|
+
runs-on: self-hosted
|
|
39
|
+
if: ${{ github.ref == 'refs/heads/main' }}
|
|
40
|
+
steps:
|
|
41
|
+
- uses: actions/checkout@v7
|
|
42
|
+
- name: Configure Git Credentials
|
|
43
|
+
run: |
|
|
44
|
+
git config user.name github-actions[bot]
|
|
45
|
+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
46
|
+
- name: Set up Python 3.13
|
|
47
|
+
uses: actions/setup-python@v7
|
|
48
|
+
with:
|
|
49
|
+
python-version: "3.13"
|
|
50
|
+
# cache: "uv"
|
|
51
|
+
- name: Install dependencies
|
|
52
|
+
run: pipx run uv sync --group docs
|
|
53
|
+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
54
|
+
# - name: Setting up Cache
|
|
55
|
+
# uses: actions/cache@v4
|
|
56
|
+
# with:
|
|
57
|
+
# key: mkdocs-material-${{ env.cache_id }}
|
|
58
|
+
# path: .ci-cache
|
|
59
|
+
# restore-keys: |
|
|
60
|
+
# mkdocs-material-
|
|
61
|
+
- name: Download a single artifact
|
|
62
|
+
uses: actions/download-artifact@v7
|
|
63
|
+
with:
|
|
64
|
+
name: coverage-report
|
|
65
|
+
run-id: ${{ inputs.test-run-id }}
|
|
66
|
+
path: docs/coverage/
|
|
67
|
+
- name: Build Docs
|
|
68
|
+
run: pipx run uv run zensical build --strict
|
|
69
|
+
- name: Deploy
|
|
70
|
+
run: pipx run uv run zensical gh-deploy --force
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: ["main"]
|
|
5
|
+
permissions:
|
|
6
|
+
contents: write
|
|
7
|
+
pages: write
|
|
8
|
+
id-token: write
|
|
9
|
+
jobs:
|
|
10
|
+
test-publish:
|
|
11
|
+
name: Trigger Expensive Tests
|
|
12
|
+
uses: ./.github/workflows/test-on-publish.yml
|
|
13
|
+
quality-publish:
|
|
14
|
+
name: Trigger Quality
|
|
15
|
+
uses: ./.github/workflows/quality-publish.yml
|
|
16
|
+
documentation-publish:
|
|
17
|
+
needs: test-publish
|
|
18
|
+
name: Trigger Documentation
|
|
19
|
+
uses: ./.github/workflows/docs-publish.yml
|
|
20
|
+
with:
|
|
21
|
+
test-run-id: ${{ github.run_id }}
|
|
22
|
+
release:
|
|
23
|
+
needs: [test-publish, quality-publish, documentation-publish]
|
|
24
|
+
name: Release
|
|
25
|
+
if: ${{ github.ref == 'refs/heads/main' }}
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v7
|
|
29
|
+
with:
|
|
30
|
+
fetch-tags: true
|
|
31
|
+
ssh-key: ${{ secrets.DEPLOY_KEY }}
|
|
32
|
+
- name: Set up Python 3.13
|
|
33
|
+
uses: actions/setup-python@v7
|
|
34
|
+
with:
|
|
35
|
+
python-version: "3.13"
|
|
36
|
+
# cache: "uv"
|
|
37
|
+
- name: Compare tag and version
|
|
38
|
+
run: |
|
|
39
|
+
git fetch --tags
|
|
40
|
+
if [ "$(git tag | sort -g | tail -1)" = "$(pipx run uv version --short)" ]; then
|
|
41
|
+
echo "The tag and the version are the same, nothing to do."
|
|
42
|
+
echo "DORELEASE=false" >> $GITHUB_ENV
|
|
43
|
+
else
|
|
44
|
+
echo "The tag ($(git tag | sort -g | tail -1)) and the version ($(pipx run uv version --short)) differ, trigging a release."
|
|
45
|
+
echo "DORELEASE=true" >> $GITHUB_ENV
|
|
46
|
+
fi
|
|
47
|
+
# - name: Update Citation
|
|
48
|
+
# if: env.DORELEASE == 'true'
|
|
49
|
+
# run: |
|
|
50
|
+
# sed -i "/^cff/! s/version:\s\S*/version: $(pipx run uv version --short)/" CITATION.cff
|
|
51
|
+
# sed -i "s/date-released:\s\S*/date-released: $(date +'%Y-%m-%d')/" CITATION.cff
|
|
52
|
+
# git config user.name github-actions[bot]
|
|
53
|
+
# git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
54
|
+
# git commit -am "Update Citation"
|
|
55
|
+
# git push
|
|
56
|
+
# env:
|
|
57
|
+
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
58
|
+
- name: Create Release & Tag
|
|
59
|
+
if: env.DORELEASE == 'true'
|
|
60
|
+
run: |
|
|
61
|
+
gh release create "$(pipx run uv version --short)" \
|
|
62
|
+
--repo="$GITHUB_REPOSITORY" \
|
|
63
|
+
--title="${GITHUB_REPOSITORY#*/} $(pipx run uv version --short)" \
|
|
64
|
+
--generate-notes
|
|
65
|
+
env:
|
|
66
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
67
|
+
- name: Publish to PyPI
|
|
68
|
+
if: env.DORELEASE == 'true'
|
|
69
|
+
run: |
|
|
70
|
+
pipx run uv sync --group dev
|
|
71
|
+
pipx run uv build
|
|
72
|
+
pipx run uv publish --token ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Quality on Publish
|
|
2
|
+
on:
|
|
3
|
+
workflow_call:
|
|
4
|
+
permissions:
|
|
5
|
+
contents: read
|
|
6
|
+
jobs:
|
|
7
|
+
quality:
|
|
8
|
+
runs-on: self-hosted
|
|
9
|
+
if: ${{ (github.actor != 'dependabot[bot]') }}
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v7
|
|
12
|
+
- name: Set up Python 3.13
|
|
13
|
+
uses: actions/setup-python@v7
|
|
14
|
+
with:
|
|
15
|
+
python-version: "3.13"
|
|
16
|
+
# cache: "uv"
|
|
17
|
+
- name: Install dependencies
|
|
18
|
+
run: pipx run uv sync --group dev
|
|
19
|
+
- name: Lint with ruff
|
|
20
|
+
run: |
|
|
21
|
+
pipx run uv run ruff check jaqsi
|
|
22
|
+
pipx run uv run ruff check tests
|
|
23
|
+
- name: Running license check
|
|
24
|
+
run: pipx run uv run licensecheck --zero --license mit
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Quality
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
branches: ["main"]
|
|
5
|
+
permissions:
|
|
6
|
+
contents: read
|
|
7
|
+
jobs:
|
|
8
|
+
quality:
|
|
9
|
+
runs-on: self-hosted
|
|
10
|
+
if: ${{ (github.actor != 'dependabot[bot]') }}
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v7
|
|
13
|
+
- name: Set up Python 3.13
|
|
14
|
+
uses: actions/setup-python@v7
|
|
15
|
+
with:
|
|
16
|
+
python-version: "3.13"
|
|
17
|
+
# cache: "uv"
|
|
18
|
+
- name: Install dependencies
|
|
19
|
+
run: pipx run uv sync --group dev
|
|
20
|
+
- name: Lint with ruff
|
|
21
|
+
run: |
|
|
22
|
+
pipx run uv run ruff check jaqsi
|
|
23
|
+
pipx run uv run ruff check tests
|
|
24
|
+
- name: Running license check
|
|
25
|
+
run: pipx run uv run licensecheck --zero --license mit
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Testing on PR
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
branches: ["main"]
|
|
5
|
+
workflow_call:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
permissions:
|
|
8
|
+
contents: write
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
jobs:
|
|
13
|
+
test-all:
|
|
14
|
+
runs-on: self-hosted
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v7
|
|
17
|
+
- name: Set up Python 3.13
|
|
18
|
+
uses: actions/setup-python@v7
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.13"
|
|
21
|
+
# cache: "uv"
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: pipx run uv sync --group dev
|
|
24
|
+
- name: Test with pytest (no benchmark)
|
|
25
|
+
run: pipx run uv run pytest --cov=jaqsi --dist load -n 2 -m "not benchmark" -v
|
|
26
|
+
- name: Test with pytest (benchmark)
|
|
27
|
+
run: pipx run uv run pytest --cov=jaqsi -m "benchmark"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Testing on Publish
|
|
2
|
+
on:
|
|
3
|
+
workflow_call:
|
|
4
|
+
permissions:
|
|
5
|
+
contents: write
|
|
6
|
+
jobs:
|
|
7
|
+
test-all:
|
|
8
|
+
runs-on: self-hosted
|
|
9
|
+
if: ${{ (github.actor != 'github-actions[bot]') }}
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v7
|
|
12
|
+
- name: Set up Python 3.13
|
|
13
|
+
uses: actions/setup-python@v7
|
|
14
|
+
with:
|
|
15
|
+
python-version: "3.13"
|
|
16
|
+
# cache: "uv"
|
|
17
|
+
- name: Install dependencies
|
|
18
|
+
run: pipx run uv sync --group dev
|
|
19
|
+
- name: Test with pytest (no benchmark)
|
|
20
|
+
run: pipx run uv run pytest --cov=jaqsi --cov-report html --dist load -n 0 -m "not benchmark"
|
|
21
|
+
- name: Share coverage report
|
|
22
|
+
uses: actions/upload-artifact@v7
|
|
23
|
+
with:
|
|
24
|
+
name: coverage-report
|
|
25
|
+
path: htmlcov/
|
jaqsi-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
.codegraph
|
|
2
|
+
.vscode
|
|
3
|
+
logs/
|
|
4
|
+
tests_external/
|
|
5
|
+
references
|
|
6
|
+
|
|
7
|
+
# General files
|
|
8
|
+
*.bkp
|
|
9
|
+
tensorboard/
|
|
10
|
+
|
|
11
|
+
# Test output
|
|
12
|
+
*.tex
|
|
13
|
+
|
|
14
|
+
# Created by https://www.toptal.com/developers/gitignore/api/python
|
|
15
|
+
# Edit at https://www.toptal.com/developers/gitignore?templates=python
|
|
16
|
+
|
|
17
|
+
### Python ###
|
|
18
|
+
# Byte-compiled / optimized / DLL files
|
|
19
|
+
__pycache__/
|
|
20
|
+
*.py[cod]
|
|
21
|
+
*$py.class
|
|
22
|
+
|
|
23
|
+
# C extensions
|
|
24
|
+
*.so
|
|
25
|
+
|
|
26
|
+
# Distribution / packaging
|
|
27
|
+
.Python
|
|
28
|
+
build/
|
|
29
|
+
develop-eggs/
|
|
30
|
+
dist/
|
|
31
|
+
downloads/
|
|
32
|
+
eggs/
|
|
33
|
+
.eggs/
|
|
34
|
+
lib/
|
|
35
|
+
lib64/
|
|
36
|
+
parts/
|
|
37
|
+
sdist/
|
|
38
|
+
var/
|
|
39
|
+
wheels/
|
|
40
|
+
share/python-wheels/
|
|
41
|
+
*.egg-info/
|
|
42
|
+
.installed.cfg
|
|
43
|
+
*.egg
|
|
44
|
+
MANIFEST
|
|
45
|
+
|
|
46
|
+
# PyInstaller
|
|
47
|
+
# Usually these files are written by a python script from a template
|
|
48
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
49
|
+
*.manifest
|
|
50
|
+
*.spec
|
|
51
|
+
|
|
52
|
+
# Installer logs
|
|
53
|
+
pip-log.txt
|
|
54
|
+
pip-delete-this-directory.txt
|
|
55
|
+
|
|
56
|
+
# Unit test / coverage reports
|
|
57
|
+
htmlcov/
|
|
58
|
+
.tox/
|
|
59
|
+
.nox/
|
|
60
|
+
.coverage
|
|
61
|
+
.coverage.*
|
|
62
|
+
.cache
|
|
63
|
+
nosetests.xml
|
|
64
|
+
coverage.xml
|
|
65
|
+
*.cover
|
|
66
|
+
*.py,cover
|
|
67
|
+
.hypothesis/
|
|
68
|
+
.pytest_cache/
|
|
69
|
+
cover/
|
|
70
|
+
|
|
71
|
+
# Translations
|
|
72
|
+
*.mo
|
|
73
|
+
*.pot
|
|
74
|
+
|
|
75
|
+
# Django stuff:
|
|
76
|
+
*.log
|
|
77
|
+
local_settings.py
|
|
78
|
+
db.sqlite3
|
|
79
|
+
db.sqlite3-journal
|
|
80
|
+
|
|
81
|
+
# Flask stuff:
|
|
82
|
+
instance/
|
|
83
|
+
.webassets-cache
|
|
84
|
+
|
|
85
|
+
# Scrapy stuff:
|
|
86
|
+
.scrapy
|
|
87
|
+
|
|
88
|
+
# Sphinx documentation
|
|
89
|
+
docs/_build/
|
|
90
|
+
|
|
91
|
+
# PyBuilder
|
|
92
|
+
.pybuilder/
|
|
93
|
+
target/
|
|
94
|
+
|
|
95
|
+
# Jupyter Notebook
|
|
96
|
+
.ipynb_checkpoints
|
|
97
|
+
|
|
98
|
+
# IPython
|
|
99
|
+
profile_default/
|
|
100
|
+
ipython_config.py
|
|
101
|
+
|
|
102
|
+
# pyenv
|
|
103
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
104
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
105
|
+
# .python-version
|
|
106
|
+
|
|
107
|
+
# pipenv
|
|
108
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
109
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
110
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
111
|
+
# install all needed dependencies.
|
|
112
|
+
#Pipfile.lock
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
# pdm
|
|
116
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
117
|
+
#pdm.lock
|
|
118
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
119
|
+
# in version control.
|
|
120
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
121
|
+
.pdm.toml
|
|
122
|
+
|
|
123
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
124
|
+
__pypackages__/
|
|
125
|
+
|
|
126
|
+
# Celery stuff
|
|
127
|
+
celerybeat-schedule
|
|
128
|
+
celerybeat.pid
|
|
129
|
+
|
|
130
|
+
# SageMath parsed files
|
|
131
|
+
*.sage.py
|
|
132
|
+
|
|
133
|
+
# Environments
|
|
134
|
+
.env
|
|
135
|
+
.venv
|
|
136
|
+
env/
|
|
137
|
+
venv/
|
|
138
|
+
ENV/
|
|
139
|
+
env.bak/
|
|
140
|
+
venv.bak/
|
|
141
|
+
.vscode/
|
|
142
|
+
|
|
143
|
+
# Spyder project settings
|
|
144
|
+
.spyderproject
|
|
145
|
+
.spyproject
|
|
146
|
+
|
|
147
|
+
# Rope project settings
|
|
148
|
+
.ropeproject
|
|
149
|
+
|
|
150
|
+
# mkdocs documentation
|
|
151
|
+
/site
|
|
152
|
+
|
|
153
|
+
# mypy
|
|
154
|
+
.mypy_cache/
|
|
155
|
+
.dmypy.json
|
|
156
|
+
dmypy.json
|
|
157
|
+
|
|
158
|
+
# Pyre type checker
|
|
159
|
+
.pyre/
|
|
160
|
+
|
|
161
|
+
# pytype static type analyzer
|
|
162
|
+
.pytype/
|
|
163
|
+
|
|
164
|
+
# Cython debug symbols
|
|
165
|
+
cython_debug/
|
|
166
|
+
|
|
167
|
+
# PyCharm
|
|
168
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
169
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
170
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
171
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
172
|
+
#.idea/
|
|
173
|
+
|
|
174
|
+
### Python Patch ###
|
|
175
|
+
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
|
|
176
|
+
poetry.toml
|
|
177
|
+
|
|
178
|
+
# ruff
|
|
179
|
+
.ruff_cache/
|
|
180
|
+
|
|
181
|
+
# LSP config files
|
|
182
|
+
pyrightconfig.json
|
|
183
|
+
|
|
184
|
+
# End of https://www.toptal.com/developers/gitignore/api/python
|
|
185
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
+
# Ruff version.
|
|
4
|
+
rev: v0.15.12
|
|
5
|
+
hooks:
|
|
6
|
+
# Run the linter.
|
|
7
|
+
- id: ruff-check
|
|
8
|
+
types_or: [ python, pyi ]
|
|
9
|
+
args: [ --fix ]
|
|
10
|
+
# Run the formatter.
|
|
11
|
+
- id: ruff-format
|
|
12
|
+
types_or: [ python, pyi ]
|
jaqsi-0.1.0/CITATION.cff
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use this software, please cite it as below."
|
|
3
|
+
authors:
|
|
4
|
+
- family-names: "Franz"
|
|
5
|
+
given-names: "Maja"
|
|
6
|
+
orcid: "https://orcid.org/0000-0002-2801-7192"
|
|
7
|
+
- family-names: "Strobl"
|
|
8
|
+
given-names: "Melvin"
|
|
9
|
+
orcid: "https://orcid.org/0000-0003-0229-9897"
|
|
10
|
+
- family-names: "Kuehn"
|
|
11
|
+
given-names: "Eileen"
|
|
12
|
+
orcid: "https://orcid.org/0000-0002-8034-8837"
|
|
13
|
+
- family-names: "van der Horst"
|
|
14
|
+
given-names: "Lucas"
|
|
15
|
+
orcid: "https://orcid.org/0009-0003-0609-9582"
|
|
16
|
+
- family-names: "Schillinger"
|
|
17
|
+
given-names: "Paul"
|
|
18
|
+
orcid: "https://orcid.org/0009-0009-1566-6220"
|
|
19
|
+
- family-names: "Hunz"
|
|
20
|
+
given-names: "Jonathan"
|
|
21
|
+
- family-names: "Wahl"
|
|
22
|
+
given-names: "Johannes"
|
|
23
|
+
title: "JAQSI"
|
|
24
|
+
version: 0.1.0
|
|
25
|
+
date-released: 2026-09-01
|
|
26
|
+
repository-code: "https://github.com/cirKITers/jaqsi"
|
|
27
|
+
url: "https://cirkiters.github.io/jaqsi"
|
|
28
|
+
license: MIT
|