Add formatters, tests.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
class AbstractFormatter(ABC):
|
||||
@abstractmethod
|
||||
def format(self, obj) -> str:
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def format_all(self, objs) -> str:
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
from src.fmt.abstract_formatter import AbstractFormatter
|
||||
|
||||
class CityFormatter(AbstractFormatter):
|
||||
def format(self, city) -> str:
|
||||
name = city['name']
|
||||
return f"- {name}\n"
|
||||
|
||||
def format_all(self, cities: dict) -> str:
|
||||
formated_message = "Cities:\n\n"
|
||||
|
||||
for city in cities['data']:
|
||||
formated_item = self.format(city)
|
||||
formated_message += formated_item
|
||||
|
||||
return formated_message
|
||||
|
||||
Reference in New Issue
Block a user