8
8
import shutil
9
9
import ast
10
10
import astunparse
11
+ import logging
11
12
from tabulate import tabulate
12
13
from IPython .display import HTML , display
13
14
@@ -52,16 +53,16 @@ def __call__(self, version="*", reset=False, var_name="", var_value="", show_all
52
53
53
54
if reset :
54
55
if var_name :
55
- print ("resetting cached values for " + var_name )
56
+ logging . warning ("resetting cached values for " + var_name )
56
57
self ._reset_var (var_folder_path )
57
58
# no return, because it might be a forced recalculation
58
59
else :
59
- print ("resetting entire cache" )
60
+ logging . warning ("resetting entire cache" )
60
61
self ._reset_all (base_dir )
61
62
return
62
63
63
64
if not var_name :
64
- print ("Warning: nothing todo: no variable defined, no reset requested, no show_all requested. " )
65
+ logging . warning ("Warning: nothing todo: no variable defined, no reset requested, no show_all requested. " )
65
66
return
66
67
67
68
version = self ._get_cache_version (version , var_value , user_ns )
@@ -74,7 +75,7 @@ def __call__(self, version="*", reset=False, var_name="", var_value="", show_all
74
75
try :
75
76
stored_value = self .get_from_file (var_data_path )
76
77
77
- print ('loading cached value for variable \' {0}\' . Time since pickling {1}'
78
+ logging . warning ('loading cached value for variable \' {0}\' . Time since pickling {1}'
78
79
.format (str (var_name ), str (datetime .datetime .now () - info ["store_date" ])))
79
80
user_ns [var_name ] = stored_value
80
81
except IOError :
@@ -84,7 +85,7 @@ def __call__(self, version="*", reset=False, var_name="", var_value="", show_all
84
85
raise CacheCallException ("variable '" + str (var_name ) + "' not in cache" )
85
86
86
87
if var_value and stored_value is None :
87
- print ('creating new value for variable \' ' + str (var_name ) + '\' ' )
88
+ logging . warning ('creating new value for variable \' ' + str (var_name ) + '\' ' )
88
89
self ._create_new_value (
89
90
self .shell ,
90
91
var_folder_path ,
@@ -145,7 +146,7 @@ def _show_all(base_dir):
145
146
for subdir in os .listdir (base_dir ):
146
147
var_name = subdir
147
148
if debug :
148
- print ("found subdir: " + var_name )
149
+ logging . warning ("found subdir: " + var_name )
149
150
150
151
data_path = os .path .join (base_dir , var_name , "data.txt" )
151
152
size = os .path .getsize (data_path )
@@ -156,7 +157,7 @@ def _show_all(base_dir):
156
157
vars .append ([var_name , size , info ["store_date" ], info ["version" ], info ["expression_hash" ]])
157
158
158
159
except IOError :
159
- print ("Warning: failed to read info variable '" + var_name + "'" )
160
+ logging . warning ("Warning: failed to read info variable '" + var_name + "'" )
160
161
161
162
display (HTML (tabulate (vars , headers = ["var name" , "size(byte)" , "stored at date" , "version" , "expression(hash)" ],
162
163
tablefmt = "html" )))
@@ -179,11 +180,11 @@ def _handle_cache_hit(info, var_value, var_folder_path, version):
179
180
if str (info ["version" ]) != str (version ):
180
181
# Note: Version can be a string, a number or the content of a variable (which can by anything)
181
182
if debug :
182
- print ("resetting because version mismatch" )
183
+ logging . warning ("resetting because version mismatch" )
183
184
CacheCall .reset_folder (var_folder_path )
184
185
elif info ["expression_hash" ] != CacheCall .hash_line (var_value ):
185
- print ("Warning! Expression has changed since last save, which was at " + str (info ["store_date" ]))
186
- print ("To store a new value, change the version ('-v' or '--version') " )
186
+ logging . warning ("Warning! Expression has changed since last save, which was at " + str (info ["store_date" ]))
187
+ logging . warning ("To store a new value, change the version ('-v' or '--version') " )
187
188
else :
188
189
if version != '' and info ['version' ] != version :
189
190
# force a version
@@ -203,8 +204,8 @@ def _get_cache_version(version_param, var_value, user_ns):
203
204
if version_param .isdigit ():
204
205
return int (version_param )
205
206
206
- print ("Version: " + str (version_param ))
207
- print ("version_param.isdigit(): " + str (version_param .isdigit ()))
207
+ logging . warning ("Version: " + str (version_param ))
208
+ logging . warning ("version_param.isdigit(): " + str (version_param .isdigit ()))
208
209
raise CacheCallException ("Invalid version. It must either be an Integer, *, or the name of a variable" )
209
210
210
211
@staticmethod
@@ -223,7 +224,7 @@ def cache(self, line):
223
224
parameter = self .parse_input (line )
224
225
CacheCall (self .shell )(** parameter )
225
226
except CacheCallException as e :
226
- print ("Error: " + str (e ))
227
+ logging . error ("Error: " + str (e ))
227
228
228
229
@staticmethod
229
230
def parse_input (_input ):
@@ -298,6 +299,6 @@ def parse_input(_input):
298
299
try :
299
300
ip = get_ipython ()
300
301
ip .register_magics (CacheMagic )
301
- print ("%cache magic is now registered in ipython" )
302
+ logging . warning ("%cache magic is now registered in ipython" )
302
303
except :
303
- print ("Error! Couldn't register magic in ipython!!!" )
304
+ logging . error ("Error! Couldn't register magic in ipython!!!" )
0 commit comments