def commandtool(): """command line tool method input: speficy the input source output: speficy the output source python: compile to python and run cmp: input raw zhpy source and run encoding: specify the encoding """ parser = OptionParser( usage="usage: %prog [-i|-p] input [-o] [output] [--e] [encoding]", version="zhpy %s" % version) parser.add_option("-i", "--input", help="speficy the input source", dest="input", default=None) parser.add_option("-o", "--output", help="speficy the output source", dest="output", default=None) parser.add_option("-p", "--python", help="compile to python and run", dest="python", default=None) parser.add_option("-c", "--cmd", help="input raw zhpy source and run", dest="cmp", default=None) parser.add_option("-e", "--encoding", help="specify the encoding", dest="encoding", default="") (options, args) = parser.parse_args() os.chdir(os.getcwd()) #run as script if options.cmp: test = options.cmp annotator() if options.encoding: result = convertor(test, options.encoding) else: result = convertor(test) try_run(result) return #run as command #TODO: accept args argv = sys.argv[1:] if len(argv) >= 1: if (options.input is None) and argv[0].endswith("py"): options.input = argv[0] if options.python: options.input = options.python #if options.input: test = file(options.input, "r").read() annotator() if options.encoding: result = convertor(test, options.encoding) else: result = convertor(test) if len(argv) == 2: if argv[0].endswith("py") and argv[1].endswith("py"): options.output = argv[1] if options.python: filename = os.path.splitext(options.python)[0] file("n_" + filename + ".py", "w").write(result) print "compile to python and run: %s" % ("n_" + filename + ".py") if options.output: file(options.output, "w").write(result) else: try_run(result) else: from zhpy_interpreter import interpreter interpreter()
def commandline(): """zhpy, the python language in chinese Accept options: -i --input: speficy the input source -o --output: speficy the output source -p --python: compile to python and run -c --cmp: input raw zhpy source and run -e --encoding: specify the encoding --info: zhpy information -v --verbose: show zhpy progress in detail --tw: convert python to twpy --cn: convert python to cnpy help: get information: zhpy --info interpreter usage: zhpy [--tw | --cn] command usage: zhpy [-i | -p] input [-o] [output] [-e] [encoding] [-v] :: $ zhpy input.py (.twpy, .cnpy) [arguments] $ zhpy -i input.py (.twpy, .cnpy) $ zhpy -i input.py -o output.py (.twpy, .cnpy) $ zhpy -p input.py script usage: zhpy [-c] source [-e] [encoding] [-v] convertor usage: zhpy [--tw | --cn] input.py [-v] :: $ zhpy --tw input.py [-v] $ zhpy --cn input.py [-v] """ argv = sys.argv[1:] os.chdir(os.getcwd()) source = None target = None encoding = None raw_source = None verbose = False python = False tw = False cn = False # run as interpreter if len(argv) == 0: from interpreter import interpreter interpreter() sys.exit() # run as script # not accept any option elif not argv[0].startswith('-'): source = argv[0] sys.argv = argv # run as command elif len(argv) == 1: if argv[0] == '--info': from info import info info() sys.exit() elif argv[0] == '-h' or argv[0] == '--help': print commandline.__doc__ sys.exit() # run as native interpreter elif argv[0] == '--tw': from interpreter import interpreter interpreter('tw') sys.exit() elif argv[0] == '--cn': from interpreter import interpreter interpreter('cn') sys.exit() else: print commandline.__doc__ sys.exit() # accept "-c -e -v" elif len(argv) >= 2: if argv[0] == '-c' or argv[0] == '--cmp': raw_source = argv[1] del (argv[:2]) if len(argv) >= 2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del (argv[:2]) if (len(argv) != 0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True # python to twpy elif argv[0] == '--tw': source = argv[1] filename = os.path.splitext(source)[0] # remove extra .tw in filename profix = os.path.splitext(filename)[-1] if profix == '.tw': filename = os.path.splitext(filename)[0] del (argv[:2]) tw = True target = "v_" + filename + ".twpy" if (len(argv) != 0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True # python to cnpy elif argv[0] == '--cn': source = argv[1] filename = os.path.splitext(source)[0] # remove extra .cn in filename profix = os.path.splitext(filename)[-1] if profix == '.cn': filename = os.path.splitext(filename)[0] del (argv[:2]) cn = True target = "v_" + filename + ".cnpy" if (len(argv) != 0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True # accept "-i -o -e -v" or "-p -e" or "-c -e -v" elif argv[0] == '-i' or argv[0] == '--input': source = argv[1] del (argv[:2]) if (len(argv) != 0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True if len(argv) >= 2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del (argv[:2]) if (len(argv) != 0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True if len(argv) >= 2 and (argv[0] == '-o' or argv[0] == '--output'): target = argv[1] del (argv[:2]) if len(argv) >= 2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del (argv[:2]) if (len(argv) != 0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True elif argv[0] == '-p' or argv[0] == '--python': source = argv[1] filename = os.path.splitext(source)[0] del (argv[:2]) target = "n_" + filename + ".py" python = True print "compile to python and run: %s" % ("n_" + filename + ".py") if (len(argv) != 0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True if len(argv) >= 2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del (argv[:2]) if (len(argv) != 0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True else: print commandline.__doc__ sys.exit() #convert if raw_source: if verbose: print "run raw_source", raw_source annotator() if encoding: result = convertor(raw_source, verbose, encoding) else: result = convertor(raw_source, verbose) try_run(result) sys.exit() if encoding: print "encoding", encoding if source: if verbose: print "input", source # convertor if (tw or cn): if verbose: print "convert python code to", try: from pyzh import rev_annotator, python_convertor test = file(source, "r").read() if tw: print "twpy" rev_annotator('tw', verbose) result = python_convertor(test, lang='tw') if cn: print "cnpy" rev_annotator('cn', verbose) result = python_convertor(test, lang='cn') except Exception, e: print "zhpy Exception: you may input unproper source" if verbose: print e sys.exit() else: try: test = file(source, "r").read() annotator() if encoding: result = convertor(test, verbose, encoding) else: result = convertor(test, verbose) except Exception, e: print "zhpy Exception: you may input unproper source" if verbose: print e sys.exit()
def commandtool(): """command line tool method input: speficy the input source output: speficy the output source python: compile to python and run cmp: input raw zhpy source and run encoding: specify the encoding info: zhpy information """ parser = OptionParser( usage="usage: %prog [-i|-p] input [-o] [output] [--e] [encoding]", version="zhpy %s"%version) parser.add_option("-i", "--input", help="speficy the input source", dest="input", default = None) parser.add_option("-o", "--output", help="speficy the output source", dest="output", default = None) parser.add_option("-p", "--python", help="compile to python and run", dest="python", default = None) parser.add_option("-c", "--cmd", help="input raw zhpy source and run", dest="cmp", default = None) parser.add_option("-e", "--encoding", help="specify the encoding", dest="encoding", default = "") parser.add_option("-V", "--info", help="zhpy information", action="store_true", dest="info") (options, args) = parser.parse_args() if options.info: from zhpy_info import info info() return os.chdir(os.getcwd()) #run as script if options.cmp: test = options.cmp annotator() if options.encoding: result = convertor(test, options.encoding) else: result = convertor(test) try_run(result) return #run as command #TODO: accept args argv = sys.argv[1:] if len(argv) >= 1: if options.python: options.input = options.python # able to run as script without subname if (options.input is None): options.input = argv[0] #if options.input: print "input", options.input test = file(options.input, "r").read() annotator() if options.encoding: result = convertor(test, options.encoding) else: result = convertor(test) if len(argv) == 2: if argv[0].endswith("py") and argv[1].endswith("py"): options.output = argv[1] if options.python: filename = os.path.splitext(options.python)[0] file("n_"+filename+".py","w").write(result) print "compile to python and run: %s"%("n_"+filename+".py") if options.output: file(options.output,"w").write(result) else: try_run(result) else: from zhpy_interpreter import interpreter interpreter()
except Exception, e: print "zhpy Exception: you may input unproper source" if verbose: print e sys.exit() else: try: test = file(source, "r").read() annotator() if encoding: result = convertor(test, verbose, encoding) else: result = convertor(test, verbose) except Exception, e: print "zhpy Exception: you may input unproper source" if verbose: print e sys.exit() if target: if verbose: print "output", target file(target, "w").write(result) if python: try_run(result) else: try_run(result) if __name__ == "__main__": commandline()
def commandline(): """zhpy, the python language on chinese Accept options: -i --input: speficy the input source -o --output: speficy the output source -p --python: compile to python and run -c --cmp: input raw zhpy source and run -e --encoding: specify the encoding --info: zhpy information -v --verbose: show zhpy progress in detail help: get information: :: $ zhpy --info interpreter usage: :: $ zhpy $ zhpy --tw $ zhpy --cn command usage: zhpy [-i|-p] input [-o] [output] [-e] [encoding] [-v] :: $ zhpy input.py (.twpy, .cnpy) [arguments] $ zhpy -i input.py (.twpy, .cnpy) $ zhpy -i input.py -o output.py (.twpy, .cnpy) $ zhpy -p input.py script usage: zhpy [-c] source [-e] [encoding] [-v] """ argv = sys.argv[1:] os.chdir(os.getcwd()) source = None target = None encoding = None raw_source = None verbose = False python = False # run as interpreter if len(argv) == 0: from interpreter import interpreter interpreter() sys.exit() # run as script # not accept any option elif not argv[0].startswith('-'): source = argv[0] sys.argv = argv # run as command elif len(argv) == 1: if argv[0] == '--info': from info import info info() sys.exit() elif argv[0] == '-h' or argv[0] == '--help': print commandline.__doc__ sys.exit() # run as native interpreter elif argv[0] == '--tw': from interpreter import interpreter interpreter('tw') sys.exit() elif argv[0] == '--cn': from interpreter import interpreter interpreter('cn') sys.exit() else: print commandline.__doc__ sys.exit() # accept "-c -e -v" or "-i -o -e -v" or "-p -e" or "-c -e -v" elif len(argv) >= 2: if argv[0] == '-c' or argv[0] == '--cmp': raw_source = argv[1] del (argv[:2]) if len(argv) >= 2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del (argv[:2]) if not len(argv) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True elif argv[0] == '-i' or argv[0] == '--input': source = argv[1] del (argv[:2]) if len(argv) >= 2 and (argv[0] == '-o' or argv[0] == '--output'): target = argv[1] del (argv[:2]) if len(argv) >= 2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del (argv[:2]) if not len(argv) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True elif argv[0] == '-p' or argv[0] == '--python': source = argv[1] filename = os.path.splitext(source)[0] del (argv[:2]) target = "n_" + filename + ".py" python = True print "compile to python and run: %s" % ("n_" + filename + ".py") if len(argv) >= 2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del (argv[:2]) if not len(argv) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True else: print commandline.__doc__ sys.exit() #convert if raw_source: if verbose: print "run raw_source", raw_source annotator() if encoding: result = convertor(raw_source, encoding) else: result = convertor(raw_source) try_run(result) sys.exit() if encoding: print "encoding", encoding if source: if verbose: print "input", source # convertor try: test = file(source, "r").read() annotator() if encoding: result = convertor(test, encoding) else: result = convertor(test) except: print "zhpy Exception: you may input unproper source" sys.exit() if target: if verbose: print "output", target file(target, "w").write(result) if python: try_run(result) else: try_run(result)
def commandline(): """zhpy, the python language in chinese Accept options: -i --input: speficy the input source -o --output: speficy the output source -p --python: compile to python and run -c --cmp: input raw zhpy source and run -e --encoding: specify the encoding --info: zhpy information -v --verbose: show zhpy progress in detail --tw: convert python to twpy --cn: convert python to cnpy help: get information: zhpy --info interpreter usage: zhpy [--tw | --cn] command usage: zhpy [-i | -p] input [-o] [output] [-e] [encoding] [-v] :: $ zhpy input.py (.twpy, .cnpy) [arguments] $ zhpy -i input.py (.twpy, .cnpy) $ zhpy -i input.py -o output.py (.twpy, .cnpy) $ zhpy -p input.py script usage: zhpy [-c] source [-e] [encoding] [-v] convertor usage: zhpy [--tw | --cn] input.py [-v] :: $ zhpy --tw input.py [-v] $ zhpy --cn input.py [-v] """ argv = sys.argv[1:] os.chdir(os.getcwd()) source = None target = None encoding = None raw_source = None verbose = False python = False tw = False cn = False # run as interpreter if len(argv) == 0: from interpreter import interpreter interpreter() sys.exit() # run as script # not accept any option elif not argv[0].startswith('-'): source = argv[0] sys.argv = argv # run as command elif len(argv)==1: if argv[0] == '--info': from info import info info() sys.exit() elif argv[0] == '-h' or argv[0] == '--help': print commandline.__doc__ sys.exit() # run as native interpreter elif argv[0] == '--tw': from interpreter import interpreter interpreter('tw') sys.exit() elif argv[0] == '--cn': from interpreter import interpreter interpreter('cn') sys.exit() else: print commandline.__doc__ sys.exit() # accept "-c -e -v" elif len(argv)>=2: if argv[0] == '-c' or argv[0] == '--cmp': raw_source = argv[1] del(argv[:2]) if len(argv)>=2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del(argv[:2]) if (len(argv)!=0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True # python to twpy elif argv[0] == '--tw': source = argv[1] filename = os.path.splitext(source)[0] # remove extra .tw in filename profix = os.path.splitext(filename)[-1] if profix =='.tw': filename = os.path.splitext(filename)[0] del(argv[:2]) tw = True target = "v_"+filename+".twpy" if (len(argv)!=0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True # python to cnpy elif argv[0] == '--cn': source = argv[1] filename = os.path.splitext(source)[0] # remove extra .cn in filename profix = os.path.splitext(filename)[-1] if profix == '.cn': filename = os.path.splitext(filename)[0] del(argv[:2]) cn = True target = "v_"+filename+".cnpy" if (len(argv)!=0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True # accept "-i -o -e -v" or "-p -e" or "-c -e -v" elif argv[0] == '-i' or argv[0] == '--input': source = argv[1] del(argv[:2]) if (len(argv)!=0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True if len(argv)>=2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del(argv[:2]) if (len(argv)!=0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True if len(argv)>=2 and (argv[0] == '-o' or argv[0] == '--output'): target = argv[1] del(argv[:2]) if len(argv)>=2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del(argv[:2]) if (len(argv)!=0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True elif argv[0] == '-p' or argv[0] == '--python': source = argv[1] filename = os.path.splitext(source)[0] del(argv[:2]) target = "n_"+filename+".py" python = True print "compile to python and run: %s"%("n_"+filename+".py") if (len(argv)!=0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True if len(argv)>=2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del(argv[:2]) if (len(argv)!=0) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True else: print commandline.__doc__ sys.exit() #convert if raw_source: if verbose: print "run raw_source", raw_source annotator() if encoding: result = convertor(raw_source, verbose, encoding) else: result = convertor(raw_source, verbose) try_run(result) sys.exit() if encoding: print "encoding", encoding if source: if verbose: print "input", source # convertor if(tw or cn): if verbose: print "convert python code to", try: from pyzh import rev_annotator, python_convertor test = file(source, "r").read() if tw: print "twpy" rev_annotator('tw', verbose) result = python_convertor(test, lang='tw') if cn: print "cnpy" rev_annotator('cn', verbose) result = python_convertor(test, lang='cn') except Exception, e: print "zhpy Exception: you may input unproper source" if verbose: print e sys.exit() else: try: test = file(source, "r").read() annotator() if encoding: result = convertor(test, verbose, encoding) else: result = convertor(test, verbose) except Exception, e: print "zhpy Exception: you may input unproper source" if verbose: print e sys.exit()
result = python_convertor(test, lang='cn') except Exception, e: print "zhpy Exception: you may input unproper source" if verbose: print e sys.exit() else: try: test = file(source, "r").read() annotator() if encoding: result = convertor(test, verbose, encoding) else: result = convertor(test, verbose) except Exception, e: print "zhpy Exception: you may input unproper source" if verbose: print e sys.exit() if target: if verbose: print "output", target file(target,"w").write(result) if python: try_run(result) else: try_run(result) if __name__=="__main__": commandline()
def commandline(): """zhpy, the python language on chinese Accept options: input: speficy the input source output: speficy the output source python: compile to python and run cmp: input raw zhpy source and run encoding: specify the encoding info: zhpy information verbose: show zhpy progress in detail # zhpy: compile python code to zhpy help: command usage: zhpy [-i|-p] input [-o] [output] [-e] [encoding] [-v] script usage: zhpy [-c] source [-e] [encoding] [-v] $ zhpy input.py (.twpy, .cnpy) [arguments] $ zhpy -i input.py (.twpy, .cnpy) $ zhpy -i input.py -o output.py (.twpy, .cnpy) $ zhpy -p input.py """ argv = sys.argv[1:] os.chdir(os.getcwd()) source = None target = None encoding = None raw_source = None verbose = False python = False # run as interpreter if len(argv) == 0: from interpreter import interpreter interpreter() sys.exit() # run as script # not accept any option elif not argv[0].startswith('-'): source = argv[0] sys.argv = argv # run as command # accept "-i -o -e" or "-p -e" or "-c -e" elif len(argv)==1: if argv[0] == '--info': from info import info info() sys.exit() if argv[0] == '-h' or argv[0] == '--help': print commandline.__doc__ sys.exit() elif len(argv)>=2: if argv[0] == '-c' or argv[0] == '--cmp': raw_source = argv[1] del(argv[:2]) if len(argv)>=2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del(argv[:2]) if not len(argv) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True elif argv[0] == '-i' or argv[0] == '--input': source = argv[1] del(argv[:2]) if len(argv)>=2 and (argv[0] == '-o' or argv[0] == '--output'): target = argv[1] del(argv[:2]) if len(argv)>=2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del(argv[:2]) if not len(argv) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True elif argv[0] == '-p' or argv[0] == '--python': source = argv[1] filename = os.path.splitext(source)[0] del(argv[:2]) target = "n_"+filename+".py" python = True print "compile to python and run: %s"%("n_"+filename+".py") if len(argv)>=2 and (argv[0] == '-e' or argv[0] == '--encoding'): encoding = argv[1] del(argv[:2]) if not len(argv) and (argv[0] == '-v' or argv[0] == '--verbose'): verbose = True else: print commandline.__doc__ sys.exit() #convert if raw_source: if verbose: print "run raw_source", raw_source annotator() if encoding: result = convertor(raw_source, encoding) else: result = convertor(raw_source) try_run(result) sys.exit() if encoding: print "encoding", encoding if source: if verbose: print "input", source # convertor test = file(source, "r").read() annotator() if encoding: result = convertor(test, encoding) else: result = convertor(test) if target: if verbose: print "output", target file(target,"w").write(result) if python: try_run(result) else: try_run(result)