fix not giving miette error in bindings (#5844)

* try python unit test

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* try python unit test

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes;

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes;

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
Jess Frazelle
2025-03-17 13:35:49 -07:00
committed by GitHub
parent 87ab8fe78d
commit 09131722e3
10 changed files with 1011 additions and 5 deletions

View File

@ -401,10 +401,8 @@ async fn execute_and_export(path: String, export_format: FileExportFormat) -> Py
.map_err(|err| pyo3::exceptions::PyException::new_err(err.to_string()))?;
let program = kcl_lib::Program::parse_no_errs(&code)
.map_err(|err| into_miette_for_parse(&path.display().to_string(), &code, err))?;
let settings = program.meta_settings()?.unwrap_or_default();
let units: UnitLength = settings.default_length_units.into();
let (ctx, mut state) = new_context_state(Some(path))
let (ctx, mut state) = new_context_state(Some(path.clone()))
.await
.map_err(|err| pyo3::exceptions::PyException::new_err(err.to_string()))?;
// Execute the program.
@ -412,6 +410,12 @@ async fn execute_and_export(path: String, export_format: FileExportFormat) -> Py
.await
.map_err(|err| into_miette(err, &code))?;
let settings = program
.meta_settings()
.map_err(|err| into_miette_for_parse(&path.display().to_string(), &code, err))?
.unwrap_or_default();
let units: UnitLength = settings.default_length_units.into();
// This will not return until there are files.
let resp = ctx
.engine
@ -445,8 +449,6 @@ async fn execute_code_and_export(code: String, export_format: FileExportFormat)
.spawn(async move {
let program =
kcl_lib::Program::parse_no_errs(&code).map_err(|err| into_miette_for_parse("", &code, err))?;
let settings = program.meta_settings()?.unwrap_or_default();
let units: UnitLength = settings.default_length_units.into();
let (ctx, mut state) = new_context_state(None)
.await
@ -456,6 +458,12 @@ async fn execute_code_and_export(code: String, export_format: FileExportFormat)
.await
.map_err(|err| into_miette(err, &code))?;
let settings = program
.meta_settings()
.map_err(|err| into_miette_for_parse("", &code, err))?
.unwrap_or_default();
let units: UnitLength = settings.default_length_units.into();
// This will not return until there are files.
let resp = ctx
.engine