Running twine with PYTHONWARNINGS=error, DeprecationWarnings about missing keys indicate that twine.__uri__ is being set to None. author is also missing from package metadata.
This change iterates over Project-URLs looking for "Homepage", and parses the author and email from Author-Email. The email stdlib module is used for correctness; it is already imported by importlib_metadata, so this does not add to import time.
This seemed straightforward enough to create without a separate issue. Feel free to close if you disagree. If more discussion is needed, I can go back and create an issue.
Running twine with
PYTHONWARNINGS=error
, DeprecationWarnings about missing keys indicate thattwine.__uri__
is being set toNone
.author
is also missing from package metadata.This change iterates over Project-URLs looking for "Homepage", and parses the author and email from Author-Email. The email stdlib module is used for correctness; it is already imported by importlib_metadata, so this does not add to import time.