Skip to content

Update mypy roadmap #3970

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 18, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 13 additions & 14 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,16 @@ core team member that nobody else is working on the same thing.
on, and everything is subject to change. Near-term plans are likely
more accurate.

## July-December 2017
## September-December 2017

- Fix remaining highest-priority TypedDict issues and make TypedDict
an officially supported mypy feature.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When it is planned to move TypedDict to typing? There are still some bugs with TypedDict, but it seems to be "feature complete".

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you want this in Python 3.7 there should be a PEP (since it is a significant feature). But I think it's better to keep it in typing_extensions, so we can iterate on the feature more quickly. E.g. maybe we end up needing per-field flags for totality.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I think it's better to keep it in typing_extensions

It is currently only in mypy_extensions (as well as extended Callable arguments). Maybe it actually makes sense to move these to typing_extensions?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably debate that on the typing tracker. The difference between the two is that things in mypy_extensions can be unilaterally added or changed by the mypy team, and may forever remain mypy-specific, while things in typing_extensions need to be debated with the other projects using PEP 484 (e.g. PyCharm and pytype) and must be intended for eventual inclusion in typing.py.


- Document basic properties of all type operations used within mypy,
including compatibility, proper subtyping, joins and meets.
([issue](https://github.com/python/mypy/issues/3454))
- Add support for protocols and structural subtyping (PEP 544).

- Continue making error messages more useful and informative.
([issue](https://github.com/python/mypy/labels/topic-usability))

- Resolve [#2008](https://github.com/python/mypy/issues/2008) (we are
converging on approach 4).

- Invest some effort into systematically filling in missing
annotations and stubs in typeshed, with focus on features heavily
used at Dropbox. Better support for ORMs will be a separate
project.

- Add support for protocols and structural subtyping (PEP 544).

- Switch completely to pytest and remove the custom testing framework.
([issue](https://github.com/python/mypy/issues/1673))

Expand All @@ -43,11 +31,22 @@ more accurate.
fine-grained incremental type checking, built on top the daemon
mode.

- Document basic properties of all type operations used within mypy,
including compatibility, proper subtyping, joins and meets.
([issue](https://github.com/python/mypy/issues/3454))

## 2018

- Refactor and simplify specific tricky parts of mypy internals, such
as the [conditional type binder](https://github.com/python/mypy/issues/3457),
[symbol tables](https://github.com/python/mypy/issues/3458) or
the various [semantic analysis passes](https://github.com/python/mypy/issues/3459).

- Invest some effort into systematically filling in missing
annotations and stubs in typeshed, with focus on features heavily
used at Dropbox. Better support for ORMs will be a separate
project.

- Make the mypy plugin architecture more general and officially
supported. It should be able to support some typical ORM features at
least, such as metaclasses that add methods with automatically
Expand Down