mirror of
https://github.com/wax911/plugin-architecture.git
synced 2025-07-21 12:31:03 +02:00
48 lines
780 B
Python
48 lines
780 B
Python
from dataclasses import dataclass
|
|
from typing import List, Optional
|
|
|
|
|
|
@dataclass
|
|
class PluginRunTimeOption(object):
|
|
main: str
|
|
tests: Optional[List[str]]
|
|
|
|
|
|
@dataclass
|
|
class DependencyModule:
|
|
name: str
|
|
version: str
|
|
|
|
def __str__(self) -> str:
|
|
return f'{self.name}=={self.version}'
|
|
|
|
|
|
@dataclass
|
|
class PluginConfig:
|
|
name: str
|
|
alias: str
|
|
creator: str
|
|
runtime: PluginRunTimeOption
|
|
repository: str
|
|
description: str
|
|
version: str
|
|
requirements: Optional[List[DependencyModule]]
|
|
|
|
|
|
@dataclass
|
|
class Meta:
|
|
name: str
|
|
description: str
|
|
version: str
|
|
|
|
def __str__(self) -> str:
|
|
return f'{self.name}: {self.version}'
|
|
|
|
|
|
@dataclass
|
|
class Device:
|
|
name: str
|
|
firmware: int
|
|
protocol: str
|
|
errors: List[int]
|