Changeset 478

Show
Ignore:
Timestamp:
Wed Jul 23 13:33:26 2008
Author:
htgoebel
Message:

code cleanup: reading and writing of data

Files:

Legend:

Unmodified
Added
Removed
Modified
  • trunk/Build.py

    r475 r478  
    42 42 iswin = sys.platform[:3] == 'win'  
    43 43 cygwin = sys.platform == 'cygwin'  
      44  
      45 def _save_data(filename, data):  
      46     outf = open(filename, 'w')  
      47     pprint.pprint(data, outf)  
      48     outf.close()  
      49  
      50 def _load_data(filename):  
      51     return eval(open(filename, 'r').read())  
      52  
    44 53 try:  
    45       config = eval(open(os.path.join(HOMEPATH, 'config.dat'), 'r').read())  
      54     config = _load_data(os.path.join(HOMEPATH, 'config.dat'))  
    45 54 except IOError:  
    46 55     print "You must run Configure.py before building!"  
     
    72 81 def build(spec):  
    73 82     global SPECPATH, BUILDPATH, WARNFILE, rthooks  
    74       rthooks = eval(open(os.path.join(HOMEPATH, 'rthooks.dat'), 'r').read())  
      83     rthooks = _load_data(os.path.join(HOMEPATH, 'rthooks.dat'))  
    74 83     SPECPATH, specnm = os.path.split(spec)  
    75 84     specnm = os.path.splitext(specnm)[0]  
     
    139 148                 return True  
    140 149         try:  
    141               inputs, pathex, hookspath, excludes, scripts, pure, binaries = eval(open(self.out, 'r').read())  
      150             inputs, pathex, hookspath, excludes, scripts, pure, binaries = _load_data(self.out)  
    141 150         except:  
    142 151             print "building because %s disappeared" % outnm  
     
    239 248         self.zipfiles = TOC(zipfiles)  
    240 249         try: # read .toc  
    241               oldstuff = eval(open(self.out, 'r').read())  
      250             oldstuff = _load_data(self.out)  
    241 250         except:  
    242 251             oldstuff = None  
    243 252         # todo: add zipfiles  
    244           if oldstuff != (self.inputs, self.pathex, self.hookspath, self.excludes, scripts, pure, binaries):  
    245               outf = open(self.out, 'w')  
    246               pprint.pprint(  
    247                   (self.inputs, self.pathex, self.hookspath, self.excludes, self.scripts, self.pure, self.binaries),  
    248                   outf)  
    249               outf.close()  
      253         newstuff = (self.inputs, self.pathex, self.hookspath, self.excludes,  
      254                     self.scripts, self.pure, self.binaries)  
      255         if oldstuff != newstuff:  
      256             _save_data(self.out, newstuff)  
    250 257             wf = open(WARNFILE, 'w')  
    251 258             for ln in analyzer.getwarnings():  
     
    315 322             return 1  
    316 323         try:  
    317               name, level, toc = eval(open(self.out, 'r').read())  
      324             name, level, toc = _load_data(self.out)  
    317 324         except:  
    318 325             print "rebuilding %s because missing" % outnm  
     
    345 352                 py_compile.compile(fnm[:-1])  
    346 353         pyz.build(self.name, toc)  
    347           outf = open(self.out, 'w')  
    348           pprint.pprint((self.name, self.level, self.toc), outf)  
    349           outf.close()  
      354         _save_data(self.out, (self.name, self.level, self.toc))  
    350 355         return 1  
    351 356  
     
    375 380     cacheindexfn = os.path.join(cachedir, "index.dat")  
    376 381     if os.path.exists(cacheindexfn):  
    377           cache_index = eval(open(cacheindexfn, "r").read())  
      382         cache_index = _load_data(cacheindexfn)  
    377 382     else:  
    378 383         cache_index = {}  
     
    405 410     # update cache index  
    406 411     cache_index[basenm] = digest  
    407       outf = open(cacheindexfn, 'w')  
    408       pprint.pprint(cache_index, outf)  
    409       outf.close()  
      412     _save_data(cacheindexfn, cache_index)  
    410 413  
    411 414     return cachedfile  
     
    451 454             return 1  
    452 455         try:  
    453               name, cdict, toc, exclude_binaries, strip_binaries, upx_binaries = eval(open(self.out, 'r').read())  
      456             name, cdict, toc, exclude_binaries, strip_binaries, upx_binaries = _load_data(self.out)  
    453 456         except:  
    454 457             print "rebuilding %s because %s is missing" % (outnm, outnm)  
     
    513 516         archive = carchive.CArchive()  
    514 517         archive.build(self.name, mytoc)  
    515           outf = open(self.out, 'w')  
    516           pprint.pprint((self.name, self.cdict, self.toc, self.exclude_binaries, self.strip_binaries, self.upx_binaries), outf)  
    517           outf.close()  
      518         _save_data(self.out,  
      519                    (self.name, self.cdict, self.toc, self.exclude_binaries,  
      520                     self.strip_binaries, self.upx_binaries))  
    518 521         for item in trash:  
    519 522             os.remove(item)  
     
    567 570             return 1  
    568 571         try:  
    569               name, console, debug, icon, versrsrc, strip, upx, mtm = eval(open(self.out, 'r').read())  
      572             name, console, debug, icon, versrsrc, strip, upx, mtm = _load_data(self.out)  
    569 572         except:  
    570 573             print "rebuilding %s because %s missing or bad" % (outnm, outnm)  
     
    649 652         outf.close()  
    650 653         os.chmod(self.name, 0755)  
    651           f = open(self.out, 'w')  
    652           pprint.pprint((self.name, self.console, self.debug, self.icon, self.versrsrc,  
    653                          self.strip, self.upx, mtime(self.name)), f)  
    654           f.close()  
      654         _save_data(self.out,  
      655                    (self.name, self.console, self.debug, self.icon,  
      656                     self.versrsrc, self.strip, self.upx, mtime(self.name)))  
    655 657         for item in trash:  
    656 658             os.remove(item)  
     
    674 676         outf.close()  
    675 677         os.chmod(self.name, 0755)  
    676           f = open(self.out, 'w')  
    677           pprint.pprint((self.name, self.console, self.debug, self.icon, self.versrsrc,  
    678                          self.strip, self.upx, mtime(self.name)), f)  
    679           f.close()  
      678         _save_data(self.out,  
      679                    (self.name, self.console, self.debug, self.icon,  
      680                     self.versrsrc, self.strip, self.upx, mtime(self.name)))  
    680 681         return 1  
    681 682  
     
    709 710         outnm = os.path.basename(self.out)  
    710 711         try:  
    711               name, strip_binaries, upx_binaries, toc = eval(open(self.out, 'r').read())  
      712             name, strip_binaries, upx_binaries, toc = _load_data(self.out)  
    711 712         except:  
    712 713             print "building %s because %s missing" % (outnm, outnm)  
     
    761 762             if typ in ('EXTENSION', 'BINARY'):  
    762 763                 os.chmod(tofnm, 0755)  
    763           f = open(self.out, 'w')  
    764           pprint.pprint((self.name, self.strip_binaries, self.upx_binaries, self.toc), f)  
    765           f.close()  
      764         _save_data(self.out,  
      765                  (self.name, self.strip_binaries, self.upx_binaries, self.toc))  
    766 766         return 1  
    767 767  
     
    842 842         outnm = os.path.basename(self.out)  
    843 843         try:  
    844               root, prefix, excludes, toc = eval(open(self.out, 'r').read())  
      844             root, prefix, excludes, toc = _load_data(self.out)  
    844 844         except:  
    845 845             print "building %s because %s is missing / bad" % (outnm, outnm)  
     
    891 891                             rslt.append((rfnm, fullfnm, 'DATA'))  
    892 892         try:  
    893               oldstuff = eval(open(self.out, 'r').read())  
      893             oldstuff = _load_data(self.out)  
    893 893         except:  
    894 894             oldstuff = None  
    895           if oldstuff != (self.root, self.prefix, self.excludes, rslt):  
    896               outf = open(self.out, 'w')  
    897               pprint.pprint((self.root, self.prefix, self.excludes, rslt), outf)  
    898               outf.close()  
      895         newstuff = (self.root, self.prefix, self.excludes, rslt)  
      896         if oldstuff != newstuff:  
      897             _save_data(self.out, newstuff)  
    899 898             self.data = rslt  
    900 899             return 1