restructure

This commit is contained in:
John Lancaster
2024-08-12 22:51:43 -05:00
parent 4729bc2520
commit 4f00f2e384
9 changed files with 32 additions and 23 deletions

View File

@@ -2,4 +2,4 @@ from .eggs import Eggs
from .ham import Ham
from .spam import Spam
__all__ = ["Eggs", "Ham", "Spam"]
__all__ = ['Eggs', 'Ham', 'Spam']

View File

@@ -0,0 +1,6 @@
from dataclasses import dataclass
@dataclass
class FoodItem:
taste: str

View File

@@ -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'

View File

@@ -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'

View File

@@ -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]

View File

@@ -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'

View File

@@ -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}')