[Matplotlib-users] value "requires_dist" of Matplotlib sets to null

Hello,
When requested to https://pypi.org/pypi/matplotlib/json, the dictionary with the key “requires_dist” is set to null. But the page https://matplotlib.org/3.1.1/users/installing.html#dependencies has a list with dependencies.

I would be grateful if you correct this error or explain how to get package dependencies correctly without requests to json, I encountered this error because I got an task at the university with visualizing package dependencies. And when I query matplotlib, I get an empty graph, although there should be dependencies.

Thank you, Semyon Esaev

@Semyon: please join the mailing list https://mail.python.org/mailman/listinfo/matplotlib-users so you can post un-moderate.

This appears to be a long standing issue with setuptools / pypi [1]. Currently setuptools does not add the required meta-data to the sdist [2] which if we upload the sdist first sets the singular (and immutable) metadata from that artifact (which is missing 'requires_dist' ). The subsequently uploaded wheels carry their own meta-data which (I believe) is what the solver actually uses to ensure that the run-time dependencies ('install_requires' to setuptools) are installed.

I am not clear if this meta-data is used for anything or what the practical consequences of it being wrong are (other than messing up school projects). I was able to find a number of issues on github noting that the meta-data was missing, but no mention of any consequences.

I would suggest looking at the dependency graph extracted from one of the down-stream packagers (such as conda-forge, fedora, arch linux, debian, …). I expect those graphs to be more correct (within their set of build artifacts) and to also correctly capture the non-Python dependencies of Matplotlib.

Tom

[1] https://github.com/pypa/warehouse/issues/6231
[2] https://github.com/pypa/setuptools/issues/1805

···

Thomas Caswell
tcaswell@gmail.com