mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-10-15 20:07:23 +02:00
420bcd7aa0
* refactor detectors * move create_detector and DetectorTypeEnum * fixed code formatting * add detector model config models * fix detector unit tests * adjust SharedMemory size to largest detector model shape * fix detector model config defaults * enable auto-discovery of detectors * simplify config * simplify config changes further * update detectors docs; detect detector configs dynamic * add suggested changes * remove custom detector doc * fix grammar, adjust device defaults
36 lines
781 B
Python
36 lines
781 B
Python
import logging
|
|
import importlib
|
|
import pkgutil
|
|
from typing import Union
|
|
from typing_extensions import Annotated
|
|
from enum import Enum
|
|
from pydantic import Field
|
|
|
|
from . import plugins
|
|
from .detection_api import DetectionApi
|
|
from .detector_config import BaseDetectorConfig
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
plugin_modules = [
|
|
importlib.import_module(name)
|
|
for finder, name, ispkg in pkgutil.iter_modules(
|
|
plugins.__path__, plugins.__name__ + "."
|
|
)
|
|
]
|
|
|
|
api_types = {det.type_key: det for det in DetectionApi.__subclasses__()}
|
|
|
|
|
|
class StrEnum(str, Enum):
|
|
pass
|
|
|
|
|
|
DetectorTypeEnum = StrEnum("DetectorTypeEnum", {k: k for k in api_types})
|
|
|
|
DetectorConfig = Annotated[
|
|
Union[tuple(BaseDetectorConfig.__subclasses__())],
|
|
Field(discriminator="type"),
|
|
]
|