Make addon model abstract (#1768)

This commit is contained in:
Franck Nijhof 2020-06-02 12:08:03 +02:00 committed by GitHub
parent 9f7e0ecd55
commit ec43448163
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,5 @@
"""Init file for Supervisor add-ons."""
from abc import ABC, abstractmethod
from pathlib import Path
from typing import Any, Awaitable, Dict, List, Optional
@ -72,7 +73,7 @@ from .validate import RE_SERVICE, RE_VOLUME, schema_ui_options, validate_options
Data = Dict[str, Any]
class AddonModel(CoreSysAttributes):
class AddonModel(CoreSysAttributes, ABC):
"""Add-on Data layout."""
def __init__(self, coresys: CoreSys, slug: str):
@ -81,19 +82,19 @@ class AddonModel(CoreSysAttributes):
self.slug: str = slug
@property
@abstractmethod
def data(self) -> Data:
"""Return Add-on config/data."""
raise NotImplementedError()
"""Return add-on config/data."""
@property
@abstractmethod
def is_installed(self) -> bool:
"""Return True if an add-on is installed."""
raise NotImplementedError()
@property
@abstractmethod
def is_detached(self) -> bool:
"""Return True if add-on is detached."""
raise NotImplementedError()
@property
def available(self) -> bool: