Comments (6)
First note that Tuple[(int, ...)]
is no valid Python 2.7 code and pytypes assumes that type comments contain code that is compatible with the currently running interpreter (try to process test_type = Tuple[(int, ...)]
in ordinary Python 2.7 code). I thought this is in line with PEP 484, because they demand all imports and locals/globals (e.g. type variables) required by code in type comments. Type comments are like usual code, just in a special position.
That said, I would actually like this to work anyway. I'm thinking of some text-based preprocessing hack that allows this to work on Python 2.7. I cannot promise now that I will be able to come up with something totally reasonable. We'll see...
(So I will label this an enhancement rather than a bug...)
from pytypes.
What would be an equivalent of Tuple[(int, ...)]
in PYthon 2.7?
from pytypes.
I'm not sure. It might depend on the version of typing. From typing 3.5.3 onwards it might be
Tuple[(int, Ellipsis)]
Before that it might not be possible as a one-liner:
t = Tuple[(int,)]
t.__tuple_use_ellipsis__ = True
I did not yet find time to investigate this in more detail, so this answer is sort of preliminary. We will need some version-bridging utility method in pytypes for this. The old variant is still relevant as it's what is bundled with Python 3.5.
from pytypes.
Tuple[int, ...]
seems to work perfectly fine in Python 2.7. Is there a special need for Tuple[(int, ...)]
rather than Tuple[int, ...]
?
Note that _issubclass_Tuple
does not check regarding ellipsis case, but I am right now working to fix that, so ellipsis support for tuples should be available soon.
Given that Tuple[int, ...]
works, I suppose we can close this issue... Thoughts?
from pytypes.
Ellipsis support was established a while ago. Given that Tuple[int, ...]
syntax works fine I'll close this issue now. We can reopen if a good reason is presented. I'm also open to accept PRs that tweak the syntax parsing in typecomment_parser to support this. However, I consider it low priority at best...
from pytypes.
I also do not need it anymore. We move all our code to Python 3.
from pytypes.
Related Issues (20)
- Utility to validate stubfile signatures against .py implementations HOT 4
- pytypes is_of_type: counter-intuitive result on semi-primitive types like list and dict HOT 5
- is_of_type does not work as expected with Annotated[Generic[T], ...] HOT 1
- Some differences between Python 3.6 and 3.8 HOT 3
- New release HOT 1
- please improve error messages when functions decorated with @typechecked are called with incorrect types
- pytypes breaks @autoreload in a somewhat dangerous way HOT 8
- `is_subtype` fails with `List[TypeVar]`
- Infer return type of generic functions based on input
- Support Python 3.10 HOT 7
- @typechecked fails to correctly parse functions with PEP 3102
- Incorrect collections imports in type_util.py HOT 1
- VSCode incorrect decorated func hint HOT 7
- AttributeError: 'NoneType' object has no attribute '__bound__' HOT 5
- Partially-annotated functions with default parameter values result in errors. HOT 12
- Error in @typechecked with List[Dict[str, str]] HOT 1
- Remove backports.typing usage
- _check_caller_type can be broken by removing a blank line in typechecker_testhelper_py3.py
- typechecked(string) should have more consistent return type HOT 1
- Python 3.8 Compatibility HOT 1
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 pytypes.