Skip to content

Commit

Permalink
Don't convert PathBuf to str before calling Python function
Browse files Browse the repository at this point in the history
  • Loading branch information
messense committed Jul 4, 2021
1 parent 00d8cd2 commit b29e161
Showing 1 changed file with 14 additions and 15 deletions.
29 changes: 14 additions & 15 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,20 @@ impl ImportResolver for PythonImportResolver {
) -> jrsonnet_evaluator::error::Result<Rc<PathBuf>> {
use jrsonnet_evaluator::error::Error::*;

// FIXME: use PathBuf directly on PyO3 0.14
let from_str = from.to_str().unwrap();
let path_str = path.to_str().unwrap();
let (resolved, content) =
Python::with_gil(
|py| match self.callback.call(py, (from_str, path_str), None) {
Ok(obj) => obj.extract::<(String, Option<String>)>(py).map_err(|err| {
ImportCallbackError(format!("import_callback error: {}", err))
}),
Err(err) => Err(ImportCallbackError(format!(
"import_callback error: {}",
err
))),
},
)?;
let (resolved, content) = Python::with_gil(|py| {
match self
.callback
.call(py, (from.as_path(), path.as_path()), None)
{
Ok(obj) => obj
.extract::<(String, Option<String>)>(py)
.map_err(|err| ImportCallbackError(format!("import_callback error: {}", err))),
Err(err) => Err(ImportCallbackError(format!(
"import_callback error: {}",
err
))),
}
})?;
if let Some(content) = content {
let resolved = PathBuf::from(resolved);
let mut out = self.out.borrow_mut();
Expand Down

0 comments on commit b29e161

Please sign in to comment.