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

1"""Plugin mixin for registering machine drivers.""" 

2 

3import structlog 

4 

5from machine.machine_type import BaseDriver, BaseMachineType 

6from plugin import PluginMixinEnum 

7 

8logger = structlog.get_logger('inventree') 

9 

10 

11class MachineDriverMixin: 

12 """Mixin class for registering machine driver types. 

13 

14 This mixin class can be used to register custom machine types or drivers. 

15 

16 get_machine_types: 

17 - Register a custom class of machine 

18 - Returns a list of BaseMachineType objects 

19 

20 get_machine_drivers: 

21 - Register custom machine drivers for existing machine types 

22 - Returns a list of BaseDriver objects 

23 """ 

24 

25 class MixinMeta: 

26 """Meta class for MachineDriverMixin.""" 

27 

28 MIXIN_NAME = 'MachineDriver' 

29 

30 def __init__(self): 

31 """Initialize the mixin and register it.""" 

32 super().__init__() 

33 self.add_mixin(PluginMixinEnum.MACHINE, True, __class__) 

34 

35 def get_machine_types(self) -> list[BaseMachineType]: 

36 """Register custom machine types.""" 

37 return [] 

38 

39 def get_machine_drivers(self) -> list[BaseDriver]: 

40 """Register custom machine drivers.""" 

41 return []