Disallow where're too.
authorScott Gasch <[email protected]>
Thu, 3 Feb 2022 19:53:51 +0000 (11:53 -0800)
committerScott Gasch <[email protected]>
Thu, 3 Feb 2022 19:53:51 +0000 (11:53 -0800)
string_utils.py

index 1ed9b4ad10790685290838cd30a2322d59b1b373..bae59068b9063cece6fe401f649401e07efa138d 100644 (file)
@@ -1366,7 +1366,7 @@ def make_contractions(txt: str) -> str:
         ),
     ]
 
-    # Special cases
+    # Special cases: can't, shan't and won't.
     txt = re.sub(r'\b(can)\s*no(t)\b', r"\1'\2", txt, count=0, flags=re.IGNORECASE)
     txt = re.sub(
         r'\b(sha)ll\s*(n)o(t)\b', r"\1\2'\3", txt, count=0, flags=re.IGNORECASE
@@ -1378,8 +1378,9 @@ def make_contractions(txt: str) -> str:
     for first_list, second_list in first_second:
         for first in first_list:
             for second in second_list:
-                # Disallow there're.  It's valid English but sounds weird.
-                if first == 'there' and second == 'a(re)':
+                # Disallow there're/where're.  They're valid English
+                # but sound weird.
+                if (first == 'there' or first == 'where') and second == 'a(re)':
                     continue
 
                 pattern = fr'\b({first})\s+{second}\b'