""" Export utilities """ import json def prepare_export(items_with_positive, feedback_scores, feedback_comments=None): """ Prépare les données pour l'export avec identifiants uniques Args: items_with_positive: Liste de tuples (original_idx, item) feedback_scores: Dict {idx: score} feedback_comments: Dict {idx: comment} (optionnel) Returns: Liste de dicts prêts pour l'export """ export_data = [] for original_idx, item in items_with_positive: if original_idx in feedback_scores: export_item = { 'code': item.get('anchor', item.get('code', '')), 'positive_feedback': item.get('positive', ''), 'score': feedback_scores[original_idx], } # Add unique identifiers for merging # Priority: code_id > author_id > hash of content if 'code_id' in item: export_item['code_id'] = item['code_id'] if 'author_id' in item: export_item['author_id'] = item['author_id'] # Add optional fields if 'language' in item: export_item['language'] = item['language'] # Add comment if exists if feedback_comments and original_idx in feedback_comments: comment = feedback_comments[original_idx] if comment.strip(): export_item['comment'] = comment # Add original index for reference (local to this file) export_item['original_index'] = original_idx export_data.append(export_item) return export_data def export_to_jsonl(export_data): """ Convertit les données en format JSONL Args: export_data: Liste de dicts Returns: String JSONL """ return "\n".join(json.dumps(item, ensure_ascii=False) for item in export_data)