libb.parse_number

parse_number(s, force=True)[source]

Extract number from string.

Handles various formats including commas, parentheses for negatives, and trailing characters.

Parameters:
  • s (str) – String to parse.

  • force (bool) – If True, return None on parse failure; if False, return original string.

Returns:

Parsed int or float, None, or original string (if force=False).

Example:

>>> parse_number('1,200m')
1200
>>> parse_number('100.0')
100.0
>>> parse_number('100')
100
>>> parse_number('0.002k')
0.002
>>> parse_number('-1')
-1
>>> parse_number('(1)')
-1
>>> parse_number('-100.0')
-100.0
>>> parse_number('(100.)')
-100.0
>>> parse_number('')
>>> parse_number('foo')
>>> parse_number('foo', force=False)
'foo'