Skip to content

Commit 0d361a9

Browse files
committed
[pyo3] get_asset_root helper method
1 parent 44dcfa6 commit 0d361a9

File tree

1 file changed

+21
-16
lines changed
  • crates/processing_pyo3/src

1 file changed

+21
-16
lines changed

crates/processing_pyo3/src/lib.rs

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,21 @@ use pyo3::{exceptions::PyRuntimeError, prelude::*};
1616

1717
#[pymodule]
1818
fn processing(m: &Bound<'_, PyModule>) -> PyResult<()> {
19+
m.add_class::<Graphics>()?;
20+
m.add_function(wrap_pyfunction!(size, m)?)?;
21+
m.add_function(wrap_pyfunction!(run, m)?)?;
22+
m.add_function(wrap_pyfunction!(background, m)?)?;
23+
m.add_function(wrap_pyfunction!(fill, m)?)?;
24+
m.add_function(wrap_pyfunction!(no_fill, m)?)?;
25+
m.add_function(wrap_pyfunction!(stroke, m)?)?;
26+
m.add_function(wrap_pyfunction!(no_stroke, m)?)?;
27+
m.add_function(wrap_pyfunction!(stroke_weight, m)?)?;
28+
m.add_function(wrap_pyfunction!(rect, m)?)?;
29+
m.add_function(wrap_pyfunction!(image, m)?)?;
30+
Ok(())
31+
}
32+
33+
fn get_asset_root() -> PyResult<String> {
1934
Python::attach(|py| {
2035
let sys = PyModule::import(py, "sys")?;
2136
let argv: Vec<String> = sys.getattr("argv")?.extract()?;
@@ -24,28 +39,18 @@ fn processing(m: &Bound<'_, PyModule>) -> PyResult<()> {
2439
let path = os.getattr("path")?;
2540
let dirname = path.getattr("dirname")?.call1((filename,))?;
2641
let abspath = path.getattr("abspath")?.call1((dirname,))?;
27-
let abspath = path.getattr("join")?.call1((abspath, "assets"))?;
28-
29-
m.add("_root_dir", abspath)?;
30-
m.add_class::<Graphics>()?;
31-
m.add_function(wrap_pyfunction!(size, m)?)?;
32-
m.add_function(wrap_pyfunction!(run, m)?)?;
33-
m.add_function(wrap_pyfunction!(background, m)?)?;
34-
m.add_function(wrap_pyfunction!(fill, m)?)?;
35-
m.add_function(wrap_pyfunction!(no_fill, m)?)?;
36-
m.add_function(wrap_pyfunction!(stroke, m)?)?;
37-
m.add_function(wrap_pyfunction!(no_stroke, m)?)?;
38-
m.add_function(wrap_pyfunction!(stroke_weight, m)?)?;
39-
m.add_function(wrap_pyfunction!(rect, m)?)?;
40-
m.add_function(wrap_pyfunction!(image, m)?)?;
41-
Ok(())
42+
let asset_root = path
43+
.getattr("join")?
44+
.call1((abspath, "assets"))?
45+
.to_string();
46+
Ok(asset_root)
4247
})
4348
}
4449

4550
#[pyfunction]
4651
#[pyo3(pass_module)]
4752
fn size(module: &Bound<'_, PyModule>, width: u32, height: u32) -> PyResult<()> {
48-
let asset_path: String = module.getattr("_root_dir")?.extract()?;
53+
let asset_path: String = get_asset_root()?;
4954
let graphics = Graphics::new(width, height, asset_path.as_str())?;
5055
module.setattr("_graphics", graphics)?;
5156
Ok(())

0 commit comments

Comments
 (0)