fix: 🐛 Quick Exit on keyboard interrupt

This commit is contained in:
2025-12-08 19:14:02 +00:00
parent 1a6219f64d
commit 009c40e08a
3 changed files with 29 additions and 16 deletions
+3
View File
@@ -9,6 +9,7 @@ wheels/
# Virtual environments # Virtual environments
.venv .venv
dat_other/*
dat_files/* dat_files/*
asc_files/* asc_files/*
csv_files/* csv_files/*
@@ -16,3 +17,5 @@ combined_files/*
zone_inputs/* zone_inputs/*
*.tar.gz *.tar.gz
generate_test_data.py
+9 -4
View File
@@ -72,8 +72,13 @@ class BatchNimrod:
} }
completed_count = 0 completed_count = 0
for future in concurrent.futures.as_completed(future_to_file): try:
completed_count += 1 for future in concurrent.futures.as_completed(future_to_file):
if completed_count % 10 == 0: completed_count += 1
logging.info(f'processed {completed_count} out of {total_files} files') if completed_count % 10 == 0:
logging.info(f'processed {completed_count} out of {total_files} files')
except KeyboardInterrupt:
logging.warning("KeyboardInterrupt received. Cancelling pending tasks...")
executor.shutdown(wait=False, cancel_futures=True)
raise
+15 -10
View File
@@ -152,17 +152,22 @@ class GenerateTimeseries:
} }
completed_count = 0 completed_count = 0
for future in concurrent.futures.as_completed(future_to_file): try:
file_results = future.result() for future in concurrent.futures.as_completed(future_to_file):
if file_results: file_results = future.result()
for res in file_results: if file_results:
zone_id = res['zone_id'] for res in file_results:
results[zone_id]['dates'].append(res['date']) zone_id = res['zone_id']
results[zone_id]['values'].append(res['value']) results[zone_id]['dates'].append(res['date'])
results[zone_id]['values'].append(res['value'])
completed_count += 1 completed_count += 1
if completed_count % 100 == 0: if completed_count % 100 == 0:
print(f"Processed {completed_count}/{total_files} files") print(f"Processed {completed_count}/{total_files} files")
except KeyboardInterrupt:
print("KeyboardInterrupt received. Cancelling pending tasks...")
executor.shutdown(wait=False, cancel_futures=True)
raise
# Write CSVs for each location # Write CSVs for each location
print("Writing CSV files...") print("Writing CSV files...")