evolving_ideas.domain.models.idea

evolving_ideas.domain.models.idea

Classes

Attachment

Represents an attachment for an idea version.

QAPair

Represents a question and answer pair for an idea version.

IdeaVersion

Represents a version of an idea.

Tree

Represents the version tree of an idea.

NodeData

Represents a node in the idea tree.

IdeaMetadata

Represents metadata for an idea.

Module Contents

class evolving_ideas.domain.models.idea.Attachment

Represents an attachment for an idea version.

Variables:
  • path – str: The file path of the attachment.

  • description – str: A brief description of the attachment.

path: str
description: str
class evolving_ideas.domain.models.idea.QAPair

Represents a question and answer pair for an idea version.

Variables:
  • question – str: The question asked about the idea.

  • answer – str: The answer provided for the question.

question: str
answer: str
class evolving_ideas.domain.models.idea.IdeaVersion

Represents a version of an idea.

Variables:
  • id – str: Unique identifier for the idea.

  • version – int: The version number of the idea.

  • title – str: The title of the idea.

  • status – str: The current status of the idea (e.g., “raw”, “in progress”, “completed”).

  • created_at – str: The timestamp when the idea version was created.

  • author – str: The author of the idea version.

  • parent_id – Optional[int]: The ID of the parent version, if applicable.

  • description – str: A detailed description of the idea.

  • context – dict: Additional context for the idea, such as role and task.

  • qna – List[QAPair]: A list of question and answer pairs related to the idea.

  • attachments – List[Attachment]: A list of attachments related to the idea.

  • tags – List[str]: Tags associated with the idea for categorization.

  • linked_projects – List[str]: Projects that this idea is linked to.

  • related_ideas – List[str]: Other ideas that are related to this one.

id: str
version: int
title: str
status: str
created_at: str
author: str
parent_id: str | None
description: str
context: dict
qna: List[QAPair]
attachments: List[Attachment]
tags: List[str]
summary: str = ''
method: str | None = None
method_metadata: dict | None = None
classmethod from_file(path: pathlib.Path) IdeaVersion

Load an IdeaVersion from a YAML file.

Parameters:

path (Path) – The path to the YAML file.

Returns:

An IdeaVersion object loaded from the file.

Return type:

IdeaVersion

to_file(path: pathlib.Path)

Save the IdeaVersion to a YAML file.

Parameters:

path (Path) – The path where the YAML file will be saved.

class evolving_ideas.domain.models.idea.Tree

Represents the version tree of an idea.

Variables:
  • root – int: The ID of the root version.

  • current – int: The ID of the current version.

  • children – dict: A dictionary mapping version IDs to their child versions.

root: int
current: int
children: dict[str, List[int]]
class evolving_ideas.domain.models.idea.NodeData

Represents a node in the idea tree.

Variables:
  • created_at – str: The timestamp when the node was created.

  • note – str: A note or description for the node.

created_at: str
note: str
tags: List[str]
class evolving_ideas.domain.models.idea.IdeaMetadata

Represents metadata for an idea.

Variables:
  • id – str: Unique identifier for the idea.

  • title – str: The title of the idea.

  • created_by – str: The author of the idea.

  • created_at – str: The timestamp when the idea was created.

  • tree – dict: Metadata about the idea’s version tree.

id: str
title: str
created_by: str
created_at: str
tree: Tree
node_data: dict[str, NodeData]
to_dict() dict

Convert the IdeaMetadata to a dictionary.

Returns:

A dictionary representation of the IdeaMetadata.

Return type:

dict