#!/usr/bin/python3 from abc import ABC, abstractmethod from typing import List import random class AbstractPhrasePart(ABC): def __str__(self): return f"{self._prefix()} {random.choice(self._phrases())}" @staticmethod @abstractmethod def _prefix() -> str: ... @staticmethod @abstractmethod def _phrases() -> List[str]: ... class Accosts(AbstractPhrasePart): @staticmethod def _prefix() -> str: return 'коллеги' @staticmethod def _phrases() -> List[str]: return [ 'всем привет', 'привет', 'доброго утра', 'меня слышно? Супер', 'привет всем еще раз', ] class Before(AbstractPhrasePart): @staticmethod def _prefix() -> str: return 'вчера' @staticmethod def _phrases() -> List[str]: return [ 'занимался целью спринта', 'хотел закончить задачку, но не вышло', 'взял новую задачу, начал делать', 'занимался задачами комьюнити', 'довольно много всего было, и еще не до конца все готово', ] class After(AbstractPhrasePart): @staticmethod def _prefix() -> str: return 'а сегодня' @staticmethod def _phrases() -> List[str]: return [ 'еще пару вещей надо доедлать по этой активности', 'нужно еще раз посмотреть итогово, и тогда все будет готово', 'прилетела одна срочная задачка, поэтому займусь ей', 'нужно будет выпасть на пару часов к врачу, не теряйте', 'встреча с другой командой, есть вопросики по теме', ] class Conclusion(AbstractPhrasePart): @staticmethod def _prefix() -> str: return 'на этом все' @staticmethod def _phrases() -> List[str]: return [ 'спасибо', 'передаю слово дальше', 'подхватывайте', 'кто еще не говорил', 'если вопросы есть - пишите, дальше кто там?', ] def main(): print(f"{Accosts()}, {Before()}, {After()}, {Conclusion()}".capitalize()) if __name__ == "__main__": main()