Our love for Python is no secret. But with so many modules, tools, and libraries, it can be overwhelming for beginning developers to identify the most useful. Obviously, our favorite framework is Django. But we’re setting aside our undying love for that framework for a moment to offer a list of other helpful Python libraries. From those offering standard solutions to everyday programming problems, to ones that hold a special place in the heart of the dev who created them, these are some of our developer’s favorite tools for Python development.
coverage.py measures code coverage for Python programs. Tests are important, but too often overlooked. Coverage gives you a way to create a benchmark for how much of a project’s code you’re testing and for improving from there.
straight.plugin is the most widely used open source project Calvin has written, so he’s proud to see it pop up in the wild now and then. It provides a type of plugin a developer can create from almost any existing Python module as well as an easy way for outside developers to add functionality and customization to projects with their own plugins.
Requests is an HTTP library for Python. It makes it very simple to interact with APIs and crawl pages.
BeautifulSoup pulls data out of HTML and XML files. It enables a parser to provide Pythonic idioms for iterating, searching, and modifying a parse tree. Victor loves it for how it allows him to manipulate the Document Object Model tree in amazing ways when needed.
Mock is a library for testing and mocking Python code which was recently incorporated into the standard library in Python 3.3, so if you’re using python 3.3 or newer, you can use it right off the bat. It seems all the Cakti value rigorous testing.
flake8 is a wrapper around pyflakes and pep8. It carries an additional feature for detecting overly complex code. As writers of clean, simple code, the Cakti love it!
NumPy is the main scientific library in Python, offering comparable functionality to MATLAB. A number of other science or data related Python libraries make use of it, such as SciPy, Pandas, and scikit-learn. Numpy provides multi-dimensional arrays and fast operators and routines for manipulating these arrays.
pandasis a data analysis and manipulation library for Python. It offers flexible slicing and filtering as well as merging and reshaping of data.
matplotlib is a plotting library that generates beautiful plots and visualizations like histograms and various other charts and graphs. This, combined with the two libraries above in IPython Notebook (aka Jupyter), provide the user with a powerful and easy to use set of data analysis tools."
ipdb exports functions to access the IPython debugger. Rebecca prefers ipdb over pdb because it gives you tab completion and object introspection.
Rebecca also loved working with Markovify to build the TayTay Lyric Generator for one of our Caktus ShipIt Days. A simple, extensible Markov chain generator, Markovify completes Markov chain mathematics in a transparent way, enabling the user to learn how the math works by simply looking at the source code for the library.