@@ -68,27 +68,38 @@ def upload_to_huggingface(
6868 has_train_test_split = (data_splits_dir / "train" ).exists ()
6969 else :
7070 # Dataset name provided, detect if it has splits
71+ # When dataset_name is provided, data_splits_dir is typically already the dataset directory
72+ # Check if train/test directories exist directly in data_splits_dir
7173 has_train_test_split = (
72- (data_splits_dir / dataset_name / "train" / "chunks" ).exists () or
7374 (data_splits_dir / "train" / "chunks" ).exists () or
74- (data_splits_dir / "train" ).exists ()
75+ (data_splits_dir / "train" ).exists () or
76+ (data_splits_dir .parent / dataset_name / "train" / "chunks" ).exists () or
77+ (data_splits_dir .parent / dataset_name / "train" ).exists ()
7578 )
7679
7780 # Determine chunk directories based on split status
7881 if has_train_test_split :
7982 # Determine train and test chunk directories
80- if (data_splits_dir / dataset_name / "train" / "chunks" / "chunk_0000.parquet" ).exists ():
81- # New structure: data_splits_dir/dataset_name/train/chunks/
82- train_chunks_dir = data_splits_dir / dataset_name / "train" / "chunks"
83- test_chunks_dir = data_splits_dir / dataset_name / "test" / "chunks"
84- elif (data_splits_dir / "train" / "chunks" / "chunk_0000.parquet" ).exists ():
85- # New structure: data_splits_dir is dataset_name, train/chunks/ and test/chunks/
86- train_chunks_dir = data_splits_dir / "train" / "chunks"
87- test_chunks_dir = data_splits_dir / "test" / "chunks"
88- elif (data_splits_dir / "train" / "chunk_0000.parquet" ).exists ():
89- # Old structure: data_splits_dir/train/ and data_splits_dir/test/
83+ # When dataset_name is provided, data_splits_dir is typically the dataset directory itself
84+ # Check in order of most likely structure first
85+
86+ # First check: files directly in train/ and test/ (most common case)
87+ if (data_splits_dir / "train" / "chunk_0000.parquet" ).exists () or list ((data_splits_dir / "train" ).glob ("chunk_*.parquet" )):
88+ # Structure: data_splits_dir/train/ (data_splits_dir is dataset_name, files directly in train/)
9089 train_chunks_dir = data_splits_dir / "train"
9190 test_chunks_dir = data_splits_dir / "test"
91+ elif (data_splits_dir / "train" / "chunks" / "chunk_0000.parquet" ).exists () or list ((data_splits_dir / "train" / "chunks" ).glob ("chunk_*.parquet" )) if (data_splits_dir / "train" / "chunks" ).exists () else False :
92+ # Structure: data_splits_dir/train/chunks/ (data_splits_dir is dataset_name)
93+ train_chunks_dir = data_splits_dir / "train" / "chunks"
94+ test_chunks_dir = data_splits_dir / "test" / "chunks"
95+ elif (data_splits_dir .parent / dataset_name / "train" / "chunk_0000.parquet" ).exists () or list ((data_splits_dir .parent / dataset_name / "train" ).glob ("chunk_*.parquet" )) if (data_splits_dir .parent / dataset_name / "train" ).exists () else False :
96+ # Structure: data_splits_dir/dataset_name/train/ (data_splits_dir is output_dir, files directly in train/)
97+ train_chunks_dir = data_splits_dir .parent / dataset_name / "train"
98+ test_chunks_dir = data_splits_dir .parent / dataset_name / "test"
99+ elif (data_splits_dir .parent / dataset_name / "train" / "chunks" / "chunk_0000.parquet" ).exists () or list ((data_splits_dir .parent / dataset_name / "train" / "chunks" ).glob ("chunk_*.parquet" )) if (data_splits_dir .parent / dataset_name / "train" / "chunks" ).exists () else False :
100+ # Structure: data_splits_dir/dataset_name/train/chunks/ (data_splits_dir is output_dir)
101+ train_chunks_dir = data_splits_dir .parent / dataset_name / "train" / "chunks"
102+ test_chunks_dir = data_splits_dir .parent / dataset_name / "test" / "chunks"
92103 else :
93104 # Fallback: assume chunks are directly in train/ and test/
94105 train_chunks_dir = data_splits_dir / "train"
@@ -157,7 +168,24 @@ def upload_to_huggingface(
157168 if has_train_test_split :
158169 # Handle train/test split case
159170 # Prepare train files - upload all files regardless of existing status
160- train_files = sorted (list (train_chunks_dir .glob ("chunk_*.parquet" ))) if train_chunks_dir .exists () else []
171+ if train_chunks_dir is None or not train_chunks_dir .exists ():
172+ action .log (
173+ message_type = "train_chunks_dir_not_found" ,
174+ train_chunks_dir = str (train_chunks_dir ) if train_chunks_dir else None ,
175+ data_splits_dir = str (data_splits_dir ),
176+ dataset_name = dataset_name ,
177+ has_train_test_split = has_train_test_split
178+ )
179+ typer .echo (f"⚠ Train chunks directory not found: { train_chunks_dir } " )
180+ typer .echo (f" data_splits_dir: { data_splits_dir } " )
181+ typer .echo (f" dataset_name: { dataset_name } " )
182+ train_files = sorted (list (train_chunks_dir .glob ("chunk_*.parquet" ))) if train_chunks_dir and train_chunks_dir .exists () else []
183+ action .log (
184+ message_type = "train_files_search" ,
185+ train_chunks_dir = str (train_chunks_dir ) if train_chunks_dir else None ,
186+ train_chunks_dir_exists = train_chunks_dir .exists () if train_chunks_dir else False ,
187+ files_found = len (train_files )
188+ )
161189 for filepath in train_files :
162190 repo_path = f'{ dataset_name } /train/{ filepath .name } '
163191 operations .append (
@@ -175,7 +203,21 @@ def upload_to_huggingface(
175203 )
176204
177205 # Prepare test files - upload all files regardless of existing status
178- test_files = sorted (list (test_chunks_dir .glob ("chunk_*.parquet" ))) if test_chunks_dir .exists () else []
206+ if test_chunks_dir is None or not test_chunks_dir .exists ():
207+ action .log (
208+ message_type = "test_chunks_dir_not_found" ,
209+ test_chunks_dir = str (test_chunks_dir ) if test_chunks_dir else None ,
210+ data_splits_dir = str (data_splits_dir ),
211+ dataset_name = dataset_name
212+ )
213+ typer .echo (f"⚠ Test chunks directory not found: { test_chunks_dir } " )
214+ test_files = sorted (list (test_chunks_dir .glob ("chunk_*.parquet" ))) if test_chunks_dir and test_chunks_dir .exists () else []
215+ action .log (
216+ message_type = "test_files_search" ,
217+ test_chunks_dir = str (test_chunks_dir ) if test_chunks_dir else None ,
218+ test_chunks_dir_exists = test_chunks_dir .exists () if test_chunks_dir else False ,
219+ files_found = len (test_files )
220+ )
179221 for filepath in test_files :
180222 repo_path = f'{ dataset_name } /test/{ filepath .name } '
181223 operations .append (
0 commit comments