예제 #1
0
def test_topostfix():
    case = (
       ("8-(3+2*6)/5+4", "8 3 2 6 * + 5 / - 4 +"),
       ("((5+7)/3*7-(3*2))+(7-3)*3+2*5+4*5+1*6+1*5", "5 7 + 3 / 7 * 3 2 * - 7 3 - 3 * + 2 5 * + 4 5 * + 1 6 * + 1 5 * +"),
       ("1*((2+3) /2) ^5", "1 2 3 + 2 / 5 ** *"),
       ("-1+((2+3)*4/5)", "1 - 2 3 + 4 * 5 / +"),
       ("-1+-5", "1 - 5 - +"),
       ("pow(3,2)+ sin(45)", "3 2 , pow 45 sin +"),
       ("-$a+$b*(-$c+$d)+$e", "_a - _b _c - _d + * + _e +"),
       ("pOw(1*(2+3), 6+5)", "1 2 3 + * 6 5 + , pow"),
       ("-1+5*-6", "1 - 5 6 - * +"),
       ("Sum([1+1,5+6*7,POW (3,2)])", "1 1 + 5 6 7 * + , 3 2 , pow , sum"),
       ("5/ 4mod sin(1)+SUm([1,2])^3.5* 2-4", "5 4 1 sin % / 1 2 , sum 3.5 ** 2 * + 4 -"),
       ("4", "4"),
       ("-sin(45)", "45 sin -"),
       ("-+-+sin(45)", "45 sin + - + -"),
       ("$var", "_var"),
       ("-(+5+6)", "5 + 6 + -"),
       ("$vAr", "_var"),
    )

    for c, r in case:
        exp = Convertor.preprocessing(c)
        gtk = Convertor.tokenize(exp)
        rr = Convertor.topostfix(gtk)
        assert " ".join(map(str, rr)) == r
예제 #2
0
    def select(self):
        self.convertor = Convertor(
            filedialog.askopenfilename(initialdir="/",
                                       title="Select file",
                                       filetypes=(("jpeg", "*.jpg"), ("png",
                                                                      "*.png"),
                                                  ("all files", "*.*"))))

        if self.target:
            self.target.destroy()
        self.target = tk.Label(self.app,
                               text='TExt',
                               image=self.convertor.tkImg)
        self.target.grid(row=1, column=0)
        self.filemenu.entryconfigure(1, state=tk.NORMAL)
        self.filemenu.entryconfigure(2, state=tk.NORMAL)
        self.funcmenu.entryconfigure(0, state=tk.NORMAL)
        self.funcmenu.entryconfigure(1, state=tk.NORMAL)
        self.funcmenu.entryconfigure(2, state=tk.NORMAL)
        self.filtermenu.entryconfigure(0, state=tk.NORMAL)
        self.filtermenu.entryconfigure(1, state=tk.NORMAL)
        self.filtermenu.entryconfigure(2, state=tk.NORMAL)
        self.filtermenu.entryconfigure(3, state=tk.NORMAL)
        self.filtermenu.entryconfigure(4, state=tk.NORMAL)
        self.filtermenu.entryconfigure(5, state=tk.NORMAL)
예제 #3
0
 def convert_fields(self):
     converter = Convertor()
     self.op = converter.binary_to_decimal(self.op)
     self.rs = converter.binary_to_decimal(self.rs)
     self.rt = converter.binary_to_decimal(self.rt)
     self.rd = converter.binary_to_decimal(self.rd)
     self.shamt = converter.binary_to_decimal(self.shamt)
     self.funct = converter.binary_to_decimal(self.funct)
예제 #4
0
def check(wdbconn, dbsrc, dbdst, conf, count):
    '''
    检测转换后的数据的正确性
    '''
    check_cond = conf.get('check')
    if check_cond is None:
        sys.stderr.write(u'无法校验数据,需要在配置文件中指定 check 字段')
        return

    tbfrom, tbto = dbsrc + '.' + conf['from'], dbdst + '.' + conf['to']
    where = conf.get('where', '1')
    update_by = conf.get('update_by')

    from convertor import Convertor
    c = Convertor(conf['map'], conf.get('const'), wdbconn)
    progress = make_progress(wdbconn, tbfrom, where, count)

    check_where = conf.get('check_where', '1')
    check_src_use_where = conf.get('check_src_use_where', False)
    if not check_src_use_where:
        where = '1'
    rand_sql = make_check_rand_sql(tbto, check_where)
    limit = 0
    ncomm = 0
    while limit < count:
        # 从目标数据随机取出一条数据
        with wdbconn.cursor() as wcsr:
            wcsr.execute(rand_sql)
            dst_data = wcsr.fetchone()
            if dst_data is None:
                sys.stderr.write(u'数据不足,无法检测')
                break
            # 获取对应的源数据
            src_sql = make_check_src_sql(c.keys, tbfrom, where, dst_data,
                                         check_cond)
            wcsr.execute(src_sql)
            src_data = wcsr.fetchall()

            for sd in src_data:
                src_dst_data = c.process(sd)
                # 比较双方的数据
                if compare(src_dst_data, dst_data):
                    ncomm += 1
                    break
        progress.update(1)
        limit += 1

    progress.close()

    ndiff = count - ncomm
    print(u'''随机检测条数 %d
相同 %d
不同 %d
正确率 %.2f
错误率 %.2f''' % (count, ncomm, ndiff, ncomm * 100.0 / count,
               ndiff * 100.0 / count))
예제 #5
0
def __test__(dp, model, fbid):
    "Using for quick test a crawled account"

    # Create a convertor and convert files in a account to vector
    convertor = Convertor("data")
    profile = convertor.read_profile(fbid)
    profile = pd.DataFrame([profile])

    # Load datapreprocessing object and nomalizing vector
    datapreprocessing = load(dp)
    profile = datapreprocessing.convert(profile)

    # Load model and predict result
    randomforest = load(model)
    result = randomforest.predict_proba(profile)[0]

    print(result)
예제 #6
0
def test_preprocessing():
    case = (
        ("1+1", "1+1"),
        ("1 + 1 ", "1 + 1"),
        (" 1 +1", "1 +1"),
        ("1 pOw $e", "1 pow _e"),
    )
    for c, r in case:
        assert Convertor.preprocessing(c) == r
예제 #7
0
    def __init__(self, folder="data"):
        self.folder = folder
        self.filename = input("Enter EPUB Filename: ")
        self.lang_src = "en"
        self.lang_tgt = "fr"

        path_without_ext = os.path.join(self.folder, self.filename).lower()
        path_with_ext = path_without_ext + ".epub"

        if os.path.exists(path_with_ext):
            c = Convertor(path_without_ext)
            c.to_txt()

            ##t = Translator(path_without_ext, self.lang_src, self.lang_tgt)
            #t.google_translate()

            #r = Reader(t.filename, self.lang_tgt)
            #r.play()

        else:
            print("File {} is Missing".format(path))
예제 #8
0
파일: calculator.py 프로젝트: MrLYC/GPCalc
    def save_func(self, func, exp):
        """保存函数"""
        if func.startswith(Configuration.FuncPrefix):

            if exp.find(Configuration.UserDeclarator) != -1:
                raise Exception("invalid syntax")
            if exp.find("=") != -1:
                raise Exception("invalid syntax")

            func = Convertor.format_usrname(func)
            lmd = Supporter.args2list(func_lambda(exp, self))#包装自定义函数
            self._handler.add_api(func, lmd)#加入到虚拟空间中
        else:
            raise Exception("Function should starts with #")
예제 #9
0
def convert(wdbconn, rdbconn, dbsrc, dbdst, conf):
    limit = max(conf.get('limit', 0), 0)
    tbfrom, tbto = dbsrc + '.' + conf['from'], dbdst + '.' + conf['to']
    where = conf.get('where', '1')
    update_by = conf.get('update_by')

    from convertor import Convertor
    c = Convertor(conf['map'], conf.get('const'), wdbconn)
    progress = make_progress(wdbconn, tbfrom, where, limit)

    rcsr = rdbconn.cursor()
    srcsql = make_src_sql(c.keys, tbfrom, where)
    rcsr.execute(srcsql)

    # 获取数据表
    offset, step = 0, 200
    while limit == 0 or offset < limit:
        with wdbconn.cursor() as wcsr:
            srcdata = rcsr.fetchmany(step)

            # 因为每条 sql 可能都不一样,所以不能使用 executemany
            for sd in srcdata:
                dstdata = c.process(sd)
                dstsql = make_dst_sql(dstdata, tbto, update_by)
                # print(dstsql)
                if dstsql:
                    wcsr.execute(dstsql, tuple(dstdata.values()))

        wdbconn.commit()
        progress.update(step)
        if len(srcdata) < step:
            break
        offset += step

    rcsr.close()
    progress.close()
예제 #10
0
 def get_elements(self):
     self.elements = Convertor.convert(self.entry.get('1.0', END))
     if self.elements == False:
         showerror(
             title='Помилка!',
             message=
             f"Введіть правильну кількість символів '{self.size**2}' та переконайтеся, що ви все правильно ввели!"
         )
     elif len(self.elements) != self.size**2:
         showerror(
             title='Помилка!',
             message=
             f"Введіть правильну кількість символів '{self.size**2}' та переконайтеся, що ви все правильно ввели!"
         )
     else:
         self.matr = self.elements
         self.convert_to_matr()
예제 #11
0
def test_grapetoken():
    exp = "sum([-1+1*2,4+5/2^2,3mod mod(3,2)])"
    res = (
        "sum",
        "(",
        "(",
        "-",
        "1",
        "+",
        "1",
        "*",
        "2",
        ",",
        "4",
        "+",
        "5",
        "/",
        "2",
        "**",
        "2",
        ",",
        "3",
        "%",
        "mod",
        "(",
        "3",
        ",",
        "2",
        ")",
        ")",
        ")",
    )

    rr = Convertor.tokenize(exp)
    for c,r in zip(rr, res):
        assert str(c.value) == r

    assert rr[3].type == ElementTypeEnum.UOP
    assert isinstance(rr[0].value, operators.UnaryOperator)
    assert rr[5].type == ElementTypeEnum.BOP
    assert isinstance(rr[5].value, operators.BinaryOperator)
예제 #12
0
from conf import Cfg
from finder import Finder
from convertor import Convertor
from storage import Storage

import glob
import os

from parser import Parser
import scholarly

cfg = Cfg()
db = Storage(cfg)
db.load()
finder = Finder(cfg)
convertor = Convertor(cfg)


def process_file(f):
    checksum = Storage.file_checksum(f)
    if checksum in db.data:
        print("file {} already processed ({})".format(f, checksum))
        return
    db.store(checksum, {"pdf": f})
    convertor.convert(f)


for f in finder.find_all():
    process_file(f)
    db.load()
예제 #13
0
class Main(tk.Frame):
    def __init__(self, frame):
        super().__init__(root)
        self.frame = frame
        self.app = tk.Frame(frame, bg='Gray')
        self.app.pack()

        self.target = False
        self.img = False
        self.convertor = False

        self.menu = tk.Menu(frame)
        frame.config(menu=self.menu)

        self.filemenu = tk.Menu(self.menu, tearoff=0)
        self.funcmenu = tk.Menu(self.menu, tearoff=0)
        self.filtermenu = tk.Menu(self.menu, tearoff=0)

        self.menu.add_cascade(label='File', menu=self.filemenu)
        self.menu.add_cascade(label='Functions', menu=self.funcmenu)
        self.menu.add_cascade(label='Filters', menu=self.filtermenu)
        self.menu.add_cascade(label='Face detection', command=self.detection)
        self.menu.add_cascade(label='To original', command=self.original)

        self.filemenu.add_cascade(label='Select', command=self.select)
        self.filemenu.add_cascade(label='Save', command=self.save)
        self.filemenu.add_cascade(label='Save as', command=self.saveAs)
        self.filemenu.entryconfigure(1, state=tk.DISABLED)
        self.filemenu.entryconfigure(2, state=tk.DISABLED)
        self.filemenu.add_separator()
        self.filemenu.add_cascade(label='Exit', command=self.close)

        self.funcmenu.add_cascade(label='Resize', command=self.resize)
        self.funcmenu.add_cascade(label='Blur', command=self.blur)
        self.funcmenu.add_cascade(label='Contour', command=self.contour)
        self.funcmenu.entryconfigure(0, state=tk.DISABLED)
        self.funcmenu.entryconfigure(1, state=tk.DISABLED)
        self.funcmenu.entryconfigure(2, state=tk.DISABLED)

        self.filtermenu.add_cascade(label='Brightness',
                                    command=self.brightness)
        self.filtermenu.add_cascade(label='Negative', command=self.negative)
        self.filtermenu.add_cascade(label='White-Black',
                                    command=self.white_black)
        self.filtermenu.add_cascade(label='Grayscale', command=self.grayscale)
        self.filtermenu.add_cascade(label='Sepia', command=self.sepia)
        self.filtermenu.add_cascade(label='Contrast', command=self.contrast)
        self.filtermenu.entryconfigure(0, state=tk.DISABLED)
        self.filtermenu.entryconfigure(1, state=tk.DISABLED)
        self.filtermenu.entryconfigure(2, state=tk.DISABLED)
        self.filtermenu.entryconfigure(3, state=tk.DISABLED)
        self.filtermenu.entryconfigure(4, state=tk.DISABLED)
        self.filtermenu.entryconfigure(5, state=tk.DISABLED)

        tk.Frame(self.app, width=700, height=0).grid(row=0, column=0)

        tk.Canvas(self.app, width=700, height=400, bg='Gray',
                  bd=0).grid(row=1, column=0)

    def close(self):
        self.frame.destroy()

    def select(self):
        self.convertor = Convertor(
            filedialog.askopenfilename(initialdir="/",
                                       title="Select file",
                                       filetypes=(("jpeg", "*.jpg"), ("png",
                                                                      "*.png"),
                                                  ("all files", "*.*"))))

        if self.target:
            self.target.destroy()
        self.target = tk.Label(self.app,
                               text='TExt',
                               image=self.convertor.tkImg)
        self.target.grid(row=1, column=0)
        self.filemenu.entryconfigure(1, state=tk.NORMAL)
        self.filemenu.entryconfigure(2, state=tk.NORMAL)
        self.funcmenu.entryconfigure(0, state=tk.NORMAL)
        self.funcmenu.entryconfigure(1, state=tk.NORMAL)
        self.funcmenu.entryconfigure(2, state=tk.NORMAL)
        self.filtermenu.entryconfigure(0, state=tk.NORMAL)
        self.filtermenu.entryconfigure(1, state=tk.NORMAL)
        self.filtermenu.entryconfigure(2, state=tk.NORMAL)
        self.filtermenu.entryconfigure(3, state=tk.NORMAL)
        self.filtermenu.entryconfigure(4, state=tk.NORMAL)
        self.filtermenu.entryconfigure(5, state=tk.NORMAL)

    def saveAs(self):
        self.convertor.saveAs(
            filedialog.asksaveasfilename(defaultextension='.png',
                                         initialdir="/",
                                         title="Select file",
                                         filetypes=(("jpeg files", "*.jpg"),
                                                    ("png files", "*.png"))))

    def save(self):
        self.convertor.save()

    def resize(self):
        Resize(self.convertor.resize, self.updateImg)

    def blur(self):
        Blur(self.convertor.blur, self.updateImg)

    def updateImg(self):
        if self.target:
            self.target.destroy()
        self.target = tk.Label(self.app,
                               text='TExt',
                               image=self.convertor.tkImg)
        self.target.grid(row=1, column=0)

    def detection(self):
        self.convertor.detection()
        self.updateImg()

    def contour(self):
        self.convertor.contour()
        self.updateImg()

    def brightness(self):
        Brightness(self.convertor.brightness, self.updateImg)

    def negative(self):
        self.convertor.negative()
        self.updateImg()

    def white_black(self):
        WhiteBlack(self.convertor.white_black, self.updateImg)

    def grayscale(self):
        self.convertor.grayscale()
        self.updateImg()

    def sepia(self):
        self.convertor.sepia()
        self.updateImg()

    def contrast(self):
        Contrast(self.convertor.contrast, self.updateImg)

    def original(self):
        self.convertor.original()
        self.updateImg()
예제 #14
0
def __solver__(conn, addr, data, **kwargs):
    "Resolve a package 'data' come from client"

    # Change data from string to json
    data = json.loads(data)

    # Get parameter server
    if "server" not in kwargs:
        raise Exception("Expected server parameter")
    server = kwargs["server"]

    if "uid" in data:
        uid = data["uid"]
    else:
        uid = None

    # Solve data have key fb_id
    if "fb_id" in data:
        fb_id = scrape_utils.__create_original_link__("https://",
                                                      data["fb_id"])
        while True:
            # Get email and password from server object
            email = server.__email__[server.__current_account__]
            password = server.__password__[server.__current_account__]

            # Create scraper and start scraping facebook account
            try:
                scraper = Scraper2(email, password, verbose="file", sender=uid)
                bSuccess = scraper(fb_id)
            except Exception as e:
                print(str(e))
                scraper.__driver__.close()
                conn.close()
                return

            # Not success if the crawler account is banned
            if bSuccess is not False:
                break

            content = json.dumps({
                "kind": "notify",
                "data": "Error in crawling, restart crawling...",
                "level": None,
                "end": "\n"
            })
            __print__(content, verbose=server.__verbose__, file=uid)

            # Switch account
            server.__current_account__ = (server.__current_account__ +
                                          1) % len(server.__email__)

        content = json.dumps({
            "kind": "notify",
            "data": "Converting crawled data to vector......",
            "level": 0,
            "end": ""
        })
        __print__(content, verbose=server.__verbose__, file=uid)

        # Create convertor and convert crawled data to vector
        convertor = Convertor("data")
        profile = convertor.read_profile(fb_id.split("/")[-1])
        profile = pd.DataFrame([profile])

        content = json.dumps({
            "kind": "notify",
            "data": "Done",
            "level": None,
            "end": "\n"
        })
        __print__(content, verbose=server.__verbose__, file=uid)

        content = json.dumps({
            "kind": "notify",
            "data": "Preprocessing data......",
            "level": 0,
            "end": ""
        })
        __print__(content, verbose=server.__verbose__, file=uid)

        # Load datapreprocessing object and normalizing vector
        datapreprocessing = load("pkg/DataPreprocessingremove.dp")
        profile = datapreprocessing.convert(profile)

        content = json.dumps({
            "kind": "notify",
            "data": "Done",
            "level": None,
            "end": "\n"
        })
        __print__(content, verbose=server.__verbose__, file=uid)

        content = json.dumps({
            "kind": "notify",
            "data": "Predicting using Random forest......",
            "level": 0,
            "end": ""
        })
        __print__(content, verbose=server.__verbose__, file=uid)

        # Load model and predict result
        randomforest = load("pkg/overRandomForestremove.model")
        result = randomforest.predict_proba(profile)[0][0] > 0.6

        content = json.dumps({
            "kind": "notify",
            "data": "Done",
            "level": None,
            "end": "\n"
        })
        __print__(content, verbose=server.__verbose__, file=uid)

        result = "real" if result == True else "fake"

        folder = os.path.join(os.getcwd(), "data")
        target_dir = os.path.join(folder, fb_id.split("/")[-1])
        filename = os.path.join(target_dir, "result.txt")
        with open(filename, mode="w") as f:
            f.write(result)

        content = json.dumps({
            "kind": "result",
            "data": result,
            "level": None,
            "end": "\n"
        })
        __print__(content, verbose=server.__verbose__, file=uid)

        conn.close()
예제 #15
0
파일: test.py 프로젝트: Adnation/convertor
import sys
from convertor import Convertor

input_file_path = sys.argv[1]

if not input_file_path:
	print('please provide input file path.')
	sys.exit()

convertor = Convertor(input_file_path)
convertor.encode()
# convertor.decode()
예제 #16
0
 def convert_fields(self):
     converter = Convertor()
     self.op = converter.binary_to_decimal(self.op)
     self.rs = converter.binary_to_decimal(self.rs)
     self.rt = converter.binary_to_decimal(self.rt)
     self.address = converter.binary_to_decimal(self.address)
예제 #17
0
def __solver__(conn, addr, data, **kwargs):
    "Resolve a package 'data' come from client"

    # Change data from string to json
    data = json.loads(data)

    # Get parameter server
    if "server" not in kwargs:
        raise Exception("Expected server parameter")
    server = kwargs["server"]

    # Solve data have key fb_id
    if "fb_id" in data:
        while True:
            # Get email and password from server object
            email = server.__email__[server.__current_account__]
            password = server.__password__[server.__current_account__]

            # Create scraper and start scraping facebook account
            try:
                scraper = Scraper2(email, password, verbose= "send", sender= conn)
                bSuccess = scraper(data["fb_id"])
            except Exception as e:
                print(str(e))
                scraper.__driver__.close()
                conn.close()
                return

            # Not success if the crawler account is banned
            if bSuccess:
                break
            content = json.dumps({
                "kind": "notify", 
                "data": "Error in crawling, restart crawling...", 
                "level": None, 
                "end": "\n"
                })
            conn.send(content.encode())

            # Switch account
            server.__current_account__ = (server.__current_account__ + 1) % len(server.__email__) 

    
        content = json.dumps({"kind": "notify", "data": "Converting crawled data to vector......", "level": 0, "end": ""})
        conn.send(content.encode())

        # Create convertor and convert crawled data to vector
        convertor = Convertor("data")
        profile = convertor.read_profile(data["fb_id"].split("/")[-1])
        profile = pd.DataFrame([profile])

        content = json.dumps({"kind": "notify", "data": "Done", "level": None, "end": "\n"})
        conn.send(content.encode())
        
        content = json.dumps({"kind": "notify", "data": "Preprocessing data......", "level": 0, "end": ""})
        conn.send(content.encode())
        
        # Load datapreprocessing object and normalizing vector
        datapreprocessing = load("pkg/DataPreprocessingremove.dp")
        profile = datapreprocessing.convert(profile)

        content = json.dumps({"kind": "notify", "data": "Done", "level": None, "end": "\n"})
        conn.send(content.encode())
        
        content = json.dumps({"kind": "notify", "data": "Predicting using Random forest......", "level": 0, "end": ""})
        conn.send(content.encode())
        
        # Load model and predict result
        randomforest = load("pkg/overRandomForestremove.model")
        result = randomforest.predict_proba(profile)[0][0] > 0.6

        content = json.dumps({"kind": "notify", "data": "Done", "level": None, "end": "\n"})
        conn.send(content.encode())

        result = "real" if result == True else "fake"

        content = json.dumps({"kind": "result", "data": result, "level": None, "end": "\n"})
        conn.send(content.encode())
        
        conn.close()
예제 #18
0
파일: calculator.py 프로젝트: MrLYC/GPCalc
 def get_obj(self, name):
     """获取对象"""
     name = Convertor.format_usrname(name)
     return self._handler.Environment.get(name)
예제 #19
0
파일: calculator.py 프로젝트: MrLYC/GPCalc
 def del_objs(self, vars):
     """删除对象"""
     vars = ",".join(Convertor.format_usrname(v) for v in vars)
     self._handler.exec_code("del %s" % vars)
예제 #20
0
파일: calculator.py 프로젝트: MrLYC/GPCalc
 def save_vars(self, vars, vals):
     """保存变量"""
     for n, v in zip(vars, vals):
         n = Convertor.format_usrname(n)
         #实际成为了YCPY虚拟环境中全局变量
         self._handler.add_api(n, v)
예제 #21
0
파일: calculator.py 프로젝트: MrLYC/GPCalc
 def format_exp(self, exp):
     """格式化表达式"""
     return Convertor.format(exp)#获得等价的Python表达式
예제 #22
0
from convertor import Convertor

convertor = Convertor('head_rules.txt')

with open('ctb.bracketed', 'r') as f_in, open('ctb.conll', 'w') as f_out:
    for line in f_in:
        if line.startswith('#'):
            f_out.write(line)
        else:
            deps = convertor.convert(line)
            f_out.write(deps + '\n')
예제 #23
0
def get_hex_input():
    try_again = True
    while try_again:
        hex = input("Enter an instruction: ")
        parameter_one = is_hex(hex)
        parameter_two = is_8_values_long(hex)
        if (parameter_one == True and parameter_two == True):
            try_again = False
        else:
            print("Enter a hexadecimal instruction with 8 characters")
    return hex


registers = Registers()
memory = Memory(50)
convertor = Convertor()

print_registers_and_memory(registers, memory)

on = True
while on:
    instruction = get_hex_input()
    '''
    00430825 - or $1,$2,$3
    00430820 - add $1,$2,$3
    00430822 - sub $1,$2,$3
    00430829 - and $1,$2,$3
    00430826 - xor $1,$2,$3
    20410003 - addi $1,$2,3
    8C410003 - lw $1,3($2)
    AC410003 - sw $1,3($2)
예제 #24
0
Args:
    - None BUT need to change the source code according the where the input/output are
    - TO USE:
        - change the orignal DTAL path
            e.g. path = "/home/alta/BLTSpeaking/ged-kmk/dtal/data/GEM4/indtsv"
        - change the A1, A2, B1, B2, C output paths
            e.g. a1 = "/home/alta/BLTSpeaking/ged-pm574/dtal/data/GEM4-grade-dependent/BLXXXeval3_annotator5_A1.tsv"
Output:
    - .ged.tsv split by grades
'''


import os
from convertor import Convertor

convertor = Convertor()
convertor.read_map(convertor.mapping_file1)
convertor.read_grade(convertor.grading_file1)

def main():
    path = "/home/alta/BLTSpeaking/ged-kmk/dtal/data/GEM4/indtsv"
    print('-------------------------------------------------------')
    print(path)
    print('-------------------------------------------------------')
    files = [os.path.join(path, f) for f in os.listdir(path) if (os.path.isfile(os.path.join(path, f))) and '.tsv' in f]
    files_a1 = []
    files_a2 = []
    files_b1 = []
    files_b2 = []
    files_c = []
    for file in files: