Skip to content

Update how mock classes alias to Any#3182

Merged
JelleZijlstra merged 2 commits intopython:masterfrom
shannonzhu:patch-2
Aug 20, 2019
Merged

Update how mock classes alias to Any#3182
JelleZijlstra merged 2 commits intopython:masterfrom
shannonzhu:patch-2

Conversation

@shannonzhu
Copy link
Contributor

First, the z: Any situation looks like a bug or accidental feature to me.
This is definitely meant (and works) as a variable declaration; that it
also allows using z as a type seems wrong. I can't find any evidence in
PEP 484 that this was intended; in mypy it's likely the accidental result
of other design choices meant to shut up errors about Any.

Ideally these classes could be declared as empty class stubs, but since the comments suggest this isn't possible yet, let's update these to be type aliases to Any rather than global variables of type Any. This would avoid invalid type errors when the implementation of type checkers respect the intention that z: Any does not make z a valid type.

> First, the z: Any situation looks like a bug or accidental feature to me.
This is definitely meant (and works) as a variable declaration; that it
also allows using z as a type seems wrong. I can't find any evidence in
PEP 484 that this was intended; in mypy it's likely the accidental result
of other design choices meant to shut up errors about Any.

Ideally these classes could be declared as empty class stubs, but since the comments suggest this isn't possible yet, let's update these to be type aliases to Any rather than global variables of type Any. This would avoid invalid type errors when the implementation of type checkers respect the intention that `z: Any` does not make `z` a valid type.
@JelleZijlstra
Copy link
Member

You probably also need to change stdlib/3/unittest/mock.pyi.

@shannonzhu
Copy link
Contributor Author

Thanks for the catch! Anything else I can do to get this reviewed?

@JelleZijlstra JelleZijlstra merged commit 72010bc into python:master Aug 20, 2019
@JelleZijlstra
Copy link
Member

Oops I forgot about this, sorry for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants