Skip to content

Models

claude_conversation_extractor.models

Data models for Claude conversation extraction.

Account

Bases: BaseModel

Account information.

Source code in src/claude_conversation_extractor/models.py
 8
 9
10
11
class Account(BaseModel):
    """Account information."""

    uuid: str

ChatMessage

Bases: BaseModel

Individual chat message.

Source code in src/claude_conversation_extractor/models.py
40
41
42
43
44
45
46
47
48
49
50
class ChatMessage(BaseModel):
    """Individual chat message."""

    uuid: str
    text: str
    content: list[Content]
    sender: str  # "human" or "assistant"
    created_at: datetime
    updated_at: datetime
    attachments: list[FileObject] = Field(default_factory=list)
    files: list[FileObject] = Field(default_factory=list)

Citation

Bases: BaseModel

Citation information.

Source code in src/claude_conversation_extractor/models.py
14
15
16
17
18
class Citation(BaseModel):
    """Citation information."""

    # Add citation fields as needed based on the actual data structure
    pass

ClaudeExport

Bases: RootModel[list[Conversation]]

Root structure of Claude export file.

Source code in src/claude_conversation_extractor/models.py
64
65
66
67
68
69
70
class ClaudeExport(RootModel[list[Conversation]]):
    """Root structure of Claude export file."""

    @property
    def conversations(self) -> list[Conversation]:
        """Get the list of conversations."""
        return self.root

conversations property

conversations

Get the list of conversations.

Content

Bases: BaseModel

Message content with timestamps.

Source code in src/claude_conversation_extractor/models.py
30
31
32
33
34
35
36
37
class Content(BaseModel):
    """Message content with timestamps."""

    start_timestamp: datetime | None = None
    stop_timestamp: datetime | None = None
    type: str
    text: str | None = None
    citations: list[Citation] = Field(default_factory=list)

Conversation

Bases: BaseModel

Complete conversation with messages.

Source code in src/claude_conversation_extractor/models.py
53
54
55
56
57
58
59
60
61
class Conversation(BaseModel):
    """Complete conversation with messages."""

    uuid: str
    name: str
    created_at: datetime
    updated_at: datetime
    account: Account
    chat_messages: list[ChatMessage] = Field(default_factory=list)

FileObject

Bases: BaseModel

File attachment information.

Source code in src/claude_conversation_extractor/models.py
21
22
23
24
25
26
27
class FileObject(BaseModel):
    """File attachment information."""

    file_name: str
    file_size: int | None = None
    file_type: str | None = None
    extracted_content: str | None = None