async-kernel 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.
- async_kernel-0.1.0/.github/dependabot.yaml +16 -0
- async_kernel-0.1.0/.github/release.yml +27 -0
- async_kernel-0.1.0/.github/workflows/ci.yml +95 -0
- async_kernel-0.1.0/.github/workflows/enforce-label.yml +17 -0
- async_kernel-0.1.0/.github/workflows/new_release.yml +65 -0
- async_kernel-0.1.0/.github/workflows/publish-docs.yml +62 -0
- async_kernel-0.1.0/.github/workflows/publish-to-pypi.yml +117 -0
- async_kernel-0.1.0/.gitignore +15 -0
- async_kernel-0.1.0/.pre-commit-config.yaml +88 -0
- async_kernel-0.1.0/.vscode/launch.json +31 -0
- async_kernel-0.1.0/.vscode/settings.json +22 -0
- async_kernel-0.1.0/.vscode/spellright.dict +10 -0
- async_kernel-0.1.0/CHANGELOG.md +113 -0
- async_kernel-0.1.0/CONTRIBUTING.md +157 -0
- async_kernel-0.1.0/IPYTHON_LICENSE +30 -0
- async_kernel-0.1.0/LICENSE +22 -0
- async_kernel-0.1.0/PKG-INFO +94 -0
- async_kernel-0.1.0/README.md +52 -0
- async_kernel-0.1.0/_version.py +34 -0
- async_kernel-0.1.0/cliff.toml +95 -0
- async_kernel-0.1.0/docs/about/changelog.md +1 -0
- async_kernel-0.1.0/docs/about/contributing.md +1 -0
- async_kernel-0.1.0/docs/about/index.md +6 -0
- async_kernel-0.1.0/docs/about/license.md +1 -0
- async_kernel-0.1.0/docs/caller.ipynb +173 -0
- async_kernel-0.1.0/docs/commands.md +73 -0
- async_kernel-0.1.0/docs/contributing.md +1 -0
- async_kernel-0.1.0/docs/index.md +7 -0
- async_kernel-0.1.0/docs/javascripts/extra.js +0 -0
- async_kernel-0.1.0/docs/license.md +11 -0
- async_kernel-0.1.0/docs/notebooks/caller.ipynb +173 -0
- async_kernel-0.1.0/docs/notebooks/concurrency.ipynb +364 -0
- async_kernel-0.1.0/docs/notebooks/index.md +18 -0
- async_kernel-0.1.0/docs/notebooks/simple_example.ipynb +180 -0
- async_kernel-0.1.0/docs/overrides/main.html +15 -0
- async_kernel-0.1.0/docs/reference/asyncshell.md +1 -0
- async_kernel-0.1.0/docs/reference/caller.md +1 -0
- async_kernel-0.1.0/docs/reference/command.md +9 -0
- async_kernel-0.1.0/docs/reference/index.md +14 -0
- async_kernel-0.1.0/docs/reference/kernel.md +1 -0
- async_kernel-0.1.0/docs/reference/typing.md +1 -0
- async_kernel-0.1.0/docs/reference/utils.md +1 -0
- async_kernel-0.1.0/docs/stylesheets/extra.css +3 -0
- async_kernel-0.1.0/hatch_build.py +17 -0
- async_kernel-0.1.0/mkdocs.yml +175 -0
- async_kernel-0.1.0/pyproject.toml +235 -0
- async_kernel-0.1.0/src/async_kernel/__init__.py +34 -0
- async_kernel-0.1.0/src/async_kernel/__main__.py +4 -0
- async_kernel-0.1.0/src/async_kernel/asyncshell.py +313 -0
- async_kernel-0.1.0/src/async_kernel/caller.py +745 -0
- async_kernel-0.1.0/src/async_kernel/comm.py +116 -0
- async_kernel-0.1.0/src/async_kernel/command.py +158 -0
- async_kernel-0.1.0/src/async_kernel/compiler.py +96 -0
- async_kernel-0.1.0/src/async_kernel/debugger.py +584 -0
- async_kernel-0.1.0/src/async_kernel/iostream.py +65 -0
- async_kernel-0.1.0/src/async_kernel/kernel.py +997 -0
- async_kernel-0.1.0/src/async_kernel/kernelspec.py +129 -0
- async_kernel-0.1.0/src/async_kernel/resources/logo-32x32.png +0 -0
- async_kernel-0.1.0/src/async_kernel/resources/logo-64x64.png +0 -0
- async_kernel-0.1.0/src/async_kernel/resources/logo-svg.svg +265 -0
- async_kernel-0.1.0/src/async_kernel/typing.py +310 -0
- async_kernel-0.1.0/src/async_kernel/utils.py +116 -0
- async_kernel-0.1.0/tests/__init__.py +0 -0
- async_kernel-0.1.0/tests/conftest.py +116 -0
- async_kernel-0.1.0/tests/references.py +252 -0
- async_kernel-0.1.0/tests/test_caller.py +463 -0
- async_kernel-0.1.0/tests/test_comm.py +101 -0
- async_kernel-0.1.0/tests/test_command.py +222 -0
- async_kernel-0.1.0/tests/test_debugger.py +198 -0
- async_kernel-0.1.0/tests/test_iostream.py +38 -0
- async_kernel-0.1.0/tests/test_kernel.py +577 -0
- async_kernel-0.1.0/tests/test_kernelspec.py +18 -0
- async_kernel-0.1.0/tests/test_message_spec.py +265 -0
- async_kernel-0.1.0/tests/test_start_in_context.py +36 -0
- async_kernel-0.1.0/tests/test_typing.py +43 -0
- async_kernel-0.1.0/tests/test_utils.py +54 -0
- async_kernel-0.1.0/tests/utils.py +178 -0
- async_kernel-0.1.0/uv.lock +3020 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Maintain dependencies for GitHub Actions
|
|
4
|
+
- package-ecosystem: "github-actions"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
groups:
|
|
9
|
+
actions:
|
|
10
|
+
patterns:
|
|
11
|
+
- "*"
|
|
12
|
+
# https://docs.astral.sh/uv/guides/integration/dependency-bots/#dependabot
|
|
13
|
+
- package-ecosystem: "uv"
|
|
14
|
+
directory: "/"
|
|
15
|
+
schedule:
|
|
16
|
+
interval: "weekly"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
changelog:
|
|
2
|
+
exclude:
|
|
3
|
+
authors:
|
|
4
|
+
- dependabot
|
|
5
|
+
- pre-commit-ci
|
|
6
|
+
categories:
|
|
7
|
+
- title: 🏗️ Breaking Changes
|
|
8
|
+
labels:
|
|
9
|
+
- Semver-Major
|
|
10
|
+
- breaking-change
|
|
11
|
+
- title: 🚀 Features
|
|
12
|
+
labels:
|
|
13
|
+
- feature
|
|
14
|
+
- enhancement
|
|
15
|
+
- title: 🧪 Dependencies
|
|
16
|
+
labels:
|
|
17
|
+
- update
|
|
18
|
+
- title: 🐛 Fixes
|
|
19
|
+
labels:
|
|
20
|
+
- bug
|
|
21
|
+
- title: 🏭 Refactor
|
|
22
|
+
labels:
|
|
23
|
+
- refactor
|
|
24
|
+
- maintenance
|
|
25
|
+
- title: 📝 Documentation
|
|
26
|
+
labels:
|
|
27
|
+
- documentation
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
run-name: CI for ${{ github.actor }} at ${{ github.ref }}
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
jobs:
|
|
9
|
+
pre-commit:
|
|
10
|
+
name: Pre-commit
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v5
|
|
14
|
+
- uses: actions/setup-python@v5
|
|
15
|
+
with:
|
|
16
|
+
python-version: "3.x"
|
|
17
|
+
- uses: pre-commit/action@v3.0.1
|
|
18
|
+
test:
|
|
19
|
+
needs: pre-commit
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
25
|
+
python-version:
|
|
26
|
+
- "3.11"
|
|
27
|
+
- "3.12"
|
|
28
|
+
- "3.13"
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v5
|
|
31
|
+
|
|
32
|
+
- name: Install uv
|
|
33
|
+
uses: astral-sh/setup-uv@v6
|
|
34
|
+
with:
|
|
35
|
+
enable-cache: true
|
|
36
|
+
version: "latest"
|
|
37
|
+
python-version: ${{ matrix.python-version }}
|
|
38
|
+
- name: Checkout
|
|
39
|
+
uses: actions/checkout@v5
|
|
40
|
+
|
|
41
|
+
- name: Install the project
|
|
42
|
+
run: uv sync --locked --dev
|
|
43
|
+
|
|
44
|
+
- name: Run tests
|
|
45
|
+
timeout-minutes: 5
|
|
46
|
+
run: uv run pytest -vvl
|
|
47
|
+
|
|
48
|
+
- name: Type checking with basedpyright
|
|
49
|
+
run: uv run basedpyright
|
|
50
|
+
|
|
51
|
+
coverage:
|
|
52
|
+
needs: pre-commit
|
|
53
|
+
runs-on: ubuntu-latest
|
|
54
|
+
steps:
|
|
55
|
+
- uses: actions/checkout@v5
|
|
56
|
+
|
|
57
|
+
- name: Install uv
|
|
58
|
+
uses: astral-sh/setup-uv@v6
|
|
59
|
+
with:
|
|
60
|
+
version: "latest"
|
|
61
|
+
|
|
62
|
+
- name: Run tests with coverage
|
|
63
|
+
timeout-minutes: 5
|
|
64
|
+
run: uv run pytest --cov --cov-report=xml --junitxml=junit.xml -o junit_family=legacy --cov-fail-under=100
|
|
65
|
+
|
|
66
|
+
- name: Upload coverage reports to Codecov
|
|
67
|
+
if: ${{ !cancelled() }}
|
|
68
|
+
uses: codecov/codecov-action@v5
|
|
69
|
+
with:
|
|
70
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
71
|
+
slug: fleming79/async-kernel
|
|
72
|
+
|
|
73
|
+
- name: Upload test results to Codecov
|
|
74
|
+
if: ${{ !cancelled() }}
|
|
75
|
+
uses: codecov/test-results-action@v1
|
|
76
|
+
with:
|
|
77
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
78
|
+
|
|
79
|
+
docs:
|
|
80
|
+
needs: pre-commit
|
|
81
|
+
runs-on: ubuntu-latest
|
|
82
|
+
steps:
|
|
83
|
+
- uses: actions/checkout@v5
|
|
84
|
+
|
|
85
|
+
- name: Install uv
|
|
86
|
+
uses: astral-sh/setup-uv@v6
|
|
87
|
+
with:
|
|
88
|
+
version: "latest"
|
|
89
|
+
|
|
90
|
+
- name: Docs build strict
|
|
91
|
+
timeout-minutes: 5
|
|
92
|
+
run: |
|
|
93
|
+
uv sync --group docs
|
|
94
|
+
uv run async-kernel -a async-docs --shell.execute_request_timeout 0.1
|
|
95
|
+
uv run mkdocs build -s
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: Enforce PR label
|
|
2
|
+
|
|
3
|
+
concurrency:
|
|
4
|
+
group: label-${{ github.ref }}
|
|
5
|
+
cancel-in-progress: true
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
pull_request:
|
|
9
|
+
types: [labeled, unlabeled, opened, edited, synchronize]
|
|
10
|
+
jobs:
|
|
11
|
+
enforce-label:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
permissions:
|
|
14
|
+
pull-requests: write
|
|
15
|
+
steps:
|
|
16
|
+
- name: enforce-triage-label
|
|
17
|
+
uses: jupyterlab/maintainer-tools/.github/actions/enforce-label@v1
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
name: New release
|
|
2
|
+
# This workflow starts a new release. Trigger it manually from github ('workflow_dispatch').
|
|
3
|
+
# publish_to_pypi.yml is configured to after this workflow is completed (using 'workflow_run').
|
|
4
|
+
run-name: ${{ github.actor }} initiated a new release ${{ github.event.inputs.release_version }} 🚀
|
|
5
|
+
on:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
release_version:
|
|
9
|
+
description: "Version"
|
|
10
|
+
default: "0.1.0rc0"
|
|
11
|
+
pre_release:
|
|
12
|
+
description: "Pre-release"
|
|
13
|
+
type: boolean
|
|
14
|
+
default: true
|
|
15
|
+
env:
|
|
16
|
+
VERSION: ${{ github.event.inputs.release_version}}
|
|
17
|
+
BRANCH: releases/${{ github.event.inputs.release_version}}
|
|
18
|
+
TAG: v${{ github.event.inputs.release_version}}
|
|
19
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
20
|
+
jobs:
|
|
21
|
+
changelog:
|
|
22
|
+
name: Write changelog and merge into main
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
permissions:
|
|
25
|
+
contents: write
|
|
26
|
+
pull-requests: write
|
|
27
|
+
steps:
|
|
28
|
+
- name: Checkout
|
|
29
|
+
uses: actions/checkout@v5
|
|
30
|
+
with:
|
|
31
|
+
fetch-depth: 0
|
|
32
|
+
ref: main
|
|
33
|
+
- name: Install uv
|
|
34
|
+
uses: astral-sh/setup-uv@v6
|
|
35
|
+
with:
|
|
36
|
+
version: "latest"
|
|
37
|
+
|
|
38
|
+
- name: Create a new branch, generate the changelog and release notes.
|
|
39
|
+
run: |
|
|
40
|
+
git config user.name github-actions[bot]
|
|
41
|
+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
42
|
+
git checkout -b $BRANCH main
|
|
43
|
+
git tag $TAG
|
|
44
|
+
uvx git-cliff -o CHANGELOG.md --github-repo ${{ github.repository }} --github-token ${{ secrets.GITHUB_TOKEN }}
|
|
45
|
+
uvx git-cliff -o release_notes.md --github-repo ${{ github.repository }} --github-token ${{ secrets.GITHUB_TOKEN }} --current
|
|
46
|
+
git commit -am "Prepare for release $TAG"
|
|
47
|
+
git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git $BRANCH
|
|
48
|
+
git tag -d $TAG
|
|
49
|
+
|
|
50
|
+
- name: Create & merge pull request + Create release
|
|
51
|
+
# ref: https://cli.github.com/manual/gh_pr_create
|
|
52
|
+
run: |
|
|
53
|
+
gh pr create --head $BRANCH --title $VERSION --body 'Changelog for new release' --label release
|
|
54
|
+
gh pr merge --squash --delete-branch
|
|
55
|
+
|
|
56
|
+
- name: Create a new pre-release
|
|
57
|
+
# ref: https://cli.github.com/manual/gh_release
|
|
58
|
+
if: ${{github.event.inputs.pre_release}}
|
|
59
|
+
run: |
|
|
60
|
+
gh release create $TAG -F release_notes.md --prerelease
|
|
61
|
+
|
|
62
|
+
- name: Create a new release
|
|
63
|
+
if: ${{!github.event.inputs.pre_release}}
|
|
64
|
+
run: |
|
|
65
|
+
gh release create $TAG -F release_notes.md
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: Publish docs
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- main
|
|
6
|
+
workflow_run:
|
|
7
|
+
workflows:
|
|
8
|
+
- New release
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: "pages"
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
deploy:
|
|
20
|
+
name: Deploy dev or latest version
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v5
|
|
24
|
+
- name: Configure Git Credentials
|
|
25
|
+
run: |
|
|
26
|
+
git config user.name github-actions[bot]
|
|
27
|
+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
28
|
+
|
|
29
|
+
- name: Install uv
|
|
30
|
+
uses: astral-sh/setup-uv@v6
|
|
31
|
+
with:
|
|
32
|
+
version: "latest"
|
|
33
|
+
|
|
34
|
+
- name: Checkout
|
|
35
|
+
uses: actions/checkout@v5
|
|
36
|
+
with:
|
|
37
|
+
fetch-depth: 0
|
|
38
|
+
|
|
39
|
+
- name: Install the project
|
|
40
|
+
run: |
|
|
41
|
+
uv sync --group docs
|
|
42
|
+
uv run async-kernel -a async-docs --shell.execute_request_timeout 0.1 # The 'async-docs' kernel is specified as the kernel for mkdocs-jupyter
|
|
43
|
+
|
|
44
|
+
- name: Options
|
|
45
|
+
id: mike
|
|
46
|
+
run: |
|
|
47
|
+
version=$(git tag --points-at HEAD)
|
|
48
|
+
if [[ $version ]]; then
|
|
49
|
+
echo "version=$version" >> $GITHUB_OUTPUT
|
|
50
|
+
if [[ $version =~ .*[0-9].*[a-zA-Z] ]]; then
|
|
51
|
+
echo "alias=$version pre-release" >> $GITHUB_OUTPUT
|
|
52
|
+
else
|
|
53
|
+
echo "alias=release" >> $GITHUB_OUTPUT
|
|
54
|
+
fi
|
|
55
|
+
else
|
|
56
|
+
echo "version=dev" >> $GITHUB_OUTPUT
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
- name: Deploy with mike 🚀
|
|
60
|
+
run: |
|
|
61
|
+
uv run mike deploy --push --update-aliases ${{steps.mike.outputs.version}} ${{steps.mike.outputs.alias}}
|
|
62
|
+
echo "Docs has been updated for version ${{steps.mike.outputs.version}} [view here](https://fleming79.github.io/async-kernel/${{steps.mike.outputs.version}}/)." >> $GITHUB_STEP_SUMMARY
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
|
|
2
|
+
# ref: https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
|
|
3
|
+
# This workflow builds the distribution and uploads it to PyPI and TestPyPI
|
|
4
|
+
# It will only publish to PyPI when the head has a tag starting with 'v'.concurrency:
|
|
5
|
+
# This workflow is configured to start after a 'New release' workflow has been run ('workflow_run').
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
release:
|
|
11
|
+
types: [published]
|
|
12
|
+
workflow_run:
|
|
13
|
+
workflows:
|
|
14
|
+
- New release
|
|
15
|
+
branches:
|
|
16
|
+
- main
|
|
17
|
+
types:
|
|
18
|
+
- completed
|
|
19
|
+
workflow_dispatch:
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
build:
|
|
23
|
+
name: Build distribution 📦
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
outputs:
|
|
26
|
+
TAG: ${{ steps.tag_info.outputs.tag }}
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v5
|
|
29
|
+
with:
|
|
30
|
+
persist-credentials: false
|
|
31
|
+
# Fetch full history for setuptools-scm
|
|
32
|
+
fetch-depth: 0
|
|
33
|
+
ref: main
|
|
34
|
+
- uses: astral-sh/setup-uv@v6
|
|
35
|
+
- name: Build a binary wheel and a source tarball
|
|
36
|
+
run: uv build
|
|
37
|
+
- name: Store the distribution packages
|
|
38
|
+
uses: actions/upload-artifact@v4
|
|
39
|
+
with:
|
|
40
|
+
name: python-package-distributions
|
|
41
|
+
path: dist/
|
|
42
|
+
- id: tag_info
|
|
43
|
+
name: Tag info
|
|
44
|
+
run: echo "tag=$(git tag --points-at HEAD)" >> $GITHUB_OUTPUT
|
|
45
|
+
|
|
46
|
+
publish-to-pypi:
|
|
47
|
+
name: Publish Python 🐍 distribution 📦 to PyPI
|
|
48
|
+
needs:
|
|
49
|
+
- build
|
|
50
|
+
runs-on: ubuntu-latest
|
|
51
|
+
if: startsWith(needs.build.outputs.TAG, 'v') # only publish to PyPI when the head has a version tag
|
|
52
|
+
environment:
|
|
53
|
+
name: pypi
|
|
54
|
+
url: https://pypi.org/p/async-kernel
|
|
55
|
+
permissions:
|
|
56
|
+
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
57
|
+
|
|
58
|
+
steps:
|
|
59
|
+
- name: Download all the dists
|
|
60
|
+
uses: actions/download-artifact@v5
|
|
61
|
+
with:
|
|
62
|
+
name: python-package-distributions
|
|
63
|
+
path: dist/
|
|
64
|
+
- name: Publish distribution 📦 to PyPI
|
|
65
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
66
|
+
|
|
67
|
+
publish-to-testpypi:
|
|
68
|
+
name: Publish Python 🐍 distribution 📦 to TestPyPI
|
|
69
|
+
if: github.event_name == 'push'
|
|
70
|
+
needs:
|
|
71
|
+
- build
|
|
72
|
+
runs-on: ubuntu-latest
|
|
73
|
+
|
|
74
|
+
environment:
|
|
75
|
+
name: testpypi
|
|
76
|
+
url: https://test.pypi.org/p/async-kernel
|
|
77
|
+
|
|
78
|
+
permissions:
|
|
79
|
+
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
80
|
+
|
|
81
|
+
steps:
|
|
82
|
+
- name: Download all the dists
|
|
83
|
+
uses: actions/download-artifact@v5
|
|
84
|
+
with:
|
|
85
|
+
name: python-package-distributions
|
|
86
|
+
path: dist/
|
|
87
|
+
- name: Publish distribution 📦 to TestPyPI
|
|
88
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
89
|
+
with:
|
|
90
|
+
repository-url: https://test.pypi.org/legacy/
|
|
91
|
+
|
|
92
|
+
replace-release-files:
|
|
93
|
+
name: Replace github release files
|
|
94
|
+
needs:
|
|
95
|
+
- build
|
|
96
|
+
- publish-to-pypi
|
|
97
|
+
runs-on: ubuntu-latest
|
|
98
|
+
permissions:
|
|
99
|
+
contents: write
|
|
100
|
+
if: startsWith(needs.build.outputs.TAG, 'v') # only upload if there is a release
|
|
101
|
+
env:
|
|
102
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
103
|
+
steps:
|
|
104
|
+
- uses: actions/checkout@v5
|
|
105
|
+
with:
|
|
106
|
+
persist-credentials: false
|
|
107
|
+
# Fetch full history for setuptools-scm
|
|
108
|
+
fetch-depth: 0
|
|
109
|
+
ref: main
|
|
110
|
+
- name: Download all the dists
|
|
111
|
+
uses: actions/download-artifact@v5
|
|
112
|
+
with:
|
|
113
|
+
name: python-package-distributions
|
|
114
|
+
path: dist/
|
|
115
|
+
- name: Upload assets to release
|
|
116
|
+
# ref: https://cli.github.com/manual/gh_release_upload
|
|
117
|
+
run: gh release upload ${{needs.build.outputs.TAG}} ./dist/* --clobber
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
ci:
|
|
2
|
+
autoupdate_commit_msg: "chore: update pre-commit hooks"
|
|
3
|
+
autoupdate_schedule: weekly
|
|
4
|
+
|
|
5
|
+
exclude: CHANGELOG.md
|
|
6
|
+
|
|
7
|
+
repos:
|
|
8
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
9
|
+
rev: v6.0.0
|
|
10
|
+
hooks:
|
|
11
|
+
- id: check-case-conflict
|
|
12
|
+
- id: check-ast
|
|
13
|
+
- id: check-docstring-first
|
|
14
|
+
- id: check-executables-have-shebangs
|
|
15
|
+
- id: check-added-large-files
|
|
16
|
+
- id: check-case-conflict
|
|
17
|
+
- id: check-merge-conflict
|
|
18
|
+
- id: check-toml
|
|
19
|
+
- id: mixed-line-ending
|
|
20
|
+
- id: check-yaml
|
|
21
|
+
args: ["--unsafe"]
|
|
22
|
+
- id: debug-statements
|
|
23
|
+
- id: end-of-file-fixer
|
|
24
|
+
|
|
25
|
+
- repo: https://gitlab.com/bmares/check-json5
|
|
26
|
+
rev: v1.0.0
|
|
27
|
+
hooks:
|
|
28
|
+
- id: check-json5
|
|
29
|
+
|
|
30
|
+
- repo: https://github.com/python-jsonschema/check-jsonschema
|
|
31
|
+
rev: 0.33.3
|
|
32
|
+
hooks:
|
|
33
|
+
- id: check-github-workflows
|
|
34
|
+
|
|
35
|
+
- repo: https://github.com/executablebooks/mdformat
|
|
36
|
+
rev: 0.7.22
|
|
37
|
+
hooks:
|
|
38
|
+
- id: mdformat
|
|
39
|
+
additional_dependencies:
|
|
40
|
+
- mdformat-gfm
|
|
41
|
+
- mdformat-frontmatter
|
|
42
|
+
- mdformat-footnote
|
|
43
|
+
- mdformat-mkdocs
|
|
44
|
+
|
|
45
|
+
- repo: https://github.com/pre-commit/mirrors-prettier
|
|
46
|
+
rev: "v4.0.0-alpha.8"
|
|
47
|
+
hooks:
|
|
48
|
+
- id: prettier
|
|
49
|
+
types_or: [yaml, html, json]
|
|
50
|
+
|
|
51
|
+
- repo: https://github.com/adamchainz/blacken-docs
|
|
52
|
+
rev: "1.19.1"
|
|
53
|
+
hooks:
|
|
54
|
+
- id: blacken-docs
|
|
55
|
+
additional_dependencies: [black==23.7.0]
|
|
56
|
+
|
|
57
|
+
- repo: https://github.com/codespell-project/codespell
|
|
58
|
+
rev: "v2.4.1"
|
|
59
|
+
hooks:
|
|
60
|
+
- id: codespell
|
|
61
|
+
args: ["-L", "sur,nd"]
|
|
62
|
+
|
|
63
|
+
- repo: https://github.com/pre-commit/pygrep-hooks
|
|
64
|
+
rev: "v1.10.0"
|
|
65
|
+
hooks:
|
|
66
|
+
- id: rst-backticks
|
|
67
|
+
- id: rst-directive-colons
|
|
68
|
+
- id: rst-inline-touching-normal
|
|
69
|
+
|
|
70
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
71
|
+
rev: v0.12.10
|
|
72
|
+
hooks:
|
|
73
|
+
- id: ruff
|
|
74
|
+
types_or: [python, jupyter]
|
|
75
|
+
args: ["--fix", "--show-fixes"]
|
|
76
|
+
- id: ruff-format
|
|
77
|
+
types_or: [python, jupyter]
|
|
78
|
+
|
|
79
|
+
- repo: https://github.com/scientific-python/cookie
|
|
80
|
+
rev: "2025.05.02"
|
|
81
|
+
hooks:
|
|
82
|
+
- id: sp-repo-review
|
|
83
|
+
additional_dependencies: ["repo-review[cli]"]
|
|
84
|
+
|
|
85
|
+
- repo: https://github.com/kynan/nbstripout
|
|
86
|
+
rev: "0.8.1"
|
|
87
|
+
hooks:
|
|
88
|
+
- id: nbstripout
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Use IntelliSense to learn about possible attributes.
|
|
3
|
+
// Hover to view descriptions of existing attributes.
|
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
+
"version": "0.2.0",
|
|
6
|
+
"configurations": [
|
|
7
|
+
{
|
|
8
|
+
"name": "Python: Debug Tests",
|
|
9
|
+
"type": "debugpy",
|
|
10
|
+
"request": "launch",
|
|
11
|
+
"program": "${file}",
|
|
12
|
+
"purpose": ["debug-test"],
|
|
13
|
+
"console": "integratedTerminal",
|
|
14
|
+
"justMyCode": false, // Change as required. Note only one test config will work Ref: https://code.visualstudio.com/docs/python/testing#_debug-tests
|
|
15
|
+
"subProcess": true // Set this to false when debugging inside test_debugger.py
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Python: Current File",
|
|
19
|
+
"type": "debugpy",
|
|
20
|
+
"request": "launch",
|
|
21
|
+
"program": "${file}",
|
|
22
|
+
"console": "integratedTerminal",
|
|
23
|
+
"cwd": "${workspaceFolder}",
|
|
24
|
+
"env": {
|
|
25
|
+
"PYTHONPATH": "${workspaceFolder}"
|
|
26
|
+
},
|
|
27
|
+
"justMyCode": true,
|
|
28
|
+
"args": ["-X dev", "Wd"]
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"python.testing.pytestArgs": ["tests"],
|
|
3
|
+
"python.testing.unittestEnabled": false,
|
|
4
|
+
"python.testing.pytestEnabled": true,
|
|
5
|
+
"python.analysis.typeCheckingMode": "off",
|
|
6
|
+
"editor.defaultFormatter": "charliermarsh.ruff",
|
|
7
|
+
"basedpyright.analysis.diagnosticMode": "workspace",
|
|
8
|
+
"yaml.schemas": {
|
|
9
|
+
"https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
|
|
10
|
+
},
|
|
11
|
+
"yaml.customTags": [
|
|
12
|
+
"!ENV scalar",
|
|
13
|
+
"!ENV sequence",
|
|
14
|
+
"!relative scalar",
|
|
15
|
+
"tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg",
|
|
16
|
+
"tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji",
|
|
17
|
+
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format",
|
|
18
|
+
"tag:yaml.org,2002:python/object/apply:pymdownx.slugs.slugify mapping"
|
|
19
|
+
],
|
|
20
|
+
"spellright.language": ["en"],
|
|
21
|
+
"spellright.documentTypes": ["markdown", "plaintext"]
|
|
22
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.1.0] - 2025-08-28
|
|
9
|
+
|
|
10
|
+
### <!-- 0 --> 🏗️ Breaking changes
|
|
11
|
+
|
|
12
|
+
- Caller.queue_call add argument send_nowait and convert to sync that optionally returns an awaitable. [#71](https://github.com/fleming79/async-kernel/pull/71)
|
|
13
|
+
|
|
14
|
+
### <!-- 1 --> 🚀 Features
|
|
15
|
+
|
|
16
|
+
- Add anyio_backend_options and use uvloop by default [#70](https://github.com/fleming79/async-kernel/pull/70)
|
|
17
|
+
|
|
18
|
+
### <!-- 5 --> 📝 Documentation
|
|
19
|
+
|
|
20
|
+
- Use mike for documentation versioning. [#67](https://github.com/fleming79/async-kernel/pull/67)
|
|
21
|
+
|
|
22
|
+
- Update docs, readme and project description. [#66](https://github.com/fleming79/async-kernel/pull/66)
|
|
23
|
+
|
|
24
|
+
### <!-- 6 --> 🌀 Miscellaneous
|
|
25
|
+
|
|
26
|
+
- Drop matplotlib dependency. [#69](https://github.com/fleming79/async-kernel/pull/69)
|
|
27
|
+
|
|
28
|
+
## [0.1.0-rc3] - 2025-08-26
|
|
29
|
+
|
|
30
|
+
### <!-- 1 --> 🚀 Features
|
|
31
|
+
|
|
32
|
+
- Add more classifers and code coverage [#64](https://github.com/fleming79/async-kernel/pull/64)
|
|
33
|
+
|
|
34
|
+
### <!-- 6 --> 🌀 Miscellaneous
|
|
35
|
+
|
|
36
|
+
- Prepare for release v0.1.0-rc3 [#65](https://github.com/fleming79/async-kernel/pull/65)
|
|
37
|
+
|
|
38
|
+
- Add workflow_run event because the release is not triggered if the release is created by another workflow. [#62](https://github.com/fleming79/async-kernel/pull/62)
|
|
39
|
+
|
|
40
|
+
## [0.1.0-rc2] - 2025-08-26
|
|
41
|
+
|
|
42
|
+
### <!-- 6 --> 🌀 Miscellaneous
|
|
43
|
+
|
|
44
|
+
- Prepare for release v0.1.0-rc2 [#61](https://github.com/fleming79/async-kernel/pull/61)
|
|
45
|
+
|
|
46
|
+
## [0.1.0-rc1] - 2025-08-26
|
|
47
|
+
|
|
48
|
+
### <!-- 5 --> 📝 Documentation
|
|
49
|
+
|
|
50
|
+
- Update licensing and contribution notes [#27](https://github.com/fleming79/async-kernel/pull/27)
|
|
51
|
+
|
|
52
|
+
### <!-- 6 --> 🌀 Miscellaneous
|
|
53
|
+
|
|
54
|
+
- Prepare for release v0.1.0-rc1 [#60](https://github.com/fleming79/async-kernel/pull/60)
|
|
55
|
+
|
|
56
|
+
- Merge pull request #56 from fleming79/release/v0.1.0-rc1 [#56](https://github.com/fleming79/async-kernel/pull/56)
|
|
57
|
+
|
|
58
|
+
- Revise new release [#55](https://github.com/fleming79/async-kernel/pull/55)
|
|
59
|
+
|
|
60
|
+
- New release workflow in one step with publish option. [#51](https://github.com/fleming79/async-kernel/pull/51)
|
|
61
|
+
|
|
62
|
+
- Improve release workflow, update documentation and license info. [#29](https://github.com/fleming79/async-kernel/pull/29)
|
|
63
|
+
|
|
64
|
+
- Maintenance [#26](https://github.com/fleming79/async-kernel/pull/26)
|
|
65
|
+
|
|
66
|
+
## [0.1.0-rc0] - 2025-08-24
|
|
67
|
+
|
|
68
|
+
### <!-- 1 --> 🚀 Features
|
|
69
|
+
|
|
70
|
+
- First release [#18](https://github.com/fleming79/async-kernel/pull/18)
|
|
71
|
+
|
|
72
|
+
- Switch to vcs for versioning. [#2](https://github.com/fleming79/async-kernel/pull/2)
|
|
73
|
+
|
|
74
|
+
### <!-- 2 --> 🐛 Fixes
|
|
75
|
+
|
|
76
|
+
- Use no-local-version in pyproject.toml instead. [#5](https://github.com/fleming79/async-kernel/pull/5)
|
|
77
|
+
|
|
78
|
+
- Use no-local-version on ci. [#4](https://github.com/fleming79/async-kernel/pull/4)
|
|
79
|
+
|
|
80
|
+
### <!-- 5 --> 📝 Documentation
|
|
81
|
+
|
|
82
|
+
- Revise workflow to work with tags that start with 'v'. No longer sets the tag when writing the changelog. [#16](https://github.com/fleming79/async-kernel/pull/16)
|
|
83
|
+
|
|
84
|
+
- Switch to python installer to run git cliff. [#14](https://github.com/fleming79/async-kernel/pull/14)
|
|
85
|
+
|
|
86
|
+
- Revise changelog template. [#12](https://github.com/fleming79/async-kernel/pull/12)
|
|
87
|
+
|
|
88
|
+
- Do changelog as PR instead of push to main. [#8](https://github.com/fleming79/async-kernel/pull/8)
|
|
89
|
+
|
|
90
|
+
- Git cliff [#7](https://github.com/fleming79/async-kernel/pull/7)
|
|
91
|
+
|
|
92
|
+
- Fix mkdocs publishing [#6](https://github.com/fleming79/async-kernel/pull/6)
|
|
93
|
+
|
|
94
|
+
### <!-- 6 --> 🌀 Miscellaneous
|
|
95
|
+
|
|
96
|
+
- Bugfix [#25](https://github.com/fleming79/async-kernel/pull/25)
|
|
97
|
+
|
|
98
|
+
- Update changelog [#24](https://github.com/fleming79/async-kernel/pull/24)
|
|
99
|
+
|
|
100
|
+
- Update changelog [#22](https://github.com/fleming79/async-kernel/pull/22)
|
|
101
|
+
|
|
102
|
+
- Release workflow changes [#21](https://github.com/fleming79/async-kernel/pull/21)
|
|
103
|
+
|
|
104
|
+
- Update release workflow to use a template that appends output from git-cliff [#17](https://github.com/fleming79/async-kernel/pull/17)
|
|
105
|
+
|
|
106
|
+
- Bump the actions group across 1 directory with 2 updates [#3](https://github.com/fleming79/async-kernel/pull/3)
|
|
107
|
+
|
|
108
|
+
[0.1.0]: https://github.com/fleming79/async-kernel/compare/v0.1.0-rc3..v0.1.0
|
|
109
|
+
[0.1.0-rc3]: https://github.com/fleming79/async-kernel/compare/v0.1.0-rc2..v0.1.0-rc3
|
|
110
|
+
[0.1.0-rc2]: https://github.com/fleming79/async-kernel/compare/v0.1.0-rc1..v0.1.0-rc2
|
|
111
|
+
[0.1.0-rc1]: https://github.com/fleming79/async-kernel/compare/v0.1.0-rc0..v0.1.0-rc1
|
|
112
|
+
|
|
113
|
+
<!-- generated by git-cliff -->
|