generated from nhcarrigan/template
a40188413a
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.
40 lines
1.1 KiB
Python
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")
|