CPPinator is a Python automation script designed for compiling and running multiple C++ files in a specified directory. It simplifies the process of handling multiple C++ programs and provides a clear and organized output for each program's execution along with the execution time for each program.
View the CPPinator package on PyPI here.
-
The script allows you to specify a directory path where your C++ source code files are located.
-
It changes the current working directory to the specified path.
-
CPPinator lists all the C++ source code files with the
.cpp
extension in the directory. -
For each
.cpp
file found, it compiles the code usingg++
and runs the resulting executable. -
The script captures and displays the output and any errors produced by each program.
-
Upon successful execution of all C++ files, it provides a summary message.
-
Finally, the compiled executable file (
a.exe
) is deleted to keep your directory clean.
-
Ensure you have Python and a C++ compiler (e.g., g++) installed on your system.
-
Install the
CPPinator
package from PyPI using pip:pip install CPPinator
OR
Clone or download the
CPPinator.py
script to your local machine.git clone https://github.com/Hardvan/CPPinator cd CPPinator pip install .
-
Call the
compile_and_run_cpp_files
function from theCPPinator
package with the directory path as an argument.from CPPinator import compile_and_run_cpp_files compile_and_run_cpp_files("path/to/your/directory")
View the
run.py
file for an example of how to use theCPPinator
package.
Here's an example of the script's output when run with a list of C++ files in the Basic Problems
directory.
Changing working directory... Current working directory: F:\CPPinator\Basic Problems
List of .cpp files:
count_digits.cpp
divisors.cpp
gcd.cpp
palindrome_number.cpp
prime.cpp
reverse_array.cpp
reverse_number.cpp
Running .cpp files:
-
count_digits.cpp
(1.07s)No. of digits in 123456789 is:
9
9
9
Expected: 9 -
divisors.cpp
(1.14s)Divisors of 100 are:
1 100 2 50 4 25 5 20 10
Divisors of 100 are:
1 2 4 5 10 20 25 50 100
Expected: 1 2 4 5 10 20 25 50 100 -
gcd.cpp
(1.16s)GCD of 12 and 15 is:
3
3
Expected: 3 -
palindrome_number.cpp
(1.07s)12321 is palindrome: true
Expected: true -
prime.cpp
(1.11s)100 is not prime
100 is not prime
Expected: not prime -
reverse_array.cpp
(1.05s)Original array:
1 2 3 4 5
Reversed array using two pointers:
5 4 3 2 1
Reversed array using recursion:
5 4 3 2 1
Reversed array using temporary array:
5 4 3 2 1
Expected: 5 4 3 2 1 -
reverse_number.cpp
(1.24s)Reverse of 123456789 is: 987654321
Expected: 987654321
✅ Ran all C++ files successfully. (7.84s)
-
Change version in
setup.py
-
Run the following commands
python setup.py bdist_wheel sdist twine check dist/* twine upload dist/*