to_passive_voice / modules /m_connector.py
nanom's picture
Improvements
0a0a388
raw
history blame contribute delete
No virus
1.74 kB
from typing import Tuple
from modules.m_active_voice import ActiveVoice
from modules.m_htmlrender import HtmlRender
from modules.m_datetime import Datetime
class Connector:
def __init__(
self
) -> None:
self.date = Datetime()
self.avoice = ActiveVoice()
self.html = HtmlRender()
self.cache_sentence = None
self.cache_html_format = None
self.cache_str_format = None
def view_conversion(
self,
active_sent: str,
passive_sent: str
) -> None:
print(f".goat: {self.date.full()} - '{active_sent}' -> '{passive_sent}'")
def active2passive(
self,
sentence: str
) -> Tuple[str,str]:
if sentence == self.cache_sentence:
return self.cache_html_format, self.cache_str_format
try:
data = self.avoice.to_passive(sentence)
except Exception as e:
return self.html.error(str(e)), str(e)
subj = self.html.budget(data['subj'], 'subject', 'primary')
tobe = self.html.budget(data['tobe'],'to be','warning')
participle = self.html.budget(data['participle'],'participle','danger')
agent = self.html.budget(data['agent'],'agent','success')
compl = self.html.budget(data['compl'],'compl.','dark')
self.cache_sentence = sentence
self.cache_str_format = f"{data['subj']} {data['tobe']} {data['participle']} {data['agent']} {data['compl']}"
self.cache_html_format = self.html.output(f"{subj} {tobe} {participle} {agent} {compl}")
self.view_conversion(self.cache_sentence, self.cache_str_format)
return self.cache_html_format, self.cache_str_format