Exemplo n.º 1
0
def check_A_data(a_text, q_text):
    """回答データのチェックをする"""
    nlc = NLCheck()
    #nlc.debug = True
    #print "Q=",q_text
    #print "A=",a_text
    out = io.BytesIO() # io.StringIO()だとTypeError: unicode argument expected, got 'str'
    #out = open("/tmp/nlcheck_log.txt","w")
    #--------------------------------------
    sys.stdout = out # 標準出力を付け替える
    input_data  = nlc.read_input_str(q_text)  # 問題データ
    target_data = nlc.read_target_str(a_text) # 回答データ
    nlc.verbose = True
    judges = nlc.check(input_data, target_data)
    print "judges = ", judges
    #results = escape(out.getvalue()) # from xml.sax.saxutils import escape, unescape ここでは不要か?!
    msg = out.getvalue()
    out.close()
    sys.stdout = sys.__stdout__ # もとに戻す
    #--------------------------------------
    return judges, msg
Exemplo n.º 2
0
def main():
    global ttf_font, font_size, unit
    import argparse
    parser = argparse.ArgumentParser(description='NumberLink check and drawing tool')
    parser.add_argument('-f', '--font', default=ttf_font, help='TrueType font file (default: %(default)s)')
    parser.add_argument('--font-size', metavar='N', type=int, default=font_size, help='font size (default: %(default)s)')
    parser.add_argument('--unit', metavar='N', type=int, default=unit, help='unit square size (default: %(default)s)')
    parser.add_argument('--test', action='store_true', help='test GIF output')
    parser.add_argument('qfile', metavar='Q-FILE', help='input file (Q-file)')
    parser.add_argument('afile', metavar='A-FILE', help='target file (A-file)')
    args = parser.parse_args()
    ttf_font = args.font
    font_size = args.font_size
    unit = args.unit
    setup_font(ttf_font)
    if args.test:
        test()
    qfile = args.qfile
    afile = args.afile
    print(qfile, afile)
    nlc = NLCheck()
    q = nlc.read_input_file(qfile)
    a = nlc.read_target_file(afile)
    #print("q=",q)
    #print("a=",a)
    #a = nlc.clean_a(q, a)
    # 回答をチェックする
    nlc.verbose = True
    judges = nlc.check( q, a )
    print("judges = ", judges)
    # 描画する
    images = draw(q, a, nlc)
    bfile = os.path.basename(qfile)
    bfile = os.path.splitext(bfile)[0] # 拡張子をトル
    for num, img in enumerate(images):
        ifile = "%s.%d.gif" % (bfile, num+1) # 層の番号は1から始まる
        img.save(ifile, 'gif')
        print(ifile)
    if 1 < len(images):
        merge_images(images).save(bfile+'.gif', 'gif')
Exemplo n.º 3
0
def check_A_data(a_str, q_uni):
    """回答データのチェックをする"""
    # 問題データ q_uni (unicode)
    # 回答データ a_str (str)
    nlc = NLCheck()
    #nlc.debug = True
    q_str = q_uni.encode('utf-8')  # unicode -> str
    #print "Q=",q_str
    #print "A=",a_str
    #--------------------------------------
    out = io.BytesIO(
    )  # io.StringIO()だとTypeError: unicode argument expected, got 'str'
    sys.stdout = out  # 標準出力を付け替える
    input_data = nlc.read_input_str(q_str)
    target_data = nlc.read_target_str(a_str)
    nlc.verbose = True
    judges = nlc.check(input_data, target_data)
    print "judges = ", judges
    #results = escape(out.getvalue()) # from xml.sax.saxutils import escape, unescape ここでは不要か?!
    msg = out.getvalue()
    out.close()
    sys.stdout = sys.__stdout__  # もとに戻す
    #--------------------------------------
    return judges, msg
Exemplo n.º 4
0
def main():
    qfile, afile = sys.argv[1:]
    afile = sys.argv[2]
    print qfile, afile
    nlc = NLCheck()
    q = nlc.read_input_file(qfile)
    a = nlc.read_target_file(afile)
    #print "q=",q
    #print "a=",a
    #a = nlc.clean_a(q, a)
    # 回答をチェックする
    nlc.verbose = True
    judges = nlc.check(q, a)
    print "judges = ", judges
    # 描画する
    images = draw(q, a, nlc)
    bfile = basename(qfile)
    bfile = re.sub("\.txt", "", bfile)
    num = 0
    for img in images:
        ifile = "%s.%d.gif" % (bfile, num)
        img.writeGif(ifile)
        print ifile
        num += 1
Exemplo n.º 5
0
def main():
    qfile, afile = sys.argv[1:]
    afile = sys.argv[2]
    print qfile,afile
    nlc = NLCheck()
    q = nlc.read_input_file(qfile)
    a = nlc.read_target_file(afile)
    #print "q=",q
    #print "a=",a
    #a = nlc.clean_a(q, a)
    # 回答をチェックする
    nlc.verbose = True
    judges = nlc.check( q, a )
    print "judges = ", judges
    # 描画する
    images = draw(q,a,nlc)
    bfile = basename(qfile)
    bfile = re.sub("\.txt", "", bfile)
    num = 0
    for img in images:
        ifile = "%s.%d.gif" % (bfile, num)
        img.writeGif(ifile)
        print ifile
        num += 1