Comments (7)
I can't reproduce this. Are you using a custom typeshed?
In any case, it looks like it's stumbling over a module-level or class-level constant in typeshed, that's declared as
x = False
instead of
x = ... # type: bool
.
I'll tweak my parser to allow this, unless we decide that we want to discourage this kind of shortcut.
(The backtrace might also be due to default parameters declared as x:bool = False
instead of x:bool = ...
. I'm in the process of fixing those in typeshed)
from pytype.
The typeshed module is exactly as determined by 'git submodule update' in
pytype.
My code uses import time
and typeshed/stdlib/2.7/time.pyi has this line:
accept2dyear = False
But replacing that with
accept2dyear = ... # type: bool
doesn't make a difference.
There are also several occurrences of ": bool = False" in typeshed.
I hope you can make your parser more lenient -- stubs are basically allowed
to contain arbitrary Python code. The common idioms are merely recommended
by the PEP.
(If you want to make the stub syntax significantly smaller we should
probably draw up a spec and rubber-stamp it as a PEP.)
from pytype.
Yeah, it's odd this doesn't happen on my machine! But since the root cause is identified, maybe it doesn't matter.
With regards to the syntax of optional parameters, I'm mostly concerned with a consistent coding style in typeshed. (Although I have to admit that I do miss the orthogonality of pytypedecl's pytd
. In comparison, pyi
feels like the wild west)
Long term, I want to load .pyi
in pytype the same way as .py
: Compile to bytecode and then interpret, with some preprocessing to get the type comments in there, too.
from pytype.
from pytype.
I have a fix. It's in (our internal) code review.
from pytype.
Fix pushed.
(Also, the reason I couldn't reproduce this on my machine is because I had TYPESHED_HOME in my environment. D'oh!)
from pytype.
from pytype.
Related Issues (20)
- An asynccontextmanager method breaks __init__ inference for attrs classes
- Verifying match pattern fails on destructuring dataclass type HOT 2
- Support PEP 742 (TypeIs) HOT 2
- Documentation: How can I make pytype notice .pyi stub files without merge-pyi-ing them? HOT 2
- [PY3.11 | Pytype 2024.02.13] Pattern matching fail when not specifying all enum values HOT 2
- false positive attribute error with dataclasses and metaclasses
- Support PEP 696 - Type Defaults for Type Parameters
- Might mock.MagicMock be given a type parameter? HOT 1
- exit() builtin has return type NoneType, but should have return type NoReturn
- False positive with Union of collections
- pytype.tools.annotate_ast.annotate_source crashes with RecursionError: maximum recursion depth exceeded in __instancecheck__
- pytype fails on files with names that have spaces in them
- Unsuported operands reported for type union operator despite future import HOT 3
- MacOS build wheels: missing Python versions on macos-latest
- Will this library not be updated in the future? HOT 3
- PyType does not support running in parallel? HOT 1
- RFC: Be more explicit on unreachable code HOT 6
- Question: Extracting Type information from pytype HOT 3
- Type constraints on `self` are not correctly checked HOT 1
- support networkx 3.3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pytype.