Small improvements in wrvalidators.py.
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Mon, 25 Jan 2021 23:13:31 +0000 (00:13 +0100)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Mon, 25 Jan 2021 23:13:31 +0000 (00:13 +0100)
wrpylib/wrvalidators.py

index 624133243b5ad92f9ffc579e726af712ebe6eb46..a4fbdbf578ff3e142060f2d9499d9de37b3239fe 100644 (file)
@@ -11,6 +11,7 @@ import email.headerregistry
 import urllib.parse
 import re
 from collections import OrderedDict, namedtuple
+from email.errors import HeaderParseError
 
 import mwparserfromhell  # https://github.com/earwig/mwparserfromhell
 
@@ -359,7 +360,7 @@ def wikipage_from_str(value):
     An empty string is an error.
     '[[Birgitzer Alm]]' => '[[Birgitzer Alm]]'
     """
-    if re.match(r'\[\[[^\[\]]+\]\]$', value) is None:
+    if re.match(r'\[\[[^\[\]]+]]$', value) is None:
         raise ValueError('No valid wiki page name "{}"'.format(value))
     return value
 
@@ -392,7 +393,7 @@ def email_from_str(value):
     """Takes an email address like 'office@example.com', checks it for correctness and returns it again as string."""
     try:
         email.headerregistry.Address(addr_spec=value)
-    except email.errors.HeaderParseError as e:
+    except HeaderParseError as e:
         raise ValueError('Invalid email address: {}'.format(value), e)
     return value
 
@@ -469,15 +470,15 @@ LonLat = namedtuple('LonLat', ['lon', 'lat'])
 lonlat_none = LonLat(None, None)
 
 
-def lonlat_from_str(value):
-    """Converts a winterrodeln geo string like '47.076207 N 11.453553 E' (being '<latitude> N <longitude> E'
-    to the LonLat(lon, lat) named  tupel."""
-    r = re.match('(\d+\.\d+) N (\d+\.\d+) E', value)
+def lonlat_from_str(value: str) -> LonLat:
+    """Converts a Winterrodeln geo string like '47.076207 N 11.453553 E' (being '<latitude> N <longitude> E'
+    to the LonLat(lon, lat) named  tuple."""
+    r = re.match(r'(\d+\.\d+) N (\d+\.\d+) E', value)
     if r is None: raise ValueError("Coordinates '{}' have not a format like '47.076207 N 11.453553 E'".format(value))
     return LonLat(float(r.groups()[1]), float(r.groups()[0]))
 
 
-def lonlat_to_str(value):
+def lonlat_to_str(value: LonLat) -> str:
     return '{:.6f} N {:.6f} E'.format(value.lat, value.lon)