From d4c42272c5c77821b8b6d41556cb76a3942aeca0 Mon Sep 17 00:00:00 2001 From: Reiner Gerecke Date: Tue, 27 Dec 2022 15:24:01 +0100 Subject: [PATCH] Basic setup for python library --- Cargo.lock | 90 ++++++++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 4 +++ src/lib.rs | 3 ++ src/lib_python.rs | 6 ++++ 4 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 src/lib_python.rs diff --git a/Cargo.lock b/Cargo.lock index 1cbb686cf9a1e1..9d8c9a31c920a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -523,7 +523,7 @@ dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", - "memoffset", + "memoffset 0.7.1", "scopeguard", ] @@ -950,6 +950,12 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "indoc" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da2d6f23ffea9d7e76c53eee25dfb67bcd8fde7f1198b0855350698c9f07c780" + [[package]] name = "inotify" version = "0.9.6" @@ -1224,6 +1230,15 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.7.1" @@ -1658,6 +1673,66 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "pyo3" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "268be0c73583c183f2b14052337465768c07726936a260f480f0857cb95ba543" +dependencies = [ + "cfg-if 1.0.0", + "indoc", + "libc", + "memoffset 0.6.5", + "parking_lot", + "pyo3-build-config", + "pyo3-ffi", + "pyo3-macros", + "unindent", +] + +[[package]] +name = "pyo3-build-config" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28fcd1e73f06ec85bf3280c48c67e731d8290ad3d730f8be9dc07946923005c8" +dependencies = [ + "once_cell", + "target-lexicon", +] + +[[package]] +name = "pyo3-ffi" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f6cb136e222e49115b3c51c32792886defbfb0adead26a688142b346a0b9ffc" +dependencies = [ + "libc", + "pyo3-build-config", +] + +[[package]] +name = "pyo3-macros" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94144a1266e236b1c932682136dc35a9dee8d3589728f68130c7c3861ef96b28" +dependencies = [ + "proc-macro2", + "pyo3-macros-backend", + "quote", + "syn", +] + +[[package]] +name = "pyo3-macros-backend" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8df9be978a2d2f0cdebabb03206ed73b11314701a5bfe71b0d753b81997777f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "quick-junit" version = "0.3.2" @@ -1915,6 +1990,7 @@ dependencies = [ "num-bigint", "once_cell", "path-absolutize", + "pyo3", "quick-junit", "rayon", "regex", @@ -2316,6 +2392,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "target-lexicon" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d" + [[package]] name = "tempfile" version = "3.3.0" @@ -2629,6 +2711,12 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029df4cc8238cefc911704ff8fa210853a0f3bce2694d8f51181dd41ee0f3301" +[[package]] +name = "unindent" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" + [[package]] name = "untrusted" version = "0.7.1" diff --git a/Cargo.toml b/Cargo.toml index 7642f5ea0373a2..00df9cde9c3b63 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,6 +66,7 @@ walkdir = { version = "2.3.2" } clearscreen = { version = "1.0.10" } rayon = { version = "1.5.3" } update-informer = { version = "0.5.0", default-features = false, features = ["pypi"], optional = true } +pyo3 = { version = "0.17.3", features = ["extension-module", "abi3", "abi3-py37"] } # https://docs.rs/getrandom/0.2.7/getrandom/#webassembly-support # For (future) wasm-pack support @@ -111,3 +112,6 @@ opt-level = 1 [[bench]] name = "source_code_locator" harness = false + +[package.metadata.maturin] +name = "ruff._ruff" \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index ef52805a7bbe15..e773ef55ed3352 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -83,6 +83,9 @@ cfg_if! { mod lib_native; pub use lib_native::check; + + mod lib_python; + pub use lib_python::_ruff; } else { mod lib_wasm; pub use lib_wasm::check; diff --git a/src/lib_python.rs b/src/lib_python.rs new file mode 100644 index 00000000000000..ea8e31947b7d69 --- /dev/null +++ b/src/lib_python.rs @@ -0,0 +1,6 @@ +use pyo3::prelude::*; + +#[pymodule] +pub fn _ruff(py: Python<'_>, m: &PyModule) -> PyResult<()> { + Ok(()) +}