Comments (2)
@TeamSpen210 well, it could, but such treatment should be consistent - either reject all or accept all.
from typing_extensions import Unpack
def foo() -> tuple[int, Unpack[tuple[str, ...]]]:
return 1, "bar", "baz"
def bar() -> tuple[int|str, ...]:
return 1, "bar", "baz"
a, b, c = foo() # E: Variadic tuple unpacking requires a star target [misc]
p, q, r = bar()
So "unpack tuple of int
followed by 0 or more str
" is bad, because "0 or more" may be not equal to 2. "Unpack tuple of 0 or more int | str
" is considered safe, however. Hmm?
from mypy.
The error would be correct, since based on the types it could produce an incorrect result. Maybe Mypy should require you to ignore the error, but assume the length is going to match when unpacking the tuple. Alternatively, more verbose code with an assertion works:
tup = foo()
assert len(tup) == 3
a, b, c = tup
from mypy.
Related Issues (20)
- (🐞) no error when can't able to infer type argument and becomes `Never`
- (🐞) `isinstance` doesn't work with unions containing `None` HOT 1
- Prime number sieve with generators example does not pass mypy HOT 2
- Plugin generated methods are reported with `explicit-override` error enabled
- False Negative when Enforcing Positional Arguments in regards to Protocols
- Infer type of `attrs.fields(type(attrs_instance))` HOT 1
- 1.10.1: pytest fails in
- Union can cause Iterator to require a return statement
- Metaclass defined class attribute raise "name-defined" error when used as a type
- Staticmethod's generated by closures are not recognized as being static
- Redefinition of function arguments can give unclear error message
- The implementation of TypeChecker.fail is incorrect
- mypy is unusable when using incomplete stubs on local source
- False positive on return type HOT 2
- Can JSON format output and command line parameter options for -- disable-error-code all be supported?
- [stubgen] infer_sig_from_docstring fails with python3.12 inline generic HOT 2
- Wrong type inference with "yield from" from an Iterator class HOT 1
- Cannot infer type argument with TypeVarTuple and Callback protocol HOT 4
- `OverflowError`s and `MemoryError`s in helper functions HOT 4
- using a decorator on an overloaded function where the decorator uses `Concatenate` causes false positive "Overloaded function implementation does not accept all possible arguments" error HOT 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 mypy.