Spaces:
Running
Running
| from huggingface_hub import HfApi, HfFileSystem | |
| import urllib.parse | |
| import os | |
| import sys, io | |
| sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') | |
| api = HfApi() | |
| fs = HfFileSystem() | |
| def get_language(filename): | |
| name = urllib.parse.unquote(filename).lower() | |
| if 'english' in name or 'american' in name or 'british' in name or 'patois' in name or 'pidgin' in name or 'south african' in name: | |
| return 'English' | |
| if 'korean' in name: | |
| return 'Korean' | |
| if 'igbo' in name: | |
| return 'Asusu Igbo' | |
| if 'tagalog' in name or 'filipino' in name: | |
| return 'Filipino' | |
| if 'creole' in name: | |
| return 'Creole' | |
| if 'indonesian' in name: | |
| return 'Indonesian' | |
| return 'Other' | |
| repo_id = "toecm/IEDID" | |
| def migrate(): | |
| files = fs.ls(f"datasets/{repo_id}", detail=False) | |
| # Strip prefix 'datasets/toecm/IEDID/' | |
| files = [f.replace(f"datasets/{repo_id}/", "") for f in files] | |
| operations = [] | |
| for f in files: | |
| if f in ['.gitattributes', 'README.md', 'minted_history.csv', 'audio', 'audio_files']: | |
| continue | |
| lang = get_language(f) | |
| # Decide if it goes to /data/ or /personas/ | |
| if f.endswith('.csv'): | |
| new_path = f"{lang}/data/{f}" | |
| elif f.endswith('.json'): | |
| new_path = f"{lang}/personas/{f}" | |
| else: | |
| continue | |
| print(f"Moving {f} -> {new_path}") | |
| operations.append({ | |
| "path_in_repo": f, | |
| "path_in_repo_new": new_path, | |
| }) | |
| if not operations: | |
| print("No files to migrate.") | |
| return | |
| print("Executing move operations...") | |
| for op in operations: | |
| try: | |
| # We use fs.mv for moving files on the Hugging Face filesystem | |
| src = f"datasets/{repo_id}/{op['path_in_repo']}" | |
| dest = f"datasets/{repo_id}/{op['path_in_repo_new']}" | |
| fs.mv(src, dest) | |
| print(f"Success: {op['path_in_repo']}") | |
| except Exception as e: | |
| print(f"Failed to move {op['path_in_repo']}: {e}") | |
| if __name__ == "__main__": | |
| migrate() | |