Spaces:
Sleeping
Sleeping
File size: 2,439 Bytes
2eb6f71 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
"""
Context Member Model for EmotionMirror application.
This module defines the ContextMember class that represents
a member (person) in a group analysis context.
"""
from typing import Dict, Any, Optional
from datetime import datetime
class ContextMember:
"""
Represents a member (person) in a group analysis context.
"""
def __init__(
self,
member_id: str,
name: Optional[str] = None,
face_data: Optional[Dict[str, Any]] = None,
emotion_data: Optional[Dict[str, float]] = None,
metadata: Optional[Dict[str, Any]] = None
):
"""
Initialize a context member.
Args:
member_id: Unique identifier for the member
name: Name of the person if known
face_data: Face detection data including coordinates, etc.
emotion_data: Emotion analysis results
metadata: Additional member metadata
"""
self.member_id = member_id
self.name = name or "Unknown"
self.face_data = face_data or {}
self.emotion_data = emotion_data or {}
self.metadata = metadata or {}
self.created_at = datetime.now()
def to_dict(self) -> Dict[str, Any]:
"""
Convert the context member to a dictionary for storage or serialization.
Returns:
Dictionary representation of the context member
"""
return {
"member_id": self.member_id,
"name": self.name,
"face_data": self.face_data,
"emotion_data": self.emotion_data,
"metadata": self.metadata,
"created_at": self.created_at.isoformat()
}
@classmethod
def from_dict(cls, data: Dict[str, Any]) -> 'ContextMember':
"""
Create a context member from a dictionary.
Args:
data: Dictionary with context member data
Returns:
A ContextMember instance
"""
instance = cls(
member_id=data.get("member_id", ""),
name=data.get("name", "Unknown"),
face_data=data.get("face_data", {}),
emotion_data=data.get("emotion_data", {}),
metadata=data.get("metadata", {})
)
if "created_at" in data:
instance.created_at = datetime.fromisoformat(data["created_at"])
return instance
|