Repository: scrapinghub/number-parser

Issue:
Parsing for numbers with an apostrophe in Ukrainian does not work
number-parser-0.3.0 version. 

```
In [17]: parse("п'ять")
Out[17]: "п'ять"

In [18]: parse("п’ять")
Out[18]: 'п’ять'
```

Hints from issue comments:

Solution patch:
diff --git a/number_parser/data/uk.py b/number_parser/data/uk.py
index 7198298..27aa423 100644
--- a/number_parser/data/uk.py
+++ b/number_parser/data/uk.py
@@ -82,9 +82,14 @@
         "чотириста": 400,
         "п'ятсот": 500,
         "пʼятсот": 500,
+        "п'ятисот": 500,
+        "пʼятисот": 500,
+        "пятсот": 500,
+        "пятисот": 500,
         "шістсот": 600,
         "сімсот": 700,
         "вісімсот": 800,
+        "девятсот": 900,
         "дев'ятсот": 900,
         "девʼятсот": 900
     },
diff --git a/number_parser/parser.py b/number_parser/parser.py
index b6ecdb3..ca99aea 100644
--- a/number_parser/parser.py
+++ b/number_parser/parser.py
@@ -305,6 +305,10 @@ def parse_number(input_string, language=None):
 
     lang_data = LanguageData(language)
 
+    # Normalize the input string by removing apostrophes
+    input_string = input_string.replace("'", "")
+    input_string = input_string.replace("’", "")
+
     tokens = _tokenize(input_string, language)
     normalized_tokens = _normalize_tokens(tokens)
     for index, token in enumerate(normalized_tokens):
diff --git a/pytest.ini b/pytest.ini
index 766863b..193e87a 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -1,6 +1,6 @@
-[pytest]
-flake8-max-line-length = 119
-flake8-ignore =
+[flake8]
+max-line-length = 119
+ignore =
     # This rule goes against the PEP 8 recommended style and it's incompatible
     # with W504
     W503
@@ -9,7 +9,6 @@ flake8-ignore =
     # E501: Line too long
     number-parser/number_parser/data/* E501
 
-
     # Exclude files that are meant to provide top-level imports
     # F401: Module imported but unused
     number-parser/number_parser/__init__.py F401


Test patch:
diff --git a/tests/test_language_uk.py b/tests/test_language_uk.py
index da1fc9c..a1f8139 100644
--- a/tests/test_language_uk.py
+++ b/tests/test_language_uk.py
@@ -107,6 +107,25 @@
         ("ундецільйон", 1_000_000_000_000_000_000_000_000_000_000_000_000),
         ("дуодецільйон", 1_000_000_000_000_000_000_000_000_000_000_000_000_000),
         ("тредецільйон", 1_000_000_000_000_000_000_000_000_000_000_000_000_000_000),
+        # Test cases with apostrophe
+        ("п'ять", 5),
+        ("п’ять", 5),
+        ("п'ятдесят", 50),
+        ("п’ятдесят", 50),
+        ("п'ятисот", 500),
+        ("п’ятисот", 500),
+        ("п'ятнадцять", 15),
+        ("п’ятнадцять", 15),
+        ("п'ятдесят тисяч", 50_000),
+        ("п’ятдесят тисяч", 50_000),
+        ("дев'ять", 9),
+        ("дев’ять", 9),
+        ("дев'ятнадцять", 19),
+        ("дев’ятнадцять", 19),
+        ("дев'ятсот", 900),
+        ("дев’ятсот", 900),
+        ("дев'ятсот тисяч", 900_000),
+        ("дев’ятсот тисяч", 900_000),
     ],
 )
 def test_parse_number(expected, test_input):