So should the preprocessing step just be s.replace('_', ''), or should it reject underscores that don't follow the rules from the PEP (perhaps augmented so they follow the spirit of the PEP and the letter of the IBM spec)? Honestly I think it's also fine if specifying this exactly is left out of the PEP, and handled by whoever adds this to Decimal. Having a PEP to work from for the language spec and core builtins (int(), float() complex()) is more important. On Sat, Mar 19, 2016 at 10:24 AM, Stefan Krah <stefan@bytereef.org> wrote:
Guido van Rossum <guido <at> python.org> writes:
I don't care too much either way, but I think passing underscores to the constructor shouldn't be affected by the context -- the underscores are just removed before parsing the number. But if it's too complicated to implement I'm fine with punting.
Just removing the underscores would be fine. The problem is that per the PEP the conversion should happen according the Python float grammar but the actual decimal grammar is the one from the IBM specification.
I'd much rather express the problem like you did above: A preprocessing step followed by the IBM specification grammar.
Stefan Krah
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org
-- --Guido van Rossum (python.org/~guido)