1414from os .path import join as pjoin
1515import tempfile
1616import getpass
17+ import logging
1718import warnings
1819import sqlite3
1920
2728from .optpkg import optional_package
2829dicom , have_dicom , _ = optional_package ('dicom' )
2930
31+ logger = logging .getLogger ('nibabel.dft' )
3032
3133class DFTError (Exception ):
3234 "base class for DFT exceptions"
@@ -153,7 +155,7 @@ def as_nifti(self):
153155 for (i , si ) in enumerate (self .storage_instances ):
154156 if i + 1 != si .instance_number :
155157 raise InstanceStackError (self , i , si )
156- print 'reading %d/%d' % (i + 1 , len (self .storage_instances ))
158+ logger . info ( 'reading %d/%d' % (i + 1 , len (self .storage_instances ) ))
157159 d = self .storage_instances [i ].dicom ()
158160 data [i , :, :] = d .pixel_array
159161
@@ -288,7 +290,7 @@ def update_cache(base_dir):
288290 for dir in sorted (mtimes .keys ()):
289291 if dir in db_mtimes and mtimes [dir ] <= db_mtimes [dir ]:
290292 continue
291- print 'updating %s' % dir
293+ logger . debug ( 'updating %s' % dir )
292294 _update_dir (c , dir , files_by_dir [dir ], studies , series , storage_instances )
293295 if dir in db_mtimes :
294296 query = "UPDATE directory SET mtime = ? WHERE path = ?"
@@ -332,20 +334,20 @@ def get_studies(base_dir=None):
332334 return studies
333335
334336def _update_dir (c , dir , files , studies , series , storage_instances ):
335- print dir
337+ logger . debug ( 'Updating directory %s' % dir )
336338 c .execute ("SELECT name, mtime FROM file WHERE directory = ?" , (dir , ))
337339 db_mtimes = dict (c )
338340 for fname in db_mtimes :
339341 if fname not in files :
340- print ' remove %s' % fname
342+ logger . debug ( ' remove %s' % fname )
341343 c .execute ("DELETE FROM file WHERE directory = ? AND name = ?" ,
342344 (dir , fname ))
343345 for fname in files :
344346 mtime = os .lstat ('%s/%s' % (dir , fname )).st_mtime
345347 if fname in db_mtimes and mtime <= db_mtimes [fname ]:
346- print ' okay %s' % fname
348+ logger . debug ( ' okay %s' % fname )
347349 else :
348- print ' update %s' % fname
350+ logger . debug ( ' update %s' % fname )
349351 si_uid = _update_file (c , dir , fname , studies , series , storage_instances )
350352 if fname not in db_mtimes :
351353 query = """INSERT INTO file (directory,
@@ -365,14 +367,14 @@ def _update_file(c, path, fname, studies, series, storage_instances):
365367 try :
366368 do = dicom .read_file ('%s/%s' % (path , fname ))
367369 except dicom .filereader .InvalidDicomError :
368- print ' not a DICOM file'
370+ logger . debug ( ' not a DICOM file' )
369371 return None
370372 try :
371373 study_comments = do .StudyComments
372374 except AttributeError :
373375 study_comments = ''
374376 try :
375- print ' storage instance %s' % str (do .SOPInstanceUID )
377+ logger . debug ( ' storage instance %s' % str (do .SOPInstanceUID ) )
376378 if str (do .StudyInstanceUID ) not in studies :
377379 query = """INSERT INTO study (uid,
378380 date,
@@ -420,7 +422,7 @@ def _update_file(c, path, fname, studies, series, storage_instances):
420422 c .execute (query , params )
421423 storage_instances .append (str (do .SOPInstanceUID ))
422424 except AttributeError , data :
423- print ' %s' % str (data )
425+ logger . debug ( ' %s' % str (data ) )
424426 return None
425427 return str (do .SOPInstanceUID )
426428
@@ -468,13 +470,13 @@ def clear_cache():
468470def _init_db (verbose = True ):
469471 """ Initialize database """
470472 if verbose :
471- print 'db filename: ' + DB_FNAME
473+ logger . info ( 'db filename: ' + DB_FNAME )
472474 global DB
473475 DB = sqlite3 .connect (DB_FNAME , check_same_thread = False )
474476 with _db_change () as c :
475477 c .execute ("SELECT COUNT(*) FROM sqlite_master WHERE type = 'table'" )
476478 if c .fetchone ()[0 ] == 0 :
477- print 'create'
479+ logger . debug ( 'create' )
478480 for q in CREATE_QUERIES :
479481 c .execute (q )
480482
0 commit comments