Skip to content

Commit 4588818

Browse files
committed
handle empty set properly
1 parent f4c5db2 commit 4588818

File tree

5 files changed

+25
-0
lines changed

5 files changed

+25
-0
lines changed

src/feature_engineering.py

+12
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ def explode_moves(player: str,
8181
data_date=data_date,
8282
)
8383
df = pd.read_parquet(io_dir / f'{prefix}_cleaned_df.parquet')
84+
if df.empty:
85+
df.to_parquet(io_dir / f'{prefix}_exploded_moves.parquet')
86+
return
8487
df = df[['game_link', 'moves']]
8588

8689
df = df.explode('moves')
@@ -101,6 +104,9 @@ def explode_clocks(player: str,
101104
data_date=data_date,
102105
)
103106
df = pd.read_parquet(io_dir / f'{prefix}_cleaned_df.parquet')
107+
if df.empty:
108+
df.to_parquet(io_dir / f'{prefix}_exploded_clocks.parquet')
109+
return
104110
df = df[['game_link', 'clocks']]
105111

106112
df = df.explode('clocks')
@@ -122,6 +128,9 @@ def explode_positions(player: str,
122128
data_date=data_date,
123129
)
124130
df = pd.read_parquet(io_dir / f'{prefix}_cleaned_df.parquet')
131+
if df.empty:
132+
df.to_parquet(io_dir / f'{prefix}_exploded_positions.parquet')
133+
return
125134
df = df[['game_link', 'positions']]
126135

127136
df = df.explode('positions')
@@ -144,6 +153,9 @@ def explode_materials(player: str,
144153
data_date=data_date,
145154
)
146155
df = pd.read_parquet(io_dir / f'{prefix}_cleaned_df.parquet')
156+
if df.empty:
157+
df.to_parquet(io_dir / f'{prefix}_exploded_materials.parquet')
158+
return
147159
df = df[['game_link', 'material_by_move']]
148160

149161
df = df.explode('material_by_move')

src/inference.py

+4
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ def estimate_win_probabilities(player: str,
2424
positions = pd.read_parquet(io_dir / f'{prefix}_exploded_positions.parquet') # noqa
2525
game_clocks = pd.read_parquet(io_dir / f'{prefix}_exploded_clocks.parquet')
2626

27+
if all(df.empty for df in [game_infos, evals, positions, game_clocks]):
28+
game_infos.to_parquet(io_dir / f'{prefix}_win_probabilities.parquet')
29+
return
30+
2731
game_infos['has_increment'] = (game_infos['increment'] > 0).astype(int)
2832

2933
game_infos_cols = ['game_link',

src/pipeline_import/postgres_templates.py

+3
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ def _load_to_table(table_name: str,
173173
)
174174

175175
reader = pq.ParquetFile(io_dir / f'{parquet_filename}.parquet')
176+
if not reader.scan_contents():
177+
print('did not find any rows to load, exiting')
178+
return
176179

177180
temp_table_name = f'temp_{table_name}'
178181

src/pipeline_import/transforms.py

+3
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ def transform_game_data(player: str,
190190
data_date=data_date,
191191
)
192192
df = pd.read_parquet(io_dir / f'{prefix}_cleaned_df.parquet')
193+
if df.empty:
194+
df.to_parquet(io_dir / f'{prefix}_game_infos.parquet')
195+
return
193196
df['player'] = player
194197

195198
if 'black_rating_diff' not in df.columns:

src/vendors/stockfish.py

+3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ def get_evals(player: str,
2121
data_date=data_date,
2222
)
2323
df = pd.read_parquet(io_dir / f'{prefix}_cleaned_df.parquet')
24+
if df.empty:
25+
df.to_parquet(io_dir / f'{prefix}_evals.parquet')
26+
return
2427

2528
sf_params = get_cfg('stockfish_cfg')
2629

0 commit comments

Comments
 (0)