Skip to content

Commit 5f680dc

Browse files
committed
-
1 parent 04d4a96 commit 5f680dc

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

source_py3/python_toolbox/misc_tools/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
is_magic_variable_name, get_actual_type, is_number, identity_function,
1010
do_nothing, OwnNameDiscoveringDescriptor, find_clear_place_on_circle,
1111
general_sum, general_product, is_legal_email_address, is_type, NonInstatiable,
12-
repeat_getattr, add_extension_if_plain, set_attributes, pocket
12+
repeat_getattr, add_extension_if_plain, set_attributes, pocket,
13+
decimal_number_from_string
1314
)
1415
from . import name_mangling
1516
from .proxy_property import ProxyProperty

source_py3/python_toolbox/misc_tools/misc_tools.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,4 +336,11 @@ def pocket(*args):
336336
(pocket.container.value,) = args
337337
else:
338338
return pocket.container.value
339-
339+
340+
341+
_decimal_number_pattern = \
342+
re.compile('''^-?(?:(?:[0-9]+(?:.[0-9]*)?)|(?:.[0-9]+))$''')
343+
def decimal_number_from_string(string):
344+
if not _decimal_number_pattern.match(string):
345+
raise Exception("%s isn't a decimal number." % string)
346+
return float(string) if '.' in string else int(string)

0 commit comments

Comments
 (0)