in src/init.rs [43:72]
fn get_diffs(
py: Python,
bytes: PyObject,
kwargs: Option<&Bound<'_, PyDict>>,
) -> PyResult<PyObject> {
let hunks = if let Some(kwargs) = kwargs {
kwargs.get_item("hunks")?.map_or(false, |h| {
h.downcast::<PyBool>().ok().map_or(false, |h| h.is_true())
})
} else {
false
};
let mut patch = crate::diffs::PyPatch::new(py, hunks);
if let Some(bytes) = crate::common::get_bytes(py, &bytes) {
match bytes {
crate::common::Bytes::Slice(bytes) => {
PatchReader::by_buf(bytes, &mut patch).map_err(PPError)?
}
crate::common::Bytes::Vec(bytes) => {
PatchReader::by_buf(&bytes, &mut patch).map_err(PPError)?
}
}
} else {
return Err(PyTypeError::new_err("Invalid patch type"));
};
patch.get_result()
}