Coverage for src/backend/InvenTree/plugin/base/integration/MachineMixin.py: 86%
14 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
1"""Plugin mixin for registering machine drivers."""
3import structlog
5from machine.machine_type import BaseDriver, BaseMachineType
6from plugin import PluginMixinEnum
8logger = structlog.get_logger('inventree')
11class MachineDriverMixin:
12 """Mixin class for registering machine driver types.
14 This mixin class can be used to register custom machine types or drivers.
16 get_machine_types:
17 - Register a custom class of machine
18 - Returns a list of BaseMachineType objects
20 get_machine_drivers:
21 - Register custom machine drivers for existing machine types
22 - Returns a list of BaseDriver objects
23 """
25 class MixinMeta:
26 """Meta class for MachineDriverMixin."""
28 MIXIN_NAME = 'MachineDriver'
30 def __init__(self):
31 """Initialize the mixin and register it."""
32 super().__init__()
33 self.add_mixin(PluginMixinEnum.MACHINE, True, __class__)
35 def get_machine_types(self) -> list[BaseMachineType]:
36 """Register custom machine types."""
37 return []
39 def get_machine_drivers(self) -> list[BaseDriver]:
40 """Register custom machine drivers."""
41 return []