One common kind of automation involves running several programs, none of which are actually Python applications. Since the programs aren't written in Python, it's impossible to rewrite each program to create a composite Python application. We can't follow the Combining two applications into one recipe.
Instead of aggregating the functionality, the alternative is to wrap the other programs in Python to provide a higher level construct. The use case is very similar to the use case for writing a shell script. The difference is that Python is used instead of the shell language. Using Python has some advantages:
- Python has a rich collection of data structures. The shell only has strings and arrays of strings.
- Python has an outstanding unit test framework. This provides confidence that the Python version of a shell script works...