You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
AttributeError: module 'email.errors' has no attribute 'InvalidHeaderError'. #93010
This was added in 97f43c0 by @bitdancer pretty much some 10 years ago, and I don't think it ever worked (but nor could I find anyone running into this so far): The git history doesn't know anything about an email.errors.InvalidHeaderError.
Found via Hypothesis while testing my own parsing code - cc @Zac-HD if you want to see another instance of "the curse of hypothesis" 😉
Your environment
CPython versions tested on: 3.7.13, 3.8.13, 3.9.13, 3.10.4, 3.11.0b1
Operating system and architecture: Archlinux, x86_64
On a meta-level though this suggests that CPython could really benefit from adopting some static analysis tooling and/or coverage requirements which are table stakes for any critical project... maybe I can argue for that instead of PBT at the next summit 😅
Reacted by Freya Bruhin, Thomas Grainger, Jürgen Gmach and Erlend E. Aasland
On a meta-level though this suggests that CPython could really benefit from adopting some static analysis tooling and/or coverage requirements which are table stakes for any critical project... maybe I can argue for that instead of PBT at the next summit
Agreed! FWIW I tried to run flake8 with a lot of ignored errors and manual processing, and I believe I now have another handful of bugs/PRs to report... 😅
Lib/_pyio.py:2165:28: F821 undefined name 'locale'
Lib/enum.py:1643:28: F821 undefined name 'cls_name'
Lib/test/test_shutil.py:1597:78: F821 undefined name 'x'
Lib/test/test_shutil.py:1599:78: F821 undefined name 'x'
Lib/test/test_shutil.py:1602:48: F821 undefined name 'x'
Lib/test/test_urllib2net.py:60:23: F821 undefined name 'ResourceDenied'
Lib/test/test_importlib/test_threaded_import.py:275:5: F821 undefined name 'unittets'
Lib/test/test_sqlite3/test_dbapi.py:312:13: F821 undefined name 'const'
Lib/test/test_sqlite3/test_dbapi.py:646:39: F821 undefined name 'size'
Lib/enum.py:483:30: F523 '...'.format(...) has unused arguments at position(s): 0
Lib/test/test_concurrent_futures.py:480:47: F522 '...'.format(...) has unused named argument(s): executor_type
Lib/encodings/mac_arabic.py:474:5: F601 dictionary key 32 repeated with different values
[...]
Lib/encodings/mac_arabic.py:593:5: F601 dictionary key 125 repeated with different values
Lib/test/test_mailbox.py:2265:5: F601 dictionary key 'Delivered-To' repeated with different values
Lib/test/test_mailbox.py:2266:5: F601 dictionary key 'Received' repeated with different values
[...]
For anyone curious about the result of running flake8 and taking a closer look at the result: I spent hours today reporting 9 more similar bugs, see them linked above. Decided to not report the encodings.mac_arabic one despite it probably being a genuine issue too - it was added in 2005, seems to be autogenerated, and hasn't seen any significant changes since then. Given how irrelevant it probably is today, I'm guessing nobody will care (and that's probably okay too!).
Activity
warsaw commentedon May 20, 2022
Oh wow, nice find.
Zac-HD commentedon May 20, 2022
Nice find!
On a meta-level though this suggests that CPython could really benefit from adopting some static analysis tooling and/or coverage requirements which are table stakes for any critical project... maybe I can argue for that instead of PBT at the next summit 😅
The-Compiler commentedon May 20, 2022
Agreed! FWIW I tried to run flake8 with a lot of ignored errors and manual processing, and I believe I now have another handful of bugs/PRs to report... 😅
The-Compiler commentedon May 23, 2022
For anyone curious about the result of running
flake8and taking a closer look at the result: I spent hours today reporting 9 more similar bugs, see them linked above. Decided to not report theencodings.mac_arabicone despite it probably being a genuine issue too - it was added in 2005, seems to be autogenerated, and hasn't seen any significant changes since then. Given how irrelevant it probably is today, I'm guessing nobody will care (and that's probably okay too!).gh-93010: InvalidHeaderError used but nonexistent (#93015)
pythongh-93010: InvalidHeaderError used but nonexistent (pythonGH-93015)
pythongh-93010: InvalidHeaderError used but nonexistent (pythonGH-93015)
warsaw commentedon May 23, 2022
@The-Compiler Thanks for the above reports. This issue is now fix, thus closing.
gh-93010: InvalidHeaderError used but nonexistent (GH-93015)
gh-93010: InvalidHeaderError used but nonexistent (GH-93015)
Update content-disposition parsing workaround
Update content-disposition parsing workaround
Fix coverage pragmas for Content-Disposition parsing