35 lines
No EOL
722 B
Python
35 lines
No EOL
722 B
Python
from dataclasses import dataclass
|
|
from typing import List, Optional
|
|
from enum import Enum
|
|
|
|
|
|
class EquipmentType(Enum):
|
|
LENS = "lens"
|
|
TELESCOPE = "telescope"
|
|
|
|
|
|
@dataclass
|
|
class Lens:
|
|
"""Объектив"""
|
|
name: str
|
|
min_aperture: float # например 1.8
|
|
max_aperture: float # например 22
|
|
focal_length: int # например 50
|
|
|
|
|
|
@dataclass
|
|
class Telescope:
|
|
"""Телескоп"""
|
|
name: str
|
|
aperture_ratio: float # f/5, f/7, f/10
|
|
focal_length: int # в мм
|
|
diameter: int # в мм
|
|
|
|
|
|
@dataclass
|
|
class Camera:
|
|
"""Камера"""
|
|
name: str
|
|
sensor_size: str # "APS-C", "Full Frame", "4/3"
|
|
pixel_size_um: float = 4.3
|
|
default_iso: int = 800 |