Files
ephemere/python/cohort/generate_timeslots.py
T
naomi a40188413a docs: add data file documentation and fix data path resolution
All Python cohort scripts now use DATA_DIR = Path(__file__).parent.parent.parent / "data"
to correctly resolve the repo-root data/ directory regardless of the working directory
set by run.sh. All TypeScript scripts have expanded JSDoc headers documenting data file
requirements and environment variables.
2026-02-23 15:42:03 -08:00

40 lines
1.1 KiB
Python

"""Generate hourly timeslot JSON for use with Crabfit scheduling tool.
Produces a list of ISO-format datetime strings covering every hour across the
scheduling window. Update the start_date and end_date constants before running.
Outputs (written to data/):
- crabfit_timeslots.json List of hourly timeslot strings
Env vars:
- None
"""
import json
from datetime import datetime, timedelta
from pathlib import Path
DATA_DIR = Path(__file__).parent.parent.parent / "data"
# Generate hourly time slots from Feb 1 to March 3, 2026
# 24 hours a day, America/Los_Angeles timezone
start_date = datetime(2026, 2, 1, 0, 0) # Feb 1, 2026, midnight
end_date = datetime(2026, 3, 3, 23, 0) # March 3, 2026, 11pm
times = []
current = start_date
while current <= end_date:
# Format: YYYY-MM-DDTHH:MM
times.append(current.strftime("%Y-%m-%dT%H:%M"))
current += timedelta(hours=1)
print(f"Generated {len(times)} time slots")
print(f"First: {times[0]}")
print(f"Last: {times[-1]}")
# Save to file for use
with open(DATA_DIR / "crabfit_timeslots.json", "w") as f:
json.dump(times, f)
print("Saved to crabfit_timeslots.json")