NumPy allowed · plain Python earns 10 bonus points
Segment raw user interaction clickstreams into bounded continuous activity sessions.
Implement sessionize_user_events(events, inactivity_timeout): sort events by (user_id, timestamp). For each user, if the difference between successive timestamps exceeds inactivity_timeout, increment the user's session counter. Assign session_id = f'{user_id}_s{counter}' to each event record. Return annotated event records.
sessionize_user_events(events: list[dict], inactivity_timeout: int) -> list[dict]