-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
Phase: 3 - Validation & Adaptation
Estimated Effort: 4-5 hours
Tasks: Task 5, Task 6 from specs/core-pipeline/tasks.md
Checklist
Task 5: Implement Validators (2 hours)
- Define Validator Protocol
- Create RequiredFieldsValidator
- Create TypeCheckValidator
- Create TimestampValidator (parse ISO 8601)
- Write unit tests for validators
Task 6: Implement Segment Adapter (2-3 hours)
- Create SegmentAdapter class
- Implement adapt() with validation chain
- Route by type: identify, track, page
- Extract refs (userId, anonymousId)
- Return AdapterResult.err() for invalid events (not exception)
- Write unit tests (100% coverage)
Acceptance Criteria
- All validators implement Validator Protocol
- Validators are composable
- SegmentAdapter handles all event types
- Invalid events return errors (not exceptions)
- Refs extracted correctly
- Unit tests pass
Files to Create
src/eventkit/adapters/validators/base.py
src/eventkit/adapters/validators/required_fields.py
src/eventkit/adapters/validators/type_check.py
src/eventkit/adapters/validators/timestamp.py
src/eventkit/adapters/segment.py
tests/unit/adapters/validators/test_validators.py
tests/unit/adapters/test_segment.py
Dependencies: Issue #1
User Stories: Story 3 (Type-Safe Processing), Story 6 (Error Handling), Story 7 (Segment Compatibility)
Metadata
Metadata
Assignees
Labels
No labels