restructure
This commit is contained in:
@@ -2,4 +2,4 @@ from .eggs import Eggs
|
||||
from .ham import Ham
|
||||
from .spam import Spam
|
||||
|
||||
__all__ = ["Eggs", "Ham", "Spam"]
|
||||
__all__ = ['Eggs', 'Ham', 'Spam']
|
||||
|
||||
6
conf/apps/food-repo/src/food/base.py
Normal file
6
conf/apps/food-repo/src/food/base.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
@dataclass
|
||||
class FoodItem:
|
||||
taste: str
|
||||
@@ -1,6 +1,8 @@
|
||||
from appdaemon.adapi import ADAPI
|
||||
from dataclasses import dataclass
|
||||
|
||||
from .base import FoodItem
|
||||
|
||||
|
||||
class Eggs(ADAPI):
|
||||
def initialize(self):
|
||||
self.log(f"{self.__class__.__name__} Initialized")
|
||||
@dataclass
|
||||
class Eggs(FoodItem):
|
||||
taste: str = 'good'
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
from appdaemon.adapi import ADAPI
|
||||
from dataclasses import dataclass
|
||||
|
||||
from .base import FoodItem
|
||||
|
||||
|
||||
class Ham(ADAPI):
|
||||
def initialize(self):
|
||||
self.log(f"{self.__class__.__name__} Initialized")
|
||||
@dataclass
|
||||
class Ham(FoodItem):
|
||||
taste: str = 'good'
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
from dataclasses import dataclass, field
|
||||
from typing import List
|
||||
|
||||
from appdaemon.adapi import ADAPI
|
||||
|
||||
from .base import FoodItem
|
||||
from .eggs import Eggs
|
||||
from .ham import Ham
|
||||
|
||||
@@ -13,7 +12,7 @@ class GreenEggs(Eggs):
|
||||
|
||||
@dataclass
|
||||
class Menu:
|
||||
dishes: List[ADAPI] = field(init=False)
|
||||
dishes: List[FoodItem] = field(init=False)
|
||||
|
||||
def __post_init__(self):
|
||||
self.dishes = [GreenEggs, Ham]
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
from appdaemon.adapi import ADAPI
|
||||
from dataclasses import dataclass
|
||||
|
||||
from .base import FoodItem
|
||||
|
||||
|
||||
class Spam(ADAPI):
|
||||
def initialize(self):
|
||||
self.log(f"{self.__class__.__name__} Initialized")
|
||||
@dataclass
|
||||
class Spam(FoodItem):
|
||||
taste: str = 'bad'
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
from appdaemon.adapi import ADAPI
|
||||
from food.menu import Menu
|
||||
|
||||
|
||||
@dataclass(init=False)
|
||||
class Restaurant(ADAPI):
|
||||
menu: Menu = field(default=Menu)
|
||||
menu: Menu
|
||||
|
||||
def initialize(self):
|
||||
self.log(f'{self.__class__.__name__} initialized')
|
||||
|
||||
log_str = ', '.join(f'{d.name}' for d in self.menu.dishes)
|
||||
self.menu = Menu()
|
||||
log_str = ', '.join(f'{d.__class__.__name__} [{d.taste}]' for d in self.menu.dishes)
|
||||
|
||||
self.log(f'Menu: {log_str}')
|
||||
Reference in New Issue
Block a user