Skip to content

Commit eeac492

Browse files
committed
Get absolute path of directory of sketch being run
1 parent 1fc1892 commit eeac492

File tree

1 file changed

+31
-13
lines changed
  • crates/processing_pyo3/src

1 file changed

+31
-13
lines changed

crates/processing_pyo3/src/lib.rs

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//! receiver.
88
//!
99
//! To allow Python users to create a similar experience, we provide module-level
10-
//! functions that forward to a singleton Graphics object bepub(crate) pub(crate) hind the scenes.
10+
//! functions that forward to a singleton Graphics object pub(crate) behind the scenes.
1111
mod glfw;
1212
mod graphics;
1313

@@ -16,23 +16,41 @@ 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(())
19+
Python::attach(|py| {
20+
let sys = PyModule::import(py, "sys")?;
21+
let argv: Vec<String> = sys.getattr("argv")?.extract()?;
22+
let os = PyModule::import(py, "os")?;
23+
let path = os.getattr("path")?;
24+
let dirname = path
25+
.getattr("dirname")?
26+
.call1(pyo3::types::PyTuple::new(py, &[&argv[0]])?)?;
27+
let abspath = path
28+
.getattr("abspath")?
29+
.call1(pyo3::types::PyTuple::new(py, &[dirname])?)?;
30+
31+
println!("DEBUG MOMENT OF SUCCESS: {}", abspath);
32+
// TODO: Pass this into Graphics for App init
33+
34+
m.add_class::<Graphics>()?;
35+
m.add_function(wrap_pyfunction!(size, m)?)?;
36+
m.add_function(wrap_pyfunction!(run, m)?)?;
37+
m.add_function(wrap_pyfunction!(background, m)?)?;
38+
m.add_function(wrap_pyfunction!(fill, m)?)?;
39+
m.add_function(wrap_pyfunction!(no_fill, m)?)?;
40+
m.add_function(wrap_pyfunction!(stroke, m)?)?;
41+
m.add_function(wrap_pyfunction!(no_stroke, m)?)?;
42+
m.add_function(wrap_pyfunction!(stroke_weight, m)?)?;
43+
m.add_function(wrap_pyfunction!(rect, m)?)?;
44+
m.add_function(wrap_pyfunction!(image, m)?)?;
45+
Ok(())
46+
})
3147
}
3248

3349
#[pyfunction]
3450
#[pyo3(pass_module)]
3551
fn size(module: &Bound<'_, PyModule>, width: u32, height: u32) -> PyResult<()> {
52+
// would we get a directory here?
53+
3654
let graphics = Graphics::new(width, height)?;
3755
module.setattr("_graphics", graphics)?;
3856
Ok(())

0 commit comments

Comments
 (0)