mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
fix observation service tests, remove EntityId from schemas.py
This commit is contained in:
@@ -10,11 +10,17 @@ from basic_memory.schemas.base import (
|
||||
Observation,
|
||||
EntityType,
|
||||
RelationType,
|
||||
EntityId,
|
||||
Relation,
|
||||
Entity,
|
||||
)
|
||||
|
||||
# Delete operation models
|
||||
from basic_memory.schemas.delete import (
|
||||
DeleteEntityRequest,
|
||||
DeleteRelationsRequest,
|
||||
DeleteObservationsRequest,
|
||||
)
|
||||
|
||||
# Request models
|
||||
from basic_memory.schemas.request import (
|
||||
AddObservationsRequest,
|
||||
@@ -41,30 +47,20 @@ from basic_memory.schemas.response import (
|
||||
DeleteObservationsResponse,
|
||||
)
|
||||
|
||||
# Delete operation models
|
||||
from basic_memory.schemas.delete import (
|
||||
DeleteEntityRequest,
|
||||
DeleteRelationsRequest,
|
||||
DeleteObservationsRequest,
|
||||
)
|
||||
|
||||
# For convenient imports, export all models
|
||||
__all__ = [
|
||||
# Base
|
||||
"Observation",
|
||||
"EntityType",
|
||||
"RelationType",
|
||||
"EntityId",
|
||||
"RelationType",
|
||||
"Relation",
|
||||
"Entity",
|
||||
|
||||
# Requests
|
||||
"AddObservationsRequest",
|
||||
"CreateEntityRequest",
|
||||
"SearchNodesRequest",
|
||||
"OpenNodesRequest",
|
||||
"CreateRelationsRequest",
|
||||
|
||||
# Responses
|
||||
"SQLAlchemyModel",
|
||||
"ObservationResponse",
|
||||
@@ -79,9 +75,8 @@ __all__ = [
|
||||
"DeleteEntityResponse",
|
||||
"DeleteRelationsResponse",
|
||||
"DeleteObservationsResponse",
|
||||
|
||||
# Delete Operations
|
||||
"DeleteEntityRequest",
|
||||
"DeleteRelationsRequest",
|
||||
"DeleteObservationsRequest",
|
||||
]
|
||||
]
|
||||
|
||||
@@ -86,23 +86,6 @@ Guidelines:
|
||||
Common types are listed in the module docstring.
|
||||
"""
|
||||
|
||||
# Custom field types with validation
|
||||
EntityId = Annotated[str, BeforeValidator(lower_strip_whitespace)]
|
||||
"""Unique identifier for an entity in format '{entity_type}/{normalized_name}'.
|
||||
|
||||
Examples:
|
||||
- person/alice_smith
|
||||
- project/basic_memory
|
||||
- component/memory_service
|
||||
- concept/semantic_search
|
||||
|
||||
The ID is automatically generated from the entity type and name.
|
||||
Names are normalized by:
|
||||
1. Converting to lowercase
|
||||
2. Replacing spaces with underscores
|
||||
3. Removing special characters
|
||||
"""
|
||||
|
||||
|
||||
class Relation(BaseModel):
|
||||
"""Represents a directed edge between entities in the knowledge graph.
|
||||
@@ -141,8 +124,8 @@ class Relation(BaseModel):
|
||||
}
|
||||
"""
|
||||
|
||||
from_id: EntityId
|
||||
to_id: EntityId
|
||||
from_id: int
|
||||
to_id: int
|
||||
relation_type: RelationType
|
||||
context: Optional[str] = None
|
||||
|
||||
@@ -207,7 +190,7 @@ class Entity(BaseModel):
|
||||
}
|
||||
"""
|
||||
|
||||
id: Optional[EntityId] = None
|
||||
id: Optional[int] = None
|
||||
name: str
|
||||
entity_type: EntityType
|
||||
description: Optional[str] = None
|
||||
|
||||
@@ -21,7 +21,7 @@ from typing import List, Annotated
|
||||
from annotated_types import MinLen
|
||||
from pydantic import BaseModel
|
||||
|
||||
from basic_memory.schemas.base import EntityId, Relation, Observation
|
||||
from basic_memory.schemas.base import Relation, Observation
|
||||
|
||||
|
||||
class DeleteEntityRequest(BaseModel):
|
||||
@@ -56,7 +56,7 @@ class DeleteEntityRequest(BaseModel):
|
||||
5. Create relations to replacement entities if applicable
|
||||
"""
|
||||
|
||||
entity_ids: Annotated[List[EntityId], MinLen(1)]
|
||||
entity_ids: Annotated[List[int], MinLen(1)]
|
||||
|
||||
|
||||
class DeleteRelationsRequest(BaseModel):
|
||||
@@ -132,5 +132,5 @@ class DeleteObservationsRequest(BaseModel):
|
||||
5. Updating implementation details
|
||||
"""
|
||||
|
||||
entity_id: EntityId
|
||||
deletions: Annotated[List[Observation], MinLen(1)]
|
||||
entity_id: int
|
||||
deletions: Annotated[List[Observation], MinLen(1)]
|
||||
|
||||
@@ -5,7 +5,7 @@ from typing import List, Optional, Annotated, Dict, Any
|
||||
from annotated_types import MinLen, MaxLen
|
||||
from pydantic import BaseModel
|
||||
|
||||
from basic_memory.schemas.base import EntityId, Observation, Entity, Relation
|
||||
from basic_memory.schemas.base import Observation, Entity, Relation
|
||||
|
||||
|
||||
class AddObservationsRequest(BaseModel):
|
||||
@@ -45,7 +45,7 @@ class AddObservationsRequest(BaseModel):
|
||||
4. Add observations in logical groups for better history tracking
|
||||
"""
|
||||
|
||||
entity_id: EntityId
|
||||
entity_id: int
|
||||
context: Optional[str] = None
|
||||
observations: List[Observation]
|
||||
|
||||
@@ -152,7 +152,7 @@ class OpenNodesRequest(BaseModel):
|
||||
relations between entities that interest you.
|
||||
"""
|
||||
|
||||
entity_ids: Annotated[List[EntityId], MinLen(1)]
|
||||
entity_ids: Annotated[List[int], MinLen(1)]
|
||||
|
||||
|
||||
class CreateRelationsRequest(BaseModel):
|
||||
|
||||
@@ -16,7 +16,7 @@ from typing import List, Optional, Dict, Any
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
from basic_memory.schemas.base import Observation, EntityId, Relation
|
||||
from basic_memory.schemas.base import Observation, Relation
|
||||
|
||||
|
||||
class SQLAlchemyModel(BaseModel):
|
||||
@@ -69,7 +69,7 @@ class ObservationsResponse(SQLAlchemyModel):
|
||||
}
|
||||
"""
|
||||
|
||||
entity_id: EntityId
|
||||
entity_id: int
|
||||
observations: List[ObservationResponse]
|
||||
|
||||
|
||||
@@ -255,7 +255,7 @@ class AddObservationsResponse(SQLAlchemyModel):
|
||||
}
|
||||
"""
|
||||
|
||||
entity_id: EntityId
|
||||
entity_id: int
|
||||
observations: List[ObservationResponse]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user