Around twenty stdlib modules, including json, io, inspect, and tarfile, still set __author__, __credits__ or __copyright__ attributes, mostly left over from when the modules were first added.
$ git grep -E "__(author|credits|copyright)__"
Lib/bz2.py:__author__ = "Nadeem Vawda <nadeem.vawda@gmail.com>"
Lib/concurrent/futures/__init__.py:__author__ = 'Brian Quinlan (brian@sweetapp.com)'
Lib/concurrent/futures/__init__.py: return __all__ + ['__author__', '__doc__']
Lib/concurrent/futures/_base.py:__author__ = 'Brian Quinlan (brian@sweetapp.com)'
Lib/concurrent/futures/process.py:__author__ = 'Brian Quinlan (brian@sweetapp.com)'
Lib/concurrent/futures/thread.py:__author__ = 'Brian Quinlan (brian@sweetapp.com)'
Lib/ctypes/_aix.py:__author__ = "Michael Felt <aixtools@felt.demon.nl>"
Lib/inspect.py:__author__ = ('Ka-Ping Yee <ping@lfw.org>',
Lib/io.py:__author__ = ("Guido van Rossum <guido@python.org>, "
Lib/json/__init__.py:__author__ = 'Bob Ippolito <bob@redivi.com>'
Lib/logging/__init__.py:__author__ = "Vinay Sajip <vinay_sajip@red-dove.com>"
Lib/optparse.py:__copyright__ = """
Lib/platform.py:__copyright__ = """
Lib/pydoc.py:__author__ = "Ka-Ping Yee <ping@lfw.org>"
Lib/pydoc.py:__credits__ = """Guido van Rossum, for an excellent programming language.
[...]
Lib/tarfile.py:__author__ = "Lars Gust\u00e4bel (lars@gustaebel.de)"
Lib/tarfile.py:__credits__ = "Gustavo Niemeyer, Niels Gust\u00e4bel, Richard Townsend."
[...]
Lib/tkinter/ttk.py:__author__ = "Guilherme Polo <ggpolo@gmail.com>"
Lib/tokenize.py:__author__ = 'Ka-Ping Yee <ping@lfw.org>'
Lib/tokenize.py:__credits__ = ('GvR, ESR, Tim Peters, Thomas Wouters, Fred Drake, '
Lib/uuid.py:__author__ = 'Ka-Ping Yee <ping@zesty.ca>'
[...]
Like the __version__ attributes we deprecated and scheduled for removal in python/cpython#76007, these are outdated and potentially misleading. They don’t reflect who has maintained the code since, and that history is already recorded in git. They can also suggest that a module belongs to one person rather than to the community, similar to why we removed author notes from the documentation in python/cpython#145002.
These concerns were also raised back in 2001, when the first such attributes were added, although they were ultimately kept. Python has grown quite a bit since then. inspect, for example, lists two people in __author__s, while many more people have worked on the module:
$ git shortlog -sn -- Lib/inspect.py | wc -l
125
I propose that we deprecate these attributes, as we did with __version__, using a module __getattr__, and remove them after the usual deprecation period. Copyright notices that are actually required for licensing could remain in the source as comments.
Are there any objections to this, or any modules where these attributes still serve a real purpose?