Bump rust toolchain version (#5237)

This commit is contained in:
Gyeongjae Choi 2024-12-07 12:16:31 +09:00 committed by GitHub
parent e54b220cf4
commit 9907f1c4c7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 78 additions and 7 deletions

View File

@ -0,0 +1,10 @@
package:
name: rust-abi-test
version: "1.0"
source:
path: src
requirements:
executable:
- rustup
about:
license: MPL-2.0

View File

@ -0,0 +1,19 @@
[package]
name = "rust-abi-test"
version = "0.1.0"
edition = "2018"
publish = false
[dependencies]
pyo3 = { version = "0.22.3" }
[features]
extension-module = ["pyo3/extension-module"]
default = ["extension-module"]
[lib]
crate-type = ["cdylib"]
[profile.release]
lto = "thin"
overflow-checks = true

View File

@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools", "wheel", "setuptools-rust"]
build-backend = "setuptools.build_meta"

View File

@ -0,0 +1,12 @@
from setuptools import setup
from setuptools_rust import Binding, RustExtension
setup(
name="rust_abi_test",
version="1.0",
rust_extensions=[
RustExtension("rust_abi_test", "Cargo.toml", binding=Binding.PyO3)
],
# rust extensions are not zip safe, just like C-extensions.
zip_safe=False,
)

View File

@ -0,0 +1,17 @@
use std::fs;
use pyo3::prelude::*;
#[pyfunction]
fn get_file_length(data: &str) -> PyResult<u64> {
let metadata = fs::metadata(data)?;
Ok(metadata.len())
}
#[pymodule]
fn rust_abi_test(m: &Bound<'_, PyModule>) -> pyo3::PyResult<()> {
m.add_function(wrap_pyfunction!(get_file_length, m)?)?;
Ok(())
}

View File

@ -0,0 +1,14 @@
import pytest
from pytest_pyodide import run_in_pyodide
@pytest.mark.xfail(reason="TODO: Fix me")
@run_in_pyodide(packages=["rust-abi-test"])
def test_rust_abi(selenium):
from pathlib import Path
from rust_abi_test import get_file_length
contents = "this is the contents of the file\n" * 4
Path("/test.txt").write_text(contents)
assert get_file_length("/test.txt") == len(contents)

View File

@ -1,7 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "hello-world"
version = "0.1.0"

View File

@ -129,6 +129,9 @@ markers = [
[tool._pyodide]
[tool.pyodide.build]
rust_toolchain = "nightly-2024-12-01"
[tool.codespell]
ignore-words = 'tools/codespell_ignore_words.txt'
skip = 'benchmark/benchmarks/pystone_benchmarks/pystone.py,src/js/package-lock.json,tools/codespell_ignore_words.txt'