<filename>src/main.py<gh_stars>0
def program(file):
    counter = 0
    prepare_dt = pd.DataFrame(columns=main_head, dtype=str)

    eidos = pd.read_csv(os.path.join(source, 'input', file), sep=',',
                        header=None, index_col=None, usecols=[12, 15, 11, 25, 29, 30, 37])
    # 33 :  perigr, 34: hmer, 35: parasta, 45: teliki timi
    eidos['parastatiko'] = eidos[12].str.split(' ').apply(lambda x: str(x[0].replace('0', '') + x[4]))
    eidos['poios'] = eidos[15].str.split(' ').apply(lambda x: str(x[1] + ' ' + x[2]))
    # TODO: Seperate respected dbases
    eidos = eidos.drop(columns=[12, 15])

    for i in eidos[25].values:
        test = desymbolize.lower_remover(i)
        # Gold!!! Level up!
        pointer = 'empty'
        # TODO: Make it better (hint function, take hlek, etc)
        if any(map(test.__contains__, hlektrika)):
            pointer = 'hlek'
        elif any(map(test.__contains__, hlektronika)):
            pointer = 'hlen'
        elif any(map(test.__contains__, epipla)):
            pointer = 'epipl'
        elif any(map(test.__contains__, analwsima)):
            pointer = 'anal'
        else:
            pointer = 'anal'

        organizer.i_organize(eidos, prepare_dt, counter, pointer)
        counter += 1

    double_dealer = prepare_dt.duplicated(subset=['παραστατικο'], keep=False)
    dublin = 10000
    for i, x in zip(double_dealer, prepare_dt.iloc[:]['α/α']):
        if i:
            prepare_dt.loc[x, 'α/α'] = str(dublin)
        else:
            dublin += 1

    mera = 19
    minas = 11
    xronos = 2019
    double_finder(prepare_dt, 'παραστατικο')

    # TODO: Προσοχή όταν πάμε απο έτος σε έτος
    prepare_dt = prepare_dt[(prepare_dt['ημερ'].str.split('/').str[0].astype(int) > mera) &
                            (prepare_dt['ημερ'].str.split('/').str[1].astype(int) >= minas) &
                            (prepare_dt['ημερ'].str.split('/').str[2].astype(int) == xronos)]
    prepare_dt.to_csv(os.path.join(os.path.join(source, 'output', 'Κινήσεις Ζιάκα.csv')), encoding='1253', index=None, sep=';')
    prepare_dt = prepare_dt.sort_values(by=prepare_dt.columns[5])
    shutil.copy('./temp/synalasomenoi_hyper_ziaka.csv', os.path.join(source, 'output', 'ziaka_traders.csv'))
    with open(f'{os.path.join(source, "Τελευταία Ημερομηνία Γέφυρας")}\\Τελευταία Γέφυρα {prepare_dt[prepare_dt.columns[5]].head(1).values[0].replace("/", "-")} - {prepare_dt[prepare_dt.columns[5]].tail(1).values[0].replace("/", "-")}', 'w+'):
        pass


if __name__ == '__main__':
    import os
    import shutil

    import pandas as pd

    import desymbolize
    import organizer
    from double_dealer import double_finder

    source = '\\'.join(os.path.abspath(__file__).split('\\')[:-2])
    tree = ['Τελευταία Ημερομηνία Γέφυρας',
            'output', 'input', 'src\\processed', 'src\\temp']

    for dir in tree:
        if not os.path.isdir(os.path.join(source, dir)):
            os.makedirs(os.path.join(source, dir))

    for i in os.listdir(os.path.join(source, 'Τελευταία Ημερομηνία Γέφυρας')):
        os.remove(os.path.join(source, 'Τελευταία Ημερομηνία Γέφυρας', i))

    for i in os.listdir(os.path.join(source, 'output')):
        os.remove(os.path.join(source, 'output', i))

    for i in os.listdir('./processed'):
        os.remove(os.path.join('./processed', i))

    hlektrika = ['καφετ', 'βραστ', 'σαντ', 'εστια', 'κουζ', 'στεγν',
                 'απορροφ', 'σεσουαρ', 'φουρ', 'ψυγ', 'πλυντ', 'καταψυ',
                 'θερμαστρα', 'σιδερ', 'micro lg', 'αφυγρα', 'πρεσσ', 'σκουπ',
                 'μπαρμπ', 'φραπ', 'κοπτ', 'ραβδ', 'γεννη', 'ξυρισ', 'robot',
                 'μπρ', 'kataψυκτης', 'convector', 'κλιμ', 'συστημα σιδ',
                 'ηλιακος', 'φρυτ', 'κουρε', 'πολυκ', 'γυναικ', 'τοστ',
                 'γκριλ', 'αποχυ', 'πολυπρ', 'απορροφ', 'ανεμ', 'moulti', 'μιξ', 'καλοριφ']

    hlektronika = ['τηλε', 'smart', 'tabl', 'playstation', 'noteb']

    epipla = ['ντου', 'βιβλ', 'στρωμ', 'επιπ', 'γραφ', 'καρεκ', 'κομο',
              'συρτα', 'τραπεζ', 'καναπ', 'κρεβ', 'βαση', 'σαλον', 'ερμαρ', 'νεροχ']
    analwsima = ['τηγα', 'σακου', 'κατσ']

    main_head = ['α/α', 'ειδος', 'κεπυο', 'υποχρεος_υποβ', 'κωδ. συναλ',
                 'ημερ', 'αιτια', 'παραστατικο', 'αξια_κεπυο', 'λογαριασμος',
                 'υποχρεος', 'ποσοστο', 'καθ. αξια', 'αξια φπα', 'προσιμο', 'γεν_λογαριασμος']

    for i in os.listdir(os.path.join(source, 'input')):
        program(i)
        shutil.move(os.path.join(source, 'input', i), './processed')
<filename>src/main.py<gh_stars>0
def program(file):
    counter = 0
    prepare_dt = pd.DataFrame(columns=main_head, dtype=str)

    eidos = pd.read_csv(os.path.join(source, 'input', file), sep=',',
                        header=None, index_col=None, usecols=[12, 15, 11, 25, 29, 30, 37])
    # 33 :  perigr, 34: hmer, 35: parasta, 45: teliki timi
    eidos['parastatiko'] = eidos[12].str.split(' ').apply(lambda x: str(x[0].replace('0', '') + x[4]))
    eidos['poios'] = eidos[15].str.split(' ').apply(lambda x: str(x[1] + ' ' + x[2]))
    # TODO: Seperate respected dbases
    eidos = eidos.drop(columns=[12, 15])

    for i in eidos[25].values:
        test = desymbolize.lower_remover(i)
        # Gold!!! Level up!
        pointer = 'empty'
        # TODO: Make it better (hint function, take hlek, etc)
        if any(map(test.__contains__, hlektrika)):
            pointer = 'hlek'
        elif any(map(test.__contains__, hlektronika)):
            pointer = 'hlen'
        elif any(map(test.__contains__, epipla)):
            pointer = 'epipl'
        elif any(map(test.__contains__, analwsima)):
            pointer = 'anal'
        else:
            pointer = 'anal'

        organizer.i_organize(eidos, prepare_dt, counter, pointer)
        counter += 1

    double_dealer = prepare_dt.duplicated(subset=['παραστατικο'], keep=False)
    dublin = 10000
    for i, x in zip(double_dealer, prepare_dt.iloc[:]['α/α']):
        if i:
            prepare_dt.loc[x, 'α/α'] = str(dublin)
        else:
            dublin += 1

    mera = 19
    minas = 11
    xronos = 2019
    double_finder(prepare_dt, 'παραστατικο')

    # TODO: Προσοχή όταν πάμε απο έτος σε έτος
    prepare_dt = prepare_dt[(prepare_dt['ημερ'].str.split('/').str[0].astype(int) > mera) &
                            (prepare_dt['ημερ'].str.split('/').str[1].astype(int) >= minas) &
                            (prepare_dt['ημερ'].str.split('/').str[2].astype(int) == xronos)]
    prepare_dt.to_csv(os.path.join(os.path.join(source, 'output', 'Κινήσεις Ζιάκα.csv')), encoding='1253', index=None, sep=';')
    prepare_dt = prepare_dt.sort_values(by=prepare_dt.columns[5])
    shutil.copy('./temp/synalasomenoi_hyper_ziaka.csv', os.path.join(source, 'output', 'ziaka_traders.csv'))
    with open(f'{os.path.join(source, "Τελευταία Ημερομηνία Γέφυρας")}\\Τελευταία Γέφυρα {prepare_dt[prepare_dt.columns[5]].head(1).values[0].replace("/", "-")} - {prepare_dt[prepare_dt.columns[5]].tail(1).values[0].replace("/", "-")}', 'w+'):
        pass


if __name__ == '__main__':
    import os
    import shutil

    import pandas as pd

    import desymbolize
    import organizer
    from double_dealer import double_finder

    source = '\\'.join(os.path.abspath(__file__).split('\\')[:-2])
    tree = ['Τελευταία Ημερομηνία Γέφυρας',
            'output', 'input', 'src\\processed', 'src\\temp']

    for dir in tree:
        if not os.path.isdir(os.path.join(source, dir)):
            os.makedirs(os.path.join(source, dir))

    for i in os.listdir(os.path.join(source, 'Τελευταία Ημερομηνία Γέφυρας')):
        os.remove(os.path.join(source, 'Τελευταία Ημερομηνία Γέφυρας', i))

    for i in os.listdir(os.path.join(source, 'output')):
        os.remove(os.path.join(source, 'output', i))

    for i in os.listdir('./processed'):
        os.remove(os.path.join('./processed', i))

    hlektrika = ['καφετ', 'βραστ', 'σαντ', 'εστια', 'κουζ', 'στεγν',
                 'απορροφ', 'σεσουαρ', 'φουρ', 'ψυγ', 'πλυντ', 'καταψυ',
                 'θερμαστρα', 'σιδερ', 'micro lg', 'αφυγρα', 'πρεσσ', 'σκουπ',
                 'μπαρμπ', 'φραπ', 'κοπτ', 'ραβδ', 'γεννη', 'ξυρισ', 'robot',
                 'μπρ', 'kataψυκτης', 'convector', 'κλιμ', 'συστημα σιδ',
                 'ηλιακος', 'φρυτ', 'κουρε', 'πολυκ', 'γυναικ', 'τοστ',
                 'γκριλ', 'αποχυ', 'πολυπρ', 'απορροφ', 'ανεμ', 'moulti', 'μιξ', 'καλοριφ']

    hlektronika = ['τηλε', 'smart', 'tabl', 'playstation', 'noteb']

    epipla = ['ντου', 'βιβλ', 'στρωμ', 'επιπ', 'γραφ', 'καρεκ', 'κομο',
              'συρτα', 'τραπεζ', 'καναπ', 'κρεβ', 'βαση', 'σαλον', 'ερμαρ', 'νεροχ']
    analwsima = ['τηγα', 'σακου', 'κατσ']

    main_head = ['α/α', 'ειδος', 'κεπυο', 'υποχρεος_υποβ', 'κωδ. συναλ',
                 'ημερ', 'αιτια', 'παραστατικο', 'αξια_κεπυο', 'λογαριασμος',
                 'υποχρεος', 'ποσοστο', 'καθ. αξια', 'αξια φπα', 'προσιμο', 'γεν_λογαριασμος']

    for i in os.listdir(os.path.join(source, 'input')):
        program(i)
        shutil.move(os.path.join(source, 'input', i), './processed')
# 33 :  perigr, 34: hmer, 35: parasta, 45: teliki timi # TODO: Seperate respected dbases # Gold!!! Level up! # TODO: Make it better (hint function, take hlek, etc) # TODO: Προσοχή όταν πάμε απο έτος σε έτος