Open carterbox opened 6 years ago
@dgursoy, This is what we talked about today. Any more thoughts?
Looks good. One concern is we need a level of control for the print statements though. Otherwise, it won't be structured and we can't use them easily afterwards. For example, if I print a "Hello World" somewhere, I may not want to have it in the txt file.
I guess you could use the __debug__
switch to save files instead. For example:
if __debug__:
np.save('./debug_data/', some_data)
But also, if the user doesn't use the -O
switch, it's better to dump a bunch of text to stdout
instead of making files on their disk?
I think __debug__
can only be set before runtime, so we can't protect the user by setting it for them in the code.
Today I learned that the logger in a python library should be set to use the NullHandler
. This is how it is set up for TomoPy and it allows the library to inherit whatever logging environment the end user has set up.
We want to set up a system for logging information about the progress of reconstruction algorithms such as convergence criteria and which number of iterations have been completed. This system should probably use the standard logger of python and print statements for storing information optionally.
Instead of changing the API of
tike
to accommodate development, we can use the following tools to capture data in text files and display messages tostout
.Example
Here's an example that demonstrates these concepts.
dev_logging.py:
Run the script in a bash terminal:
some_data.txt: