Beispiel #1
0
def main(argv=None):
    """
    Executes the main pytuga program in the console.
    """

    if len(sys.argv) <= 1:
        return start_ipytuga()

    # Process arguments
    parser = argparse.ArgumentParser(description='Executa código Pytuguês')
    parser.add_argument(
        'arquivo', help='nome do arquivo a ser executado')
    parser.add_argument(
        '--mostre-python', '-P',
        help='mostra conversão do arquivo para Python na tela',
        action='store_const', const=True)
    parser.add_argument(
        '--python', '-p',
        metavar='ARQUIVO',
        help='salva conversão para Python no caminho especificado')
    parser.add_argument(
        '--versão', '-v',
        help='mostra a versão do interpretador de pytuguês',
        action='version', version='Pytuga %s' % version)
    # parser.add_argument('--warning', '-w', action='store_const',
    #                   help='ativa avisos de compatibilidade com o python')
    args = parser.parse_args(argv)

    # Process errors
    if not os.path.exists(args.arquivo):
        raise SystemExit('O arquivo %s não existe!' % args.arquivo)
    if os.path.splitext(args.arquivo)[1] != '.pytg':
        print('Aviso: Pytuga deve processar apenas arquivos .pytg!')

    # Process file
    if args.mostre_python:
        with open(args.arquivo) as F:
            print(to_python(F.read()))
    elif args.python:
        with open(args.arquivo) as source:
            data = to_python(source.read())
        with open(args.python, 'w') as dest:
            dest.write(data)
    else:
        with open(args.arquivo) as F:
            data = F.read()
        pytuga.init()
        code = pytuga.compile(data, args.arquivo, 'exec')
        pytuga.exec(code, {})
Beispiel #2
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     pytuga.init()