Spaces:
Sleeping
Sleeping
| """ | |
| 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) | |