Repository navigation
stubtest: add tests - #8380
stubtest: add tests#8380
Conversation
27499cb to
5e1e846
Compare
|
Hmmmmm.... more mypyc issues. |
|
So without any success I tried a) replacing Maybe we need to change typeshed stubs? eg https://github.com/python/typeshed/blob/master/stdlib/2and3/builtins.pyi#L42 (update: couldn't get changing this and the return type of Is there an easy mypyc workaround? (Using |
|
Tried a couple things, gave up, came back and found the big off switch. Let me know if you know how to actually fix mypyc's complaints. |
JelleZijlstra
left a comment
There was a problem hiding this comment.
Thanks, this is great!
As for the mypyc issue, I don't have any special insight. Maybe casting to Any works, or maybe @msullivan knows what's going on.
|
Just took a look at the fresh mypyc errors (after adding stubtest to MYPYC_BLACKLIST). 3.5.1 and 3.7 have different failures. I can't repro the 3.5.1 one (but I'm using 3.5.9). So maybe not a mypyc issue? Scanned through changelog for py35, but nothing popped up. Maybe one of you would recognise it if it were a Python version issue. I'll investigate more later. The 3.7 one is a legitimate complaint. I abused |
|
I tried with 3.5.3 and couldn't repro either. Unfortunately, I can't get a working version of 3.5.2 or 3.5.1 (pyenv fails with ssl issues and manually built python runs into zlib issues). Do we still need to be specifically compatible with 3.5.1? https://github.com/python/mypy/blob/master/.travis.yml#L26 (line is from 2016) 3.5.1 is over four years old, and EOL for 3.5 is in seven months. Update: seems to work in travis using 3.5.3 as well, https://travis-ci.org/hauntsaninja/mypy/builds/647868830 |
See python#8380 for motivation
66ebb22 to
92d9030
Compare
|
Looks like virtualenv had a new release today that's broken various different parts of the build. I'll attempt to fix in another PR. |
Fixes some false negatives and a minor false positive. Makes the logic more readable and improve comments.
Dumb mistake causing false negatives, mainly seems to surface a lot of platform differences
To comply with project style
Doesn't make a difference to typeshed
This is nicer too
EAFP, since bytes and enums should work, and default value error messages can be more informative with literal types
92d9030 to
8fda109
Compare
|
Phew, all green now! |
| 'version.py', | ||
|
|
||
| # Written by someone who doesn't know how to deal with mypyc | ||
| 'stubtest.py', |
There was a problem hiding this comment.
Yeah, I never figured out how to get vars / dict to work. This is the big off switch I mentioned in #8380 (comment)
There was a problem hiding this comment.
Makes sense, I inferred from some of the changes since that you'd figured out a workaround. I merged this change now and hopefully we'll eventually find a way to remove the special-casing.
There was a problem hiding this comment.
The workarounds were for the bug in early Python 3.5s and a valid mypyc complaint from another module.
I’ll try Sully’s suggestion to see if we can remove stubtest from the blacklist.
|
Sorry, I had meant to double back on this and it slipped through the cracks. mypyc really needs to implement a system for overriding lies in typeshed (as discussed mypyc/mypyc#676). I think the workaround here would be to do If you want to follow-up with another attempt to get it to work, I'll review it quickly. But it isn't particularly critical. |
Following up from #8325
Test coverage is 91% from unit tests, and 97% if you count
StubtestIntegration.test_typeshed.