Comments
Patch
@@ -227,7 +227,7 @@ lazy_static! {
}
pub type PatternTuple = (Vec<u8>, LineNumber, Vec<u8>);
-type WarningTuple = (String, String);
+type WarningTuple = (Vec<u8>, Vec<u8>);
pub fn parse_pattern_file_contents(
lines: &[u8],
@@ -263,10 +263,7 @@ pub fn parse_pattern_file_contents(
if let Some(rel_syntax) = SYNTAXES.get(syntax) {
current_syntax = rel_syntax;
} else if warn {
- warnings.push((
- String::from_utf8_lossy(file_path).to_string(),
- String::from_utf8_lossy(syntax).to_string(),
- ));
+ warnings.push((file_path.to_owned(), syntax.to_owned()));
}
continue;
}
@@ -40,17 +40,31 @@ fn read_pattern_file_wrapper(
};
let results: Vec<(PyBytes, LineNumber, PyBytes)> =
patterns.iter().map(itemgetter).collect();
- return Ok((results, warnings).to_py_object(py));
+ return Ok((results, warnings_to_py_bytes(py, &warnings))
+ .to_py_object(py));
}
let itemgetter = |x: &PatternTuple| PyBytes::new(py, &x.0);
let results: Vec<PyBytes> =
patterns.iter().map(itemgetter).collect();
- Ok((results, warnings).to_py_object(py))
+ Ok(
+ (results, warnings_to_py_bytes(py, &warnings))
+ .to_py_object(py),
+ )
}
Err(e) => Err(PatternFileError::pynew(py, e)),
}
}
+fn warnings_to_py_bytes(
+ py: Python,
+ warnings: &[(Vec<u8>, Vec<u8>)],
+) -> Vec<(PyBytes, PyBytes)> {
+ warnings
+ .iter()
+ .map(|(path, syn)| (PyBytes::new(py, path), PyBytes::new(py, syn)))
+ .collect()
+}
+
fn build_single_regex_wrapper(
py: Python,
kind: PyObject,