[Python-Dev] What should a good type checker do? (was: Please reject or postpone PEP 526) (original) (raw)
Random832 random832 at fastmail.com
Fri Sep 2 19:14:53 EDT 2016
- Previous message (by thread): [Python-Dev] What should a good type checker do? (was: Please reject or postpone PEP 526)
- Next message (by thread): [Python-Dev] [New-bugs-announce] [issue27948] f-strings: allow backslashes only in the string parts, not in the expression parts
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Sep 2, 2016, at 18:49, Koos Zevenhoven wrote:
Then again, (b) instead of that being working code, it might be an error and spam only takes float. No problem, the type checker will catch that.
There are very few functions that should only take float and not int.
On Fri, Sep 2, 2016 at 9:04 PM, Steven D'Aprano <steve at pearwood.info> wrote: > Maybe you think that it's okay because ints and floats are somewhat > compatible. But suppose I wrote: > > if cond: > x = HTTPServer(*args) > else: > x = 1.5
It might be clear by now, but no, that's not why I wrote that. That was just a slightly more "realistic" example than this HTTP & 1.5 one.
The other thing is... I'd kind of want it to infer Number in the first case.
And if I assign both a list and a generator expression to something, that should be Iterable[whatever] and maybe even whatever gets worked out for "proper iterable and not string or bytes or memoryview".
Certainly if you can return HTTPServer() or None it should infer Union[HTTPServer, None], otherwise spelled Optional[HTTPServer].
Maybe what we need is a "protoize"-alike that can run through a source file and produce a stub file with all its inferences, for manual inspection. So if you see something nonsensical like Union[HTTPServer, float] you can think "wait a minute, where's that coming from" and go look at the code.
- Previous message (by thread): [Python-Dev] What should a good type checker do? (was: Please reject or postpone PEP 526)
- Next message (by thread): [Python-Dev] [New-bugs-announce] [issue27948] f-strings: allow backslashes only in the string parts, not in the expression parts
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]