[Python-ideas] Adding str.isascii() ?

INADA Naoki songofacandy at gmail.com
Fri Jan 26 03:42:31 EST 2018


Hi.

Currently, int(), str.isdigit(), str.isalnum(), etc... accepts
non-ASCII strings.

>>> s =  123"
>>> s
'123'
>>> s.isdigit()
True
>>> print(ascii(s))
'\uff11\uff12\uff13'
>>> int(s)
123

But sometimes, we want to accept only ascii string.  For example,
ipaddress module uses:

_DECIMAL_DIGITS = frozenset('0123456789')
...
if _DECIMAL_DIGITS.issuperset(str):

ref: https://github.com/python/cpython/blob/e76daebc0c8afa3981a4c5a8b54537f756e805de/Lib/ipaddress.py#L491-L494

If str has str.isascii() method, it can be simpler:

`if s.isascii() and s.isdigit():`

I want to add it in Python 3.7 if there are no opposite opinions.

Regrads,
-- 
INADA Naoki  <songofacandy at gmail.com>


More information about the Python-ideas mailing list