Spaces:
Sleeping
Sleeping
Implementada estructura modular con controladores y modelos de datos siguiendo la versi贸n local
2eb6f71
| """ | |
| 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() | |
| } | |
| 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 | |