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.
Files changed (78) hide show
  1. jaqsi-0.1.0/.github/CODEOWNERS +1 -0
  2. jaqsi-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  3. jaqsi-0.1.0/.github/ISSUE_TEMPLATE/code-health.md +10 -0
  4. jaqsi-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. jaqsi-0.1.0/.github/dependabot.yml +35 -0
  6. jaqsi-0.1.0/.github/workflows/dependabot-approve.yml +27 -0
  7. jaqsi-0.1.0/.github/workflows/docs-publish.yml +77 -0
  8. jaqsi-0.1.0/.github/workflows/docs.yml +70 -0
  9. jaqsi-0.1.0/.github/workflows/publish.yml +72 -0
  10. jaqsi-0.1.0/.github/workflows/quality-publish.yml +24 -0
  11. jaqsi-0.1.0/.github/workflows/quality.yml +25 -0
  12. jaqsi-0.1.0/.github/workflows/test-on-pr.yml +27 -0
  13. jaqsi-0.1.0/.github/workflows/test-on-publish.yml +25 -0
  14. jaqsi-0.1.0/.gitignore +185 -0
  15. jaqsi-0.1.0/.pre-commit-config.yaml +12 -0
  16. jaqsi-0.1.0/CITATION.cff +28 -0
  17. jaqsi-0.1.0/CONTRIBUTING.md +63 -0
  18. jaqsi-0.1.0/LICENSE +7 -0
  19. jaqsi-0.1.0/PKG-INFO +127 -0
  20. jaqsi-0.1.0/README.md +96 -0
  21. jaqsi-0.1.0/docs/benchmarks.py +322 -0
  22. jaqsi-0.1.0/docs/diagrams.drawio +474 -0
  23. jaqsi-0.1.0/docs/figures/gates_fidelities_dark.png +0 -0
  24. jaqsi-0.1.0/docs/figures/gates_fidelities_light.png +0 -0
  25. jaqsi-0.1.0/docs/figures/invert_images.sh +24 -0
  26. jaqsi-0.1.0/docs/figures/jaqsi_overview_dark.png +0 -0
  27. jaqsi-0.1.0/docs/figures/jaqsi_overview_light.png +0 -0
  28. jaqsi-0.1.0/docs/figures/jaqsi_pulse_dark.png +0 -0
  29. jaqsi-0.1.0/docs/figures/jaqsi_pulse_light.png +0 -0
  30. jaqsi-0.1.0/docs/figures/pulse_gates_dependencies_dark.png +0 -0
  31. jaqsi-0.1.0/docs/figures/pulse_gates_dependencies_light.png +0 -0
  32. jaqsi-0.1.0/docs/figures/pulse_schedule_dark.png +0 -0
  33. jaqsi-0.1.0/docs/figures/pulse_schedule_light.png +0 -0
  34. jaqsi-0.1.0/docs/figures/pulses_structure_dark.png +0 -0
  35. jaqsi-0.1.0/docs/figures/pulses_structure_light.png +0 -0
  36. jaqsi-0.1.0/docs/index.md +50 -0
  37. jaqsi-0.1.0/docs/javascripts/mathjax.js +23 -0
  38. jaqsi-0.1.0/docs/logo.svg +114 -0
  39. jaqsi-0.1.0/docs/math_utils.md +96 -0
  40. jaqsi-0.1.0/docs/noise.md +81 -0
  41. jaqsi-0.1.0/docs/pulses.ipynb +569 -0
  42. jaqsi-0.1.0/docs/pulses.md +136 -0
  43. jaqsi-0.1.0/docs/references.md +263 -0
  44. jaqsi-0.1.0/docs/slurm_benchmark.sh +31 -0
  45. jaqsi-0.1.0/docs/style.css +10 -0
  46. jaqsi-0.1.0/docs/training.md +167 -0
  47. jaqsi-0.1.0/docs/usage.ipynb +551 -0
  48. jaqsi-0.1.0/docs/usage.md +314 -0
  49. jaqsi-0.1.0/jaqsi/__init__.py +192 -0
  50. jaqsi-0.1.0/jaqsi/drawing.py +970 -0
  51. jaqsi-0.1.0/jaqsi/evolution.py +570 -0
  52. jaqsi-0.1.0/jaqsi/gates.py +244 -0
  53. jaqsi-0.1.0/jaqsi/gateset.py +863 -0
  54. jaqsi-0.1.0/jaqsi/math.py +522 -0
  55. jaqsi-0.1.0/jaqsi/memory.py +345 -0
  56. jaqsi-0.1.0/jaqsi/noise.py +466 -0
  57. jaqsi-0.1.0/jaqsi/operations.py +822 -0
  58. jaqsi-0.1.0/jaqsi/paulis.py +597 -0
  59. jaqsi-0.1.0/jaqsi/pulses.py +1702 -0
  60. jaqsi-0.1.0/jaqsi/qoc.py +3088 -0
  61. jaqsi-0.1.0/jaqsi/qoc_results_drag.csv +4 -0
  62. jaqsi-0.1.0/jaqsi/qoc_results_gaussian.csv +4 -0
  63. jaqsi-0.1.0/jaqsi/qoc_results_square.csv +4 -0
  64. jaqsi-0.1.0/jaqsi/script.py +721 -0
  65. jaqsi-0.1.0/jaqsi/simulation.py +402 -0
  66. jaqsi-0.1.0/jaqsi/tape.py +138 -0
  67. jaqsi-0.1.0/jaqsi/unitary.py +599 -0
  68. jaqsi-0.1.0/jaqsi/utils.py +8 -0
  69. jaqsi-0.1.0/mkdocs.yml +85 -0
  70. jaqsi-0.1.0/pyproject.toml +93 -0
  71. jaqsi-0.1.0/tests/__init__.py +0 -0
  72. jaqsi-0.1.0/tests/conftest.py +21 -0
  73. jaqsi-0.1.0/tests/test_jaqsi.py +3080 -0
  74. jaqsi-0.1.0/tests/test_math.py +425 -0
  75. jaqsi-0.1.0/tests/test_pauli.py +206 -0
  76. jaqsi-0.1.0/tests/test_pulse_state.py +113 -0
  77. jaqsi-0.1.0/tests/test_qoc.py +419 -0
  78. 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,10 @@
1
+ ---
2
+ name: Code health
3
+ about: Discovered code that should be improved?
4
+ title: "[CH]"
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+
@@ -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 ]
@@ -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