-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathgreeting.py
32 lines (24 loc) · 964 Bytes
/
greeting.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Copyright 2020 Pants project contributors.
# Licensed under the Apache License, Version 2.0 (see LICENSE).
from __future__ import annotations
import json
import random
import pkg_resources
from helloworld.translator.translator import LanguageTranslator
from helloworld.translator.foobar import baz
class Greeter:
def __init__(
self, *, translations: dict[str, dict[str, str]] | None = None
) -> None:
self._translations = (
translations
if translations is not None
else json.loads(
pkg_resources.resource_string(__name__, "translations.json")
)
)
self._translator = LanguageTranslator(self._translations)
def greet(self, name: str) -> str:
random_greeting = random.choice(list(self._translations.keys()))
greeting = self._translator.translate_to_random_language(random_greeting)
return f"{greeting}, {name}!".capitalize()