python / mypy

Optional static typing for Python
https://www.mypy-lang.org/
Other
17.85k stars 2.74k forks source link

EncodingWarning when running under PyPy #17057

Open jaraco opened 3 months ago

jaraco commented 3 months ago

Bug Report

In this comment, I describe the warnings that I see when enabling mypy checks in PyPy.

To Reproduce

Grab jaraco/keyring@e9285df and run tox -e pypy (or tox -e pypy3 if pypy is aliased to Python 2). Note the tests run with PYTHONWARNDEFAULTENCODING=true.

Expected Behavior

There should be no warnings.

Actual Behavior

Warnings are emitted, three directly implicating mypy code and one implicated in configparser for mypy checks. I just ran the tests again and got even more warnings.

conftest.py::mypy
  /opt/homebrew/Cellar/pypy3.10/7.3.15/libexec/lib/pypy3.10/configparser.py:694: EncodingWarning: 'encoding' argument not specified.
    encoding = io.text_encoding(encoding)

conftest.py::mypy
  /Users/jaraco/code/jaraco/keyring/.tox/pypy/lib/pypy3.10/site-packages/mypy/modulefinder.py:851: EncodingWarning: 'encoding' argument not specified.
    with open(versions_path) as f:

conftest.py::mypy
  /Users/jaraco/code/jaraco/keyring/.tox/pypy/lib/pypy3.10/site-packages/mypy/metastore.py:108: EncodingWarning: 'encoding' argument not specified.
    with open(tmp_filename, "w") as f:

conftest.py::mypy
  /Users/jaraco/code/jaraco/keyring/.tox/pypy/lib/pypy3.10/site-packages/mypy/build.py:1187: EncodingWarning: 'encoding' argument not specified.
    with open(gitignore, "x") as f:

conftest.py::mypy
  /Users/jaraco/code/jaraco/keyring/.tox/pypy/lib/pypy3.10/site-packages/mypy/build.py:1201: EncodingWarning: 'encoding' argument not specified.
    with open(cachedir_tag, "x") as f:

conftest.py::mypy
  /Users/jaraco/code/jaraco/keyring/.tox/pypy/lib/pypy3.10/site-packages/mypy/build.py:3526: EncodingWarning: 'encoding' argument not specified.
    with open(fnam, "w") as f:

Your Environment

jaraco commented 3 months ago

I don't yet understand why these warnings are not emitted under CPython. Perhaps there is a filter configured that's failing to match in PyPy.