On Fri, Aug 07, 2020 at 05:44:31PM -0400, Ricky Teachey wrote:

> Would it make good semantic sense- and be useful- to specify valid
> numerical ranges using slices and type-hint syntax? My suggestion would be
> to, at minimum, provide this functionality for int and float.

We know that syntactically we can write an annotation like `int[1:10]`, 
even if it is a runtime TypeError. The question would be to ask mypy, 
and maybe some of the other type checkers, whether they are capable of 
and interested in doing static bounds checking.

Unless they are interested in the feature, having ints support it would 
be a waste of time.

For compatibility with slicing and range(), we would surely want int 
ranges to be half open:

    int[1:100]  # 1-99 inclusive, 100 exclused

but for floats, half-open intervals are a real pain, as you suggest. How 
do I specify an upper bound of exactly math.pi, say? A runtime check is 
easy:

    x <= math.pi

but specifying it as an open interval requires me to know that 
3.1415926535897936 is the next float greater than math.pi.


-- 
Steven
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/MXB7642ZRGBPTW5RU5XRXUORTXAKUDDR/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to