I'm curious if there are important libraries that support only Python 3, since it appears that many libraries that do support it, also happen to support Python 2.
No, there is no such index, but you could create one from the classifier data on PyPI.
You could make a list of all packages that has "Programming Language :: Python :: 3" or Programming Language :: Python :: 3.0" or "Programming Language :: Python 3.1", but none of the Python 2 classifiers.
http://pypi.python.org/pypi?:action=browse&c=214
Possibly the XML interface can be useful:
http://wiki.python.org/moin/PyPiXmlRpc
It appears there isn't, so I wrote this (with some help):
#!/usr/bin/env python3
import xmlrpc.client
# PyPI classifiers for all Python 3 versions
PY3 = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.0",
"Programming Language :: Python :: 3.1",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
]
# PyPI classifiers for all Python 2 versions
PY2 = [
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.5",
"Programming Language :: Python :: 2.4",
"Programming Language :: Python :: 2.3",
]
def main():
client = xmlrpc.client.ServerProxy('http://pypi.python.org/pypi')
# name[0] is package name
# name[1] is package version
py3names = [
name[0] for classifier in PY3 for name in client.browse([classifier])
]
py2names = [
name[0] for classifier in PY2 for name in client.browse([classifier])
]
py3only = [name for name in py3names if name not in py2names]
template = "Python3-only packages: {} (of {})"
print(template.format(len(py3only), len(set(py2names + py3names))))
if __name__ == "__main__":
main()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With