FIX: adds create user_model_from_bytes

This commit is contained in:
Nicolás Hatcher
2025-06-03 11:48:37 +02:00
parent be66af8e16
commit 9effd8e4b5
4 changed files with 14 additions and 3 deletions

2
Cargo.lock generated
View File

@@ -783,7 +783,7 @@ dependencies = [
[[package]]
name = "pyroncalc"
version = "0.5.5"
version = "0.5.6"
dependencies = [
"bitcode",
"ironcalc",

View File

@@ -1,6 +1,6 @@
[package]
name = "pyroncalc"
version = "0.5.5"
version = "0.5.6"
edition = "2021"

View File

@@ -1,6 +1,6 @@
[project]
name = "ironcalc"
version = "0.5.5"
version = "0.5.6"
description = "Create, edit and evaluate Excel spreadsheets"
requires-python = ">=3.10"
keywords = [

View File

@@ -353,6 +353,16 @@ pub fn create_user_model_from_icalc(file_name: &str) -> PyResult<PyUserModel> {
Ok(PyUserModel { model })
}
#[pyfunction]
pub fn create_user_model_from_bytes(bytes: &[u8]) -> PyResult<PyUserModel> {
let workbook: Workbook =
bitcode::decode(bytes).map_err(|e| WorkbookError::new_err(e.to_string()))?;
let model =
Model::from_workbook(workbook).map_err(|e| WorkbookError::new_err(e.to_string()))?;
let user_model = UserModel::from_model(model);
Ok(PyUserModel { model: user_model })
}
#[pyfunction]
#[allow(clippy::panic)]
pub fn test_panic() {
@@ -373,6 +383,7 @@ fn ironcalc(m: &Bound<'_, PyModule>) -> PyResult<()> {
// User model functions
m.add_function(wrap_pyfunction!(create_user_model, m)?)?;
m.add_function(wrap_pyfunction!(create_user_model_from_bytes, m)?)?;
m.add_function(wrap_pyfunction!(create_user_model_from_xlsx, m)?)?;
m.add_function(wrap_pyfunction!(create_user_model_from_icalc, m)?)?;