Skip to content

Commit 07a8cbb

Browse files
committed
upload fix
1 parent 00824e1 commit 07a8cbb

1 file changed

Lines changed: 56 additions & 14 deletions

File tree

  • src/cell2sentence4longevity/preprocessing

src/cell2sentence4longevity/preprocessing/upload.py

Lines changed: 56 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)