示例#1
0
def markDifferences(pythonCode, prefix):
    '''
        Esta função com a ajuda do "alter_make_transformations" consegue repro
        duzir o código de python com as tags de html necessária para identificar
        onde occoreu uma alteração em comparação com o ficheiro de python
        original
    '''

    sys.path.append('../qom_questions_transformer')
    from text_transformer.tt_text_transformer_interface import clear
    from python_transformer.pt_util.pt_util_file import load_source_code_from_file
    make_transformations_text = alter_make_transformations()
    file1 = open('altered_make_transformations.py', 'w+')
    file1.writelines(make_transformations_text)
    file1.close()
    import os

    clear()
    import importlib.util
    spec = importlib.util.spec_from_file_location(
        "altered_make_transformations",
        os.getcwd() + "\\altered_make_transformations.py")
    foo = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(foo)

    python_module = load_source_code_from_file(pythonCode)
    if os.path.isfile(prefix + 'seed.txt'):
        seedFile = get_file_content(prefix + 'seed.txt')
        seed(int(seedFile))

    foo.make_transformations()

    return python_module.to_string()
示例#2
0
def alter_full_program(prefix):
    sys.path.append('../qom_questions_transformer')
    from text_transformer.tt_text_transformer_interface import clear
    from python_transformer.pt_util.pt_util_file import load_source_code_from_file

    clear()
    import importlib.util
    spec = importlib.util.spec_from_file_location(
        "make_transformations",
        os.getcwd() + "\\make_transformations.py")
    foo = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(foo)
    python_module = load_source_code_from_file('full_program.py')
    if os.path.isfile(os.getcwd() + "\\" + prefix + 'seed.txt'):
        seedFile = get_file_content(os.getcwd() + "\\" + prefix + 'seed.txt')
        seed(int(seedFile))
    else:
        if os.path.isfile('seed.txt'):
            seedFile = get_file_content('seed.txt')
            seed(int(seedFile))
        else:
            seed_value = randint(1000, 9999)
            create_file('seed.txt', str(seed_value))
            seed(int(seed_value))
    foo.make_transformations()
    create_file('altered_full_program.py', python_module.to_string())
def simulateTex_values(text, prefix, seed_value):
    '''
        Esta função com a ajuda do "alter_make_transformations" consegue repro
        duzir o código de python com as tags de html necessária para identificar
        onde occoreu uma alteração em comparação com o ficheiro de python
        original
    '''
    sys.path.append('../qom_questions_transformer')
    from text_transformer.tt_text_transformer_interface import clear, load_text
    from python_transformer.pt_util.pt_util_file import load_source_code_from_file
    make_transformations_text = alter_make_transformations_for_code()
    file1 = open('altered_make_transformations_for_code.py','w+')
    file1.writelines(make_transformations_text)
    file1.close()
    
    clear()
    import importlib.util
    spec = importlib.util.spec_from_file_location("altered_make_transformations_for_code", os.getcwd() + "\\altered_make_transformations_for_code.py")
    foo = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(foo)
    

    python_module = load_source_code_from_file('full_program.py')
    text_module = load_text(text)
    seed(int(seed_value))
    foo.make_transformations()
    python_module.execute()
    foo.make_transformations_on_results(python_module)
    final_text = text_module.to_string()
    create_file('simulated_tex.tex', final_text)
示例#4
0
def simulateTex_values(text, prefix, seed_value):
    '''
        Esta função com a ajuda do "alter_make_transformations" consegue repro
        duzir o código de python com as tags de html necessária para identificar
        onde occoreu uma alteração em comparação com o ficheiro de python
        original
    '''
    sys.path.append('../qom_questions_transformer')
    from text_transformer.tt_text_transformer_interface import clear, load_text
    from python_transformer.pt_util.pt_util_file import load_source_code_from_file
    make_transformations_text = alter_make_transformations_for_code()
    file1 = open('altered_make_transformations_for_code.py','w+')
    file1.writelines(make_transformations_text)
    file1.close()
    
    clear()
    import importlib.util
    spec = importlib.util.spec_from_file_location("altered_make_transformations_for_code", os.getcwd() + "\\altered_make_transformations_for_code.py")
    foo = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(foo)
    

    python_module = load_source_code_from_file('full_program.py')
    text_module = load_text(text)
    seed(int(seed_value))
    foo.make_transformations()
    python_module.execute()
    foo.make_transformations_on_results(python_module)
    text3 = text_module.to_string()
##    lines1 = re.split('\n|\n\n',text)
##    lines2 = re.split('\n|\n\n',text3)
##    final_text = ''
##    for i in range(len(lines1)):
##        text1 = format_string(lines1[i].split(" "))
##        text2 = format_string(lines2[i].split(" "))
##        for i in range(len(text1)):
##            if text1[i] != text2[i]:
##                if '<b><i>' in text1[i]:
##                    final_text += text1[i] + " "
##                    continue
##                final_text += '<b><i>' + text2[i] + '</i></b> ' 
##            else:
##                final_text += text2[i] + " "
##        final_text+= '\n'
    final_text = text3
    create_file('simulated_tex.tex', final_text)
def simulateTex(text, prefix):
    '''
        Esta função com a ajuda do "alter_make_transformations" consegue repro
        duzir o código de python com as tags de html necessária para identificar
        onde occoreu uma alteração em comparação com o ficheiro de python
        original
    '''
    sys.path.append('../qom_questions_transformer')
    from text_transformer.tt_text_transformer_interface import clear, load_text
    from python_transformer.pt_util.pt_util_file import load_source_code_from_file
    make_transformations_text = alter_make_transformations()
    file1 = open('altered_make_transformations.py','w+')
    file1.writelines(make_transformations_text)
    file1.close()
    
    clear()
    
    import importlib.util
    spec = importlib.util.spec_from_file_location("altered_make_transformations", os.getcwd() + "\\altered_make_transformations.py")
    foo = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(foo)

    seed_value= 0
    text_module = load_text(get_file_content(text))
    
    if os.path.isfile(os.getcwd() + "\\" +  prefix +  'seed.txt'):
        seedFile = get_file_content(os.getcwd() + "\\" +  prefix +  'seed.txt')
        seed_value=int(seedFile)
        seed(int(seedFile))
    else:
        if os.path.isfile('seed.txt'):
            seedFile = get_file_content('seed.txt')
            seed(int(seedFile))
        else:
            seed_value = randint(1000, 9999)
            create_file('seed.txt', str(seed_value))
            seed(int(seed_value))
    foo.make_transformations()
    alter_full_program(prefix)
    simulateTex_values(text_module.to_string(),prefix, seed_value)