"""Greeting messages for the command line clients."""
import os
import random
import sys
from datetime import datetime
from functools import partial
from typing import Sequence
from haddock import contact_us, version
international_good_byes = [
"Adéu-siau",
"Agur",
"Até logo",
"Au revoir",
"Ciao",
"Dovidenia",
"Good bye",
"Tot ziens",
]
[docs]def get_initial_greeting() -> str:
"""Create initial greeting message."""
now = datetime.now().replace(second=0, microsecond=0)
python_version = sys.version
message = (
f"""{os.linesep}"""
f"""##############################################{os.linesep}"""
f"""# #{os.linesep}"""
f"""# HADDOCK 3 #{os.linesep}"""
f"""# #{os.linesep}"""
f"""##############################################{os.linesep}"""
f"""{os.linesep}"""
f"""Starting HADDOCK {version} on {now}{os.linesep}"""
f"""{os.linesep}"""
f"""Python {python_version}{os.linesep}"""
)
return message
[docs]def get_greetings(options: Sequence[str],
how_many: int = 3,
sep: str = " ",
exclamation: str = "!") -> str:
"""Get greeting messages."""
n = how_many % len(options)
return sep.join(s + exclamation for s in random.sample(options, k=n))
[docs]def get_adieu() -> str:
"""Create end-run greeting message."""
end = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
bye = get_goodbye_greetings()
message = (f"Finished at {end}. {bye}")
return message
[docs]def get_goodbye_help() -> str:
"""Create good-bye message with help."""
end = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
bye = get_goodbye_greetings()
message = (
f"Finished at {end}. For any help contact us at {contact_us}. "
f"{bye}.")
return message
get_goodbye_greetings = partial(get_greetings, international_good_byes)