[Python-Dev] PEP 0484 - the Numeric Tower (original) (raw)
Oscar Benjamin oscar.j.benjamin at gmail.com
Wed Oct 14 18:49:33 EDT 2015
- Previous message (by thread): [Python-Dev] PEP 0484 - the Numeric Tower
- Next message (by thread): [Python-Dev] PEP 0484 - the Numeric Tower
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 14 Oct 2015 23:06, "Laura Creighton" <lac at openend.se> wrote:
In a message of Wed, 14 Oct 2015 21:21:30 -0000, Oscar Benjamin writes: >Generally if it's possible to interchange floats and decimals in your code >then there's probably no need for decimals in the first place. Yes, but, at least around here the common case is that you already have a pile of decimals (extracted from your leger) and now you want to do something with them (like graph them and make reports out of the graphs) with other people's graphing and report generating software.
The graphing library will almost certainly convert your data to float so I'd say this comes under the category of: you don't need decimals here.
>If mypy >requires you to do an explicit conversion to float then there may be some >seld-documenting merit in showing that conversion up front rather than >assuming that it's okay to insert decimals where they're not expected. The >point of static type checking is to detect precisely these kinds of errors.
The thing is that there is a very big split between code written as 'this is a float using function and decimal users very much have to avoid using it' and 'this thing works perfectly well for floats and decimals'. That code writers in the scientific python world mostly never think of Decimal users, doesn't mean they don't end up writing perfectly wonderful tools and libraries we use. :) thankfully :) I was looking for a way for the Python type hinting to be expressive enough to handle this common (at least in my world) case. So then, even if the bokeh developers (just to pick some friends) forget about me in their type annotations, I can just make a pull request, send it back with some corrected annotations and the note 'remember me!' :)
I'm sure the bokeh developers will be aware of the different ways that their library is used (at this level). If the input spec is "sequence of coercible to float" then I agree that they should use type annotations to match that rather than putting float and I imagine they would welcome your PR.
Guido's suggestion is not general enough for that though: what about Fraction, mpf, gmpy, numpy, sympy, h5py etc? The ABCs in the numeric tower are unused by 3rd party types making them useless for abstract type inference (IMO). AFAIK the lowest common denominator among number types in Python is the float special method. Does mypy have a way to require (a sequence of) that?
-- Oscar -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20151014/87348ed6/attachment.html>
- Previous message (by thread): [Python-Dev] PEP 0484 - the Numeric Tower
- Next message (by thread): [Python-Dev] PEP 0484 - the Numeric Tower
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]