#NEWLINE# @ contextlib . contextmanager #NEWLINE# def smart_open( filename , mode ) : #NEWLINE# #INDENT# if filename : #NEWLINE# #INDENT# f = open ( filename , mode ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# f = sys . stdout #NEWLINE# #UNINDENT# try : #NEWLINE# #INDENT# ( yield f ) #NEWLINE# #UNINDENT# finally : #NEWLINE# #INDENT# if ( f != sys . stdout ) : #NEWLINE# #INDENT# f . close ( )