10 Interesting Tools for Python Programming
Python, like most other programming languages, has strong third-party support in the form of various tools. A tool is any utility that enhances the natural capabilities of Python when building an application. So, a debugger is considered a tool because it’s a utility, but a library isn’t.
Track bugs with Roundup Issue Tracker
Public sites are generally not as convenient to use as your own specific, localized bug-tracking software. You can use a number of tracking systems on your local drive, but Roundup Issue Tracker is one of the better offerings. Roundup should work on any platform that supports Python, and it offers these basic features:
TODO list management
If you’re willing to put a little more work into the installation, you can get additional features. However, to get them, you may need to install other products, such as a DataBase Management System (DBMS). After you make the additional installations, you get these upgraded features:
Customer help-desk support with the following features:
Wizard for the phone answerers
System and development issue trackers
Issue management for Internet Engineering Task Force (IETF) working groups
Sales lead tracking
Conference paper submission
Double-blind referee management
Create a virtual environment using VirtualEnv
VirtualEnv provides the means to create a virtual Python environment that you can use for the early testing process or to diagnose issues that could occur because of the environment. There are at least three standard levels of testing that you need to perform:
Install your application using PyInstaller
You need a surefire method of getting an application from your system to the user’s system. Installers, such as PyInstaller, do just that. They make a nice package out of your application that the user can easily install.
Fortunately, PyInstaller works on all the platforms that Python supports, so you need just the one tool to meet every installation need you have. In addition, you can get platform-specific support when needed. In many cases, avoiding the platform-specific features is best unless you really do need them. When you use a platform-specific feature, the installation will succeed only on the target platform.
Build developer documentation using pdoc
The majority of your documentation is likely to affect developers, and pdoc is a simple solution for creating it.
The pdoc utility relies on the documentation that you place in your code in the form of docstrings and comments. The output is in the form of a text file or an HTML document. You can also have pdoc run in a way that provides output through a web server so that people can see the documentation directly in a browser.
Develop application code using Komodo Edit
One of the better general-purpose IDEs for novice developers is Komodo Edit. You can obtain this IDE free, and it includes a wealth of features that will make your coding experience much better than what you’ll get from IDLE. Here are some of those features:
Support for multiple programming languages
Automatic completion of keywords
Project support so that applications are partially coded before you even begin
When you start to find that your needs are no longer met by Komodo Edit, you can upgrade to Komodo IDE, which includes a lot of professional level support features, such as code profiling and a database explorer.
Debug your application using pydbgr
When your editor doesn’t include a debugger, you need an external debugger such as pydbgr.
Here are some of the standard and nonstandard features that make pydbgr a good choice when your editor doesn’t come with a debugger:
Thorough byte-code inspection
Event filtering and tracing
Enter an interactive environment using IPython
Using a more advanced shell, such as IPython, can make the interactive environment friendlier by providing GUI features so that you don’t have to remember the syntax for odd commands.
One of the more exciting features of IPython is the ability to work in parallel computing environments. Normally a shell is single threaded, which means that you can’t perform any sort of parallel computing. In fact, you can’t even create a multithreaded environment. This feature alone makes IPython worthy of a trial.
Test Python applications using PyUnit
At some point, you need to test your applications to ensure that they work as instructed. Products such as PyUnit make unit testing significantly easier.
The nice part of this product is that you actually create Python code to perform the testing. Your script is simply another, specialized, application that tests the main application for problems.
Tidy your code using Isort
In some situations, it becomes difficult, if not impossible, to figure out what’s going on with your code when it isn’t kept neat. The Isort utility performs the seemingly small task of sorting your import statements and ensuring that they all appear at the top of the source code file.
Just knowing which modules a particular module needs can be a help in locating potential problems. In addition, knowing which modules an application needs is important when it comes time to distribute your application to users. Knowing that the user has the correct modules available helps ensure that the application will run as anticipated.
Provide version control using Mercurial
Numerous version control products are available for Python. One of the more interesting offerings is Mercurial. You can get a version of Mercurial for almost any platform that Python will run on, so you don’t have to worry about changing products when you change platforms.
Unlike a lot of the other offerings out there, Mercurial is free. Even if you find that you need a more advanced product later, you can gain useful experience by working with Mercurial on a project or two.
The best part about Mercurial is that it provides a great online tutorial.