https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
Most of our configs in setup.py are declarative, and can be migrated to either pyproject.toml or setup.cfg.
setup.py is not recommended for new projects, we could migrate off of it as well before it is officially deprecated.
Might also be able to centralize the versioning using importlib: https://stackoverflow.com/a/75100875
Also look at __version__ in https://github.com/encode/httpx