diff options
| author | Peng Wu <alexepico@gmail.com> | 2011-07-18 16:02:58 +0800 |
|---|---|---|
| committer | Peng Wu <alexepico@gmail.com> | 2011-07-18 16:02:58 +0800 |
| commit | 073f8d930c94a2209ddab12f2cd44f4ae05bbffd (patch) | |
| tree | f1065351ffa067ca5cff8bdfc2a128905ddf48fc | |
| parent | fa2643cf811583b489209ca51e5ecade1cc1a080 (diff) | |
| download | trainer-073f8d930c94a2209ddab12f2cd44f4ae05bbffd.tar.gz trainer-073f8d930c94a2209ddab12f2cd44f4ae05bbffd.tar.xz trainer-073f8d930c94a2209ddab12f2cd44f4ae05bbffd.zip | |
add status check to segment.py
| -rw-r--r-- | lib/utils.py | 29 | ||||
| -rwxr-xr-x | segment.py | 21 |
2 files changed, 48 insertions, 2 deletions
diff --git a/lib/utils.py b/lib/utils.py index 9024c7e..447637a 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -1,5 +1,16 @@ import os import json +from myconfig import MyConfig + + +config = MyConfig() + +#Exceptions +class EpochError(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr(self.value) #Utils @@ -29,10 +40,24 @@ def store_status(outfile, obj): return def check_epoch(obj, passname): - pass + epochname = passname + 'Epoch' + if not epochname in obj: + return False + object_epoch = int(obj[epochname]) + config_epoch = int(config.getEpochs()[epochname]) + if object_epoch > config_epoch: + raise EpochError('Un-excepted larger epoch en-countered.\n' + \ + 'Please increace the epoch in myconfig.py\n' ) + + if object_epoch < config_epoch: + return False + if object_epoch == config_epoch: + return True + return None def sign_epoch(obj, passname): - pass + epochname = passname + 'Epoch' + obj[epochname] = config.getEpochs()[epochname] #test case if __name__ == '__main__': @@ -3,6 +3,7 @@ import os import os.path from argparse import ArgumentParser from subprocess import Popen, PIPE +import utils from myconfig import MyConfig @@ -18,6 +19,12 @@ def handleError(error): sys.exit(error) def segmentOneText(infile, outfile, reportfile): + infilestatuspath = infile + config.getStatusPostfix() + infilestatus = utils.load_status(infilestatuspath) + if utils.check_epoch(infilestatus, 'Segment'): + return + + #begin processing cmdline = './ngseg <"' + infile + '" 2>"' + reportfile + '"' subprocess = Popen(cmdline, shell=True, stdout=PIPE, \ close_fds=True) @@ -27,8 +34,18 @@ def segmentOneText(infile, outfile, reportfile): f.close() os.waitpid(subprocess.pid, 0) + #end processing + + utils.sign_epoch(infilestatus, 'Segment') + utils.store_status(infilestatuspath, infilestatus) def handleOneIndex(indexpath): + indexstatuspath = indexpath + config.getStatusPostfix() + indexstatus = utils.load_status(indexstatuspath) + if utils.check_epoch(indexstatus, 'Segment'): + return + + #begin processing indexfile = open(indexpath, 'r') for oneline in indexfile.readlines(): (title, textpath) = oneline.split('#') @@ -42,6 +59,10 @@ def handleOneIndex(indexpath): segmentOneText(infile, outfile, reportfile) print("Processed "+ title + '#' + textpath) indexfile.close() + #end processing + + utils.sign_epoch(indexstatus) + utils.store_status(indexstatuspath, indexstatus) def walkThroughIndex(path): for root, dirs, files in os.walk(path, topdown=True, onerror=handleError): |
