I’ll occassionaly take a look at the most popular PyPi packages to see what’s going on in the Python world in general. The top ten items are interesting:
- urllib3 has obvious appeal and widespread use due to the heavy use of Python in networked applications. Many other packages reference this as well.
- six isn’t something that I personally use, but there is a lot of Python 2 code out there and being able to bring it into Python 3 is a common use case.
- botocore makse sense given the popularity of AWS. botocore is used for almost every library that uses AWS.
- requests is one that I use quite a bit. It just makes dealing with web services super easy.
- setuptools is used by anyone who packages Python code for distribution (including me).
- python-dateutil makes datetime info easy to work with. A nice package.
- certifi provides Root Certificates. I’ve not used it directly, but it is essential for those who need to ensure the security of TLS connections. certify gets referenced by many other packages.
- idna is not one that I’m familiar with but speaks to the strong international flavor of Python users.
- s3transfer looks like an easy way to encapsulate the logic of S3 up and downloads. It’s built on botocore.
- chardet is interesting. It detects the encodings for files. Again, this speaks to the widespread use of Python.
pip at #12, wheel at #18 and pytest at #55 are things I download for almost every project. pip gets updated often, wheel is an essential for installation and pytest makes unit testing much more palatable. Of the top ten, my most used are urllib3 (indirectly), requests and setuptools.
Everyone uses Python in the way it works best for them so it’s not that surprising that my list doesn’t match up exactly with the most popular packages. The heavy use of AWS packages shows how far ahead in the cloud race they really are.