pull/13212/merge
doe1080 2 weeks ago committed by GitHub
commit 616ec1af93
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -604,6 +604,7 @@ class TestUtil(unittest.TestCase):
self.assertEqual(str_to_int(523), 523)
self.assertEqual(str_to_int('noninteger'), None)
self.assertEqual(str_to_int([]), None)
self.assertEqual(str_to_int('123.456', dot_decimal=True), 123)
def test_url_basename(self):
self.assertEqual(url_basename('http://foo.de/'), '')

@ -2015,13 +2015,18 @@ def str_or_none(v, default=None):
return default if v is None else str(v)
def str_to_int(int_str):
def str_to_int(int_str, *, dot_decimal=False):
""" A more relaxed version of int_or_none """
if isinstance(int_str, int):
return int_str
elif isinstance(int_str, str):
int_str = re.sub(r'[,\.\+]', '', int_str)
return int_or_none(int_str)
if not isinstance(int_str, str):
return None
int_str = re.sub(r'[,+]', '', int_str)
if dot_decimal:
f = float_or_none(int_str)
return int(f) if f is not None else None
return int_or_none(int_str.replace('.', ''))
@partial_application

Loading…
Cancel
Save