feat: set unused text outputs to null based on method options

Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-27 17:45:33 -03:00
parent d013b60fc1
commit cb685d4329

View File

@@ -223,6 +223,26 @@ impl TextMetaPlugin {
metadata.push(meta_data); metadata.push(meta_data);
} }
// If content is binary, set all text-related outputs to None
if is_binary_result {
let text_outputs = vec![
"text_word_count",
"text_line_count",
"text_line_max_len",
"text_line_mean_len",
"text_line_median_len",
];
for output_name in text_outputs {
if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs(
output_name,
serde_yaml::Value::Null,
self.base.outputs()
) {
metadata.push(meta_data);
}
}
}
(metadata, is_binary_result) (metadata, is_binary_result)
} }
@@ -489,6 +509,23 @@ impl MetaPlugin for TextMetaPlugin {
if is_binary { if is_binary {
self.buffer = None; // Drop the buffer self.buffer = None; // Drop the buffer
self.is_finalized = true; self.is_finalized = true;
// Set all text-related outputs to None since content is binary
let text_outputs = vec![
"text_word_count",
"text_line_count",
"text_line_max_len",
"text_line_mean_len",
"text_line_median_len",
];
for output_name in text_outputs {
if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs(
output_name,
serde_yaml::Value::Null,
self.base.outputs()
) {
metadata.push(meta_data);
}
}
return MetaPluginResponse { return MetaPluginResponse {
metadata, metadata,
is_finalized: true, is_finalized: true,
@@ -504,6 +541,27 @@ impl MetaPlugin for TextMetaPlugin {
metadata.extend(word_line_metadata); metadata.extend(word_line_metadata);
} }
// Set disabled outputs to None
let outputs_to_check = vec![
("text_word_count", self.track_word_count),
("text_line_count", self.track_line_count),
("text_line_max_len", self.output_line_max_len),
("text_line_mean_len", self.output_line_mean_len),
("text_line_median_len", self.output_line_median_len),
];
for (output_name, is_enabled) in outputs_to_check {
if !is_enabled {
if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs(
output_name,
serde_yaml::Value::Null,
self.base.outputs()
) {
metadata.push(meta_data);
}
}
}
// Drop the buffer since we're done with it // Drop the buffer since we're done with it
self.buffer = None; self.buffer = None;