Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .copier-answers.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Changes here will be overwritten by Copier
_commit: d814faa
_commit: 053fbed
_src_path: https://github.com/python-project-templates/base.git
add_docs: true
add_extension: rust
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,31 @@ jobs:
with:
name: dist-${{ matrix.os }}
path: dist


pyodide:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Python
uses: actions-ext/python/setup@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
version: "3.14"

- name: Setup Rust
uses: actions-ext/rust/setup@2db8e3e4c56beb7320c7d730bd2c2d6a6447bf6b

- name: Build and test Pyodide wheel
run: make test-pyodide

- name: Upload Pyodide distribution
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: dist-pyodide
path: dist/pyodide

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ python_template_rust/labextension

# Emscripten SDK (locally installed)
emsdk
.pyodide_build/


# Mac
.DS_Store
Expand Down
7 changes: 6 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,13 @@ tests-rs: test-rs
coverage-rs: ## run rust tests and collect test coverage
make -C rust coverage

.PHONY: test coverage tests
.PHONY: test test-pyodide coverage tests
test: test-py test-rs ## run all tests

test-pyodide: ## build and test the Python package in Pyodide
rustup target add wasm32-unknown-emscripten
uvx --from cibuildwheel==4.2.0 cibuildwheel --only cp314-pyodide_wasm32 --output-dir dist/pyodide .

coverage: coverage-py coverage-rs ## run all tests and collect test coverage

# alias
Expand Down
9 changes: 7 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[build-system]
requires = [
"hatchling",
"hatch-rs>=0.1.4",
"hatch-rs>=0.3.0",
]
build-backend = "hatchling.build"

Expand Down Expand Up @@ -39,7 +39,7 @@ develop = [
"check-dist",
"cibuildwheel",
"codespell",
"hatch-rs",
"hatch-rs>=0.3.0",
"hatchling",
"mdformat",
"mdformat-tables>=1",
Expand Down Expand Up @@ -111,6 +111,11 @@ archs = "arm64"
environment = {PATH="$UserProfile\\.cargo\bin;$PATH", CARGO_TERM_COLOR="always"}
skip = "*win32 *arm_64"

[tool.cibuildwheel.pyodide]
test-command = "python -m pytest -vvv --pyargs python_template_rust.tests"
test-extras = []
test-requires = ["pytest"]
xbuild-tools = ["cargo", "rustc", "rustup"]
[tool.coverage.run]
branch = true
omit = [
Expand Down
1 change: 1 addition & 0 deletions python_template_rust/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

4 changes: 2 additions & 2 deletions python_template_rust/tests/test_all.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from python_template_rust import *
from python_template_rust.python_template_rust import Example


def test_all():
assert True
assert str(Example("test")) == "test"
Loading