@@ -16,6 +16,21 @@ use pyo3::{exceptions::PyRuntimeError, prelude::*};
1616
1717#[ pymodule]
1818fn 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) ]
4752fn 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