"""Greeting construction: pure functions with no I/O, easy to test."""
import datetime
from .translations import TRANSLATIONS
DEFAULT_NAME = "friend"
def time_of_day_greeting(now=None):
"""Return a salutation that matches the local time of day."""
hour = (now or datetime.datetime.now()).hour
if 5 <= hour < 12:
return "Good morning"
if 12 <= hour < 18:
return "Good afternoon"
return "Good evening"
def greet(name=DEFAULT_NAME, shout=False, salutation=None, lang="en"):
"""Build a greeting such as "Hello, Ada!"."""
if salutation is None:
salutation = TRANSLATIONS.get(lang, TRANSLATIONS["en"])
message = f"{salutation}, {name}!"
return message.upper() if shout else message