This commit is contained in:
Vic Sergeev 2026-05-07 17:15:56 +03:00
parent f7e794774d
commit 09d181eba8
37 changed files with 1898 additions and 5 deletions

View file

@ -0,0 +1,4 @@
from models.astro_object import AstroObject
from models.session import Session
__all__ = ['AstroObject', 'Session']

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,19 @@
from dataclasses import dataclass
from pathlib import Path
@dataclass
class AstroObject:
"""Модель астрономического объекта"""
name: str
folder: Path
photo_count: int = 0
def increment_photo_count(self):
self.photo_count += 1
def get_object_log_path(self) -> Path:
return self.folder / "ObjectLog.txt"
def __str__(self):
return f"AstroObject(name='{self.name}', photos={self.photo_count})"

View file

@ -0,0 +1,31 @@
from dataclasses import dataclass, field
from datetime import datetime
from pathlib import Path
from typing import List, Optional
from models.astro_object import AstroObject
@dataclass
class Session:
"""Модель сессии наблюдения"""
camera: str
optics: str
start_time: datetime
end_time: Optional[datetime] = None
objects: List[AstroObject] = field(default_factory=list)
session_folder: Optional[Path] = None
def add_object(self, astro_object: AstroObject):
self.objects.append(astro_object)
def get_current_object(self) -> Optional[AstroObject]:
return self.objects[-1] if self.objects else None
def get_session_name(self) -> str:
return f"AstroSession_{self.start_time.strftime('%Y-%m-%d')}"
def finish(self):
self.end_time = datetime.now()
def is_active(self) -> bool:
return self.end_time is None