| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This repo contains extracted setup_requires for every package on pypi, in the format
{
canonical_name: [setup_requirements, ...],
...
}
Last update: 2020-03-04
There's a bootstrapping problem because many packages specify something in setup_requires that's necessary to even run setup.py (for example, to import numpy.distutils without any guards).
If guarded with except ImportError: pass then you could use something like run_setup but this will not work for many packages.
{
"pkg1": ["setuptools", "??"],
"pkg2": ["??"],
}
This is used anywhere the structure was too complex to infer. It might not be the only value, and might stand for more than one value.
Concatenation, function calls, imports, etc are not currently handled. If you see a ?? it means a human should review.
I used opine.metadata (from tmp-setup-py-parsing branch), which uses libcst to walk the nodes in setup.py to find likely calls, and convert that to json.
Right now it only stores values that are defined in super-obvious ways. For conditionals, it generally choses the first one.
A future version may encode the cases that were true for conditionals, e.g. comparison with sys.version_info could turn into markers.
Short answer: I chose CC0
Longer answer:
I am not a lawyer. I think the list of requirements count as facts in the U.S., but at the same time aggregating metadata isn't specifically called out as a use in the pypi ToU.
I am happy to exclude individual projects if you object via github issue here.
| Back | FazBrowse Home | New Git URL |