Enhance CSV parsing utility to support random shuffling with multiple random states
Browse files
app.py
CHANGED
@@ -1,12 +1,13 @@
|
|
1 |
"""Shazam Playlist to Youtube Playlist"""
|
2 |
|
3 |
from pathlib import Path
|
|
|
4 |
from typing import Optional
|
5 |
import logging
|
6 |
import pandas as pd
|
7 |
from pytube import Search, YouTube
|
8 |
from flask import Flask, request, send_from_directory
|
9 |
-
from sklearn.utils import shuffle as
|
10 |
|
11 |
# https://github.com/pytube/pytube/issues/1270#issuecomment-2100372834
|
12 |
pytube_logger = logging.getLogger('pytube')
|
@@ -62,7 +63,8 @@ def parse_csv_util(df: pd.DataFrame, shuffle = False):
|
|
62 |
try:
|
63 |
df = df.drop_duplicates(subset=['TrackKey'])[['Title', 'Artist']]
|
64 |
if shuffle:
|
65 |
-
|
|
|
66 |
return df.to_json(orient="records")
|
67 |
except Exception as e:
|
68 |
return str(e)
|
|
|
1 |
"""Shazam Playlist to Youtube Playlist"""
|
2 |
|
3 |
from pathlib import Path
|
4 |
+
import random
|
5 |
from typing import Optional
|
6 |
import logging
|
7 |
import pandas as pd
|
8 |
from pytube import Search, YouTube
|
9 |
from flask import Flask, request, send_from_directory
|
10 |
+
from sklearn.utils import shuffle as sklearn_shuffle
|
11 |
|
12 |
# https://github.com/pytube/pytube/issues/1270#issuecomment-2100372834
|
13 |
pytube_logger = logging.getLogger('pytube')
|
|
|
63 |
try:
|
64 |
df = df.drop_duplicates(subset=['TrackKey'])[['Title', 'Artist']]
|
65 |
if shuffle:
|
66 |
+
for random_state in random.sample(range(444, 44444), 3):
|
67 |
+
df = sklearn_shuffle(df, random_state=random_state).reset_index(drop=True)
|
68 |
return df.to_json(orient="records")
|
69 |
except Exception as e:
|
70 |
return str(e)
|