From d967b8c44ed6da587d6fa15d92a08e177050da81 Mon Sep 17 00:00:00 2001 From: kmein Date: Thu, 17 May 2018 10:02:24 +0200 Subject: [PATCH] Improve type checking: Make Url newtype --- rilke.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rilke.py b/rilke.py index 3b5c95a..d7a87df 100644 --- a/rilke.py +++ b/rilke.py @@ -3,25 +3,25 @@ from enum import Enum from bs4 import BeautifulSoup import re import requests -from typing import Iterator +from typing import Iterator, NewType class Language(Enum): EN = "en" DE = "de" DEFAULT_LANG = Language.DE -Url = str +Url = NewType("Url", str) def cook_soup(url: Url) -> BeautifulSoup: return BeautifulSoup(requests.get(url).text, "lxml") -def base_url(lang: Language = DEFAULT_LANG) -> str: - return "https://{}.wiktionary.org".format(lang.value) +def base_url(lang: Language = DEFAULT_LANG) -> Url: + return Url("https://{}.wiktionary.org".format(lang.value)) -def entry_url(word: Url, lang: Language = DEFAULT_LANG) -> str: - return base_url(lang) + "/wiki/" + word +def entry_url(word: str, lang: Language = DEFAULT_LANG) -> Url: + return Url(base_url(lang) + "/wiki/" + word) -def rhymes_url(entry_url: Url, lang: Language = DEFAULT_LANG) -> str: +def rhymes_url(entry_url: Url, lang: Language = DEFAULT_LANG) -> Url: soup = cook_soup(entry_url) result_url = base_url(lang) try: