Skip to content

Validation & Adaptation #3

@prosdev

Description

@prosdev

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions