Skip to content

Ignore type errors introduced by mypy 0.920#4191

Merged
AnOctopus merged 1 commit intostreamlit:developfrom
AnOctopus:fix/mypy-920
Dec 16, 2021
Merged

Ignore type errors introduced by mypy 0.920#4191
AnOctopus merged 1 commit intostreamlit:developfrom
AnOctopus:fix/mypy-920

Conversation

@AnOctopus
Copy link
Copy Markdown
Contributor

@AnOctopus AnOctopus commented Dec 16, 2021

Previously, these functions returning sets was considered valid by mypy
and the python docs, but now they are expected to be actual view
objects. Unfortunately the constructors for the view objects assume your
class is a dumb wrapper around a dict, and so don't work correctly with
WStates for items/values (because it relies on you calling
__getitem__), and also don't work well with SessionState merging and
key translating several dicts. So we will mostly ignore this, except for
keys view for WStates, which should work fine as a KeysView.

Previously, these functions returning sets was considered valid by mypy
and the python docs, but now they are expected to be actual view
objects. Unfortunately the constructors for the view objects assume your
class is a dumb wrapper around a dict, and so don't work correctly with
`WStates` for items/values (because it relies on you calling
`__getitem__`), and also don't work well with `SessionState` merging and
key translating several dicts. So we will mostly ignore this, except for
keys view for `WStates`, which should work fine as a `KeysView`.
Copy link
Copy Markdown
Contributor

@tconkling tconkling left a comment

Choose a reason for hiding this comment

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

Looks good - can you add an inline TODO comment to the class, or one of the type-ignored functions, explaining why we're doing this and what needs to be done to fix it?

(Wherever we suppress a warning in the code, we should be documenting why we're doing it, and what needs to happen in the future to remove the suppression.)

@AnOctopus AnOctopus merged commit 8ce68a1 into streamlit:develop Dec 16, 2021
kmcgrady pushed a commit that referenced this pull request Dec 16, 2021
Previously, these functions returning sets was considered valid by mypy
and the python docs, but now they are expected to be actual view
objects. Unfortunately the constructors for the view objects assume your
class is a dumb wrapper around a dict, and so don't work correctly with
`WStates` for items/values (because it relies on you calling
`__getitem__`), and also don't work well with `SessionState` merging and
key translating several dicts. So we will mostly ignore this, except for
keys view for `WStates`, which should work fine as a `KeysView`.
tconkling added a commit to tconkling/streamlit that referenced this pull request Dec 20, 2021
* develop:
  Update error message for redacted exception (streamlit#4200)
  Release 1.3.0 (streamlit#4192)
  Wait for enough elements to load in flaky e2e tests (streamlit#4193)
  Ignore type errors introduced by mypy 0.920 (streamlit#4191)
  Change st.plotly docstring to fix docs rendering (streamlit#4182)
  Fix recursion error in repr method of report thread (streamlit#4176)
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