import astast, astparse, os, sys

def modified_time(filepath):
    return os.stat(filepath).st_mtime
    
def open_output_file(outfilenm, module_file, in_files_0):
    if outfilenm:
        if os.access(outfilenm, os.F_OK):            
            out_time = modified_time(outfilenm)
            in_files = [astast.__file__, astparse.__file__, module_file] + in_files_0
            in_time = max([modified_time(f) for f in in_files if f])
            if out_time > in_time:
                print "Not re-generating output file %s: out_time=%s in_time=%s" % (
                    outfilenm, out_time, in_time)
                sys.exit(0)
        return open(outfilenm, 'w')
    else:
        return sys.stdout