I need to mimic the preprocessor feature of C with Python.
If I want to run the debug release, I use as follows with C
#ifdef DEBUG
printf(...)
#endif
I just use -DDEBUG or similar to trigger it on or off.
What method can I use for Python/Ruby? I mean, what should I do to control the behavior of python/ruby scripts in such a way that I can change a variable that affects all the script files in a project?
You usually use the python logging functionality in this use-case. That is configured in configuration files, and you can set the output levels. Very close in usage to java log4j, if you're familiar with that.
You can almost use the actual C preprocessor. If you rename your file to end in .c, you can then do this: gcc -w -E input/file.py.c -o output/file.py.
The main issue seems to be with comments. The preprocessor will complains about python comment lines being invalid preprocessor directives. You can remedy this by using C++ comments (// comment).
Or, a better idea would be to just write your own simple preprocessor. If you only need #define functionality, you're just talking about a doing a search and replace on your file.
Another solution would be something like this:
def nothing(*args):
pass
def print_debug(msg):
print msg
if not DEBUG:
print_debug = nothing
That way your print statements don't do anything if you're not in debug mode.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With