"""
A python tool for batch importing excel/csv files into mysql database.
Author: ryjfgjl
Date: 2020-01-05

"""

Version = "2.0"

# import GUI model
import PySimpleGUI as sg
import traceback
import sys
from common.handleconfig import HandleConfig
sg.ChangeLookAndFeel('dark')
HandleConfig = HandleConfig()

# database connection
host = HandleConfig.handle_config("g", "dbinfo", "host")
port = HandleConfig.handle_config("g", "dbinfo", "port")
user = HandleConfig.handle_config("g", "dbinfo", "user")
passwd = HandleConfig.handle_config("g", "dbinfo", "passwd")
dbname = HandleConfig.handle_config("g", "dbinfo", "dbname")
# file information
file_dir = HandleConfig.handle_config("g", "file", "file_dir")
csv_encoding = HandleConfig.handle_config("g", "file", "csv_encoding")
na_values = HandleConfig.handle_config("g", "file", "na_values")


def exception_format():
    """
Beispiel #2
0
def Launcher():
    sg.ChangeLookAndFeel('LightGreen')

    layout = [
        [
            sg.T('Папка с json файлами'),
            sg.In(key='dir', size=(40, 1)),
            sg.FolderBrowse()
        ],
        [
            sg.T('URL видео'),
            sg.In(key='url', size=(40, 1)),
        ],
        [
            sg.T('Фильтр значений'),
            sg.In(default_text=10, key='filter', size=(40, 1)),
        ],
        # [sg.Frame('LOG', layout=[[sg.Output(size=(65, 15))]])],
        [
            sg.ReadFormButton('Начать', bind_return_key=True),
            sg.SimpleButton('Quit', button_color=('white', 'firebrick3')),
        ]
    ]

    window = sg.Window(
        'JSON to CSV and DB GUI',
        auto_size_text=False,
        auto_size_buttons=False,
        default_element_size=(
            20,
            1,
        ),
        # text_justification='right',
    )

    window.Layout(layout)

    # ---===--- Loop taking in user input --- #
    while True:
        try:
            (button, values) = window.Read()
            # print(button)
            # print(values)
            if button in ('Quit', None):
                break  # exit button clicked

            source_dir = values[
                'dir']  # запись введенного начения директории в переменную
            files = os.listdir(source_dir)  # список всех файлов в директории
            json_files = [file for file in files if '.json' in file
                          ]  # список всех файлов с расширением .json
            url = values[
                'url']  # запись введенного начения адреса видео в переменную
            filter = float(
                values['filter']
            )  # запись введенного значения фильтрации в переменную
            export_to_csv = f'{source_dir}/FINAL.csv'  # файл для сохранения в формате .csv
            export_to_db = f'{source_dir}/FINAL.db'  # файл для сохранения в формате.db
            path_to_excel = f'{source_dir}/FINAL.xlsx'  # файл для сохранения в формате .xlsx

            if button == 'Начать':
                if not source_dir:
                    sg.PopupError('Укажите папку с json файлами')
                elif not files:
                    sg.PopupError('Папку пуста')
                elif not json_files:
                    sg.PopupError('В папке нет json файлов')
                elif not url:
                    sg.PopupError('Укажите url')
                elif not filter:
                    sg.PopupError('Укажите фильтр значений')
                else:
                    try:  # файлы создаются при каждом запуске скрипта, а предидущие версии удаляются
                        os.remove(export_to_csv)
                        os.remove(export_to_db)
                    except FileNotFoundError:
                        pass
                    print(f'Папка с json файлами: {source_dir}')
                    print(f'Адрес видео: {url}')
                    print(f'Параметр для фильтрации: {filter}')
                    print(f'{"_" * 200}')
                    print(f'Обнаружено {len(json_files)} json файлов')
                    episodes = parse_youtube(url)
                    print(f'Получены эпизоды с временными метками: {episodes}')
                    print(f'{"_" * 200}')

                    for file in json_files:  # для каждого json файла в папке
                        try:
                            print(f'\nФайл на обработке: {file}')
                            df = unite_func(source_dir, file, episodes,
                                            filter)  # получить dataframe
                            print('Файл успешно обработан')
                            print(f'Запись в csv: {export_to_csv}')
                            df.to_csv(export_to_csv,
                                      index=False,
                                      header=not os.path.exists(export_to_csv),
                                      mode='a' if os.path.exists(export_to_csv)
                                      else 'a')
                            print(f'Запись в DB: {export_to_db}')
                            con = sl.connect(export_to_db)
                            df.to_sql('frame_of_emotions',
                                      con,
                                      if_exists='append',
                                      index=False)
                            con.commit()
                            con.close()
                        except Exception as inner_error:
                            print(f'Произошла ошибка:\n{inner_error}')
                    else:
                        print(f'\nВсе файлы были успешно обработаны!')
                        print(f'\nСоздание Excel и построение графиков.')
                        create_excel(export_to_csv, path_to_excel)
                        print(f'DONE!\nПроверьте папку {source_dir}')
                        sg.PopupOK(f'    DONE!    ')
        except Exception as error:
            sg.PopupError(f'Произошла ошибка:\n{error}')
Beispiel #3
0
import PySimpleGUI as sg
"""
Turn off padding in order to get a really tight looking layout.
"""

sg.ChangeLookAndFeel('Dark')
sg.SetOptions(element_padding=(0, 0))
layout = [[
    sg.T('Notes:', pad=((3, 0), 0)),
    sg.In(size=(44, 1),
          background_color='white',
          text_color='black',
          key='notes')
],
          [
              sg.T('Output:', pad=((3, 0), 0)),
              sg.T('', size=(44, 1), text_color='white', key='output')
          ],
          [
              sg.CBox('Checkbox:', default=True, pad=((3, 0), 0), key='cbox'),
              sg.Listbox((1, 2, 3, 4), size=(8, 3), key='listbox'),
              sg.Radio('Radio 1', default=True, group_id='1', key='radio1'),
              sg.Radio('Radio 2', default=False, group_id='1', key='radio2')
          ],
          [
              sg.Spin((1, 2, 3, 4), 1, key='spin'),
              sg.OptionMenu((1, 2, 3, 4), key='option'),
              sg.Combo(values=(1, 2, 3, 4), key='combo')
          ], [sg.Multiline('Multiline', size=(20, 3), key='multi')],
          [sg.Slider((1, 10), size=(20, 20), orientation='h', key='slider')],
          [
Beispiel #4
0
def Everything():
    sg.ChangeLookAndFeel('Dark')

    form = sg.FlexForm('Everything bagel', default_element_size=(40, 1))

    column1 = [
        [
            sg.Text('Column 1',
                    background_color='black',
                    justification='center',
                    size=(10, 1))
        ],
        [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 1')],
        [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 2')],
        [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 3')]
    ]

    layout = [
        [
            sg.Text('All graphic widgets in one form!',
                    size=(30, 1),
                    font=("Helvetica", 25))
        ], [sg.Text('Here is some text.... and a place to enter text')],
        [sg.InputText('This is my text')],
        [
            sg.Checkbox('Checkbox'),
            sg.Checkbox('My second checkbox!', default=True)
        ],
        [
            sg.Radio('My first Radio!     ', "RADIO1", default=True),
            sg.Radio('My second Radio!', "RADIO1")
        ],
        [
            sg.Multiline(
                default_text=
                'This is the default Text should you decide not to type anything',
                size=(35, 3)),
            sg.Multiline(default_text='A second multi-line', size=(35, 3))
        ],
        [
            sg.InputCombo(('Combobox 1', 'Combobox 2'), size=(20, 1)),
            sg.Slider(range=(1, 100),
                      orientation='h',
                      size=(34, 20),
                      default_value=85)
        ],
        [
            sg.InputOptionMenu(
                ('Menu Option 1', 'Menu Option 2', 'Menu Option 3'))
        ],
        [
            sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'),
                       size=(30, 3)),
            sg.Slider(range=(1, 100),
                      orientation='v',
                      size=(5, 20),
                      default_value=25),
            sg.Slider(range=(1, 100),
                      orientation='v',
                      size=(5, 20),
                      default_value=75),
            sg.Slider(range=(1, 100),
                      orientation='v',
                      size=(5, 20),
                      default_value=10),
            sg.Column(column1, background_color='black')
        ], [sg.Text('_' * 80)], [sg.Text('Choose A Folder', size=(35, 1))],
        [
            sg.Text('Your Folder',
                    size=(15, 1),
                    auto_size_text=False,
                    justification='right'),
            sg.InputText('Default Folder'),
            sg.FolderBrowse()
        ], [sg.Submit(), sg.Cancel()]
    ]

    button, values = form.LayoutAndRead(layout)

    sg.Popup('Title', 'The results of the form.',
             'The button clicked was "{}"'.format(button), 'The values are',
             values)
Beispiel #5
0
import PySimpleGUI as sg
from bulk_archiver import Extractall, MakeArchiver
from __init__ import logger


# sg.theme('Dark Blue 3')
sg.ChangeLookAndFeel('GreenTan')

task_types = [
    {'text': '批量解压', 'key': '__ExtractAll__', 'tooltip': '批量解压任务, 解压来源目录下包括子目录下的所有7z, zip, rar文件'},
    {'text': '批量压缩', 'key': '__MakeArchiver__', 'tooltip': '批量压缩任务, 仅压缩来源目录下的第一层文件夹'},
]

# radio = [[sg.Radio(task['text'], 1),] for task in task_types]
radio = [sg.Radio(task['text'], 1, key=task['key'], tooltip=task['tooltip']) for task in task_types]

layout = [
    [sg.Text('批量压缩解压工具', size=(20, 1)),],
    # [sg.Text('选择要解压的文件所在的根目录(解压所选择的文件夹下所有的压缩文件)')],
    # [sg.Radio('批量解压', 1, default=True, key='__TASK_UNZIP__', tooltip='批量解压任务'), sg.Radio('批量压缩', group_id=1, default=False, key='__TASK_ZIP__', tooltip='批量压缩任务')]
    radio,
    [sg.Text('选择来源文件夹', size=(16, 1)), sg.FolderBrowse(key='__SOURCE__', size=(16, 1))],
    [sg.Text('选择目标文件夹', size=(16, 1)), sg.FolderBrowse(key='__TARGET__', size=(16, 1))],
    [sg.Text('解压密码(非必须)', size=(16, 1), justification='left'), sg.Input("", key="__PWD__", size=(16, 1))],
    [sg.Frame(layout=[[sg.Submit("Submit"), sg.Cancel("Cancel")]], title='')]
    
]

window = sg.Window('批量解压和批量压缩程序', layout, size=(500, 350), element_justification='center', grab_anywhere=False, resizable=False)

def run_gui():
def main():
    # Make the layout less cluttered and allow bulk-changes to text formatting
    def Txt(text, **kwargs):
        return (sg.Text(text, font=('Helvetica 8'), **kwargs))

    # Update a Text Element
    def Txt_Update(window, key, value):
        window.FindElement(key).Update(value)

    # ----------------  Create Window  ----------------
    sg.ChangeLookAndFeel('Black')
    sg.SetOptions(element_padding=(0, 0), margins=(1, 1), border_width=0)

    def GraphColumn(name, key):
        return sg.Column(
            [
                [
                    Txt(name, key=key + 'TXT_'),
                ],
                [
                    sg.Graph(
                        (GRAPH_WIDTH, GRAPH_HEIGHT),
                        (0, 0),
                        (GRAPH_WIDTH, 100),
                        background_color='black',
                        key=key + 'GRAPH_',
                    )
                ],
            ],
            pad=(2, 2),
        )

    layout = [
        [
            sg.Text('System Status Dashboard' + ' ' * 18),
            sg.Button('',
                      image_data=red_x,
                      button_color=('black', 'black'),
                      key='Exit',
                      tooltip='Closes window')
        ],
        [
            GraphColumn('Net Out', '_NET_OUT_'),
            GraphColumn('Net In', '_NET_IN_')
        ],
        [
            GraphColumn('Disk Read', '_DISK_READ_'),
            GraphColumn('Disk Write', '_DISK_WRITE_')
        ],
        [
            GraphColumn('CPU Usage', '_CPU_'),
            GraphColumn('Memory Usage', '_MEM_')
        ],
    ]

    window = sg.Window(
        'PSG System Dashboard',
        keep_on_top=True,
        auto_size_buttons=False,
        grab_anywhere=True,
        no_titlebar=True,
        default_button_element_size=(12, 1),
        return_keyboard_events=True,
        alpha_channel=ALPHA,
        use_default_focus=False,
    ).Layout(layout).Finalize()

    # setup graphs & initial values
    netio = psutil.net_io_counters()
    net_graph_in = DashGraph(window.FindElement('_NET_IN_GRAPH_'),
                             netio.bytes_recv, '#23a0a0')
    net_graph_out = DashGraph(window.FindElement('_NET_OUT_GRAPH_'),
                              netio.bytes_sent, '#56d856')

    diskio = psutil.disk_io_counters()
    disk_graph_write = DashGraph(window.FindElement('_DISK_WRITE_GRAPH_'),
                                 diskio.write_bytes, '#be45be')
    disk_graph_read = DashGraph(window.FindElement('_DISK_READ_GRAPH_'),
                                diskio.read_bytes, '#5681d8')

    cpu_usage_graph = DashGraph(window.FindElement('_CPU_GRAPH_'), 0,
                                '#d34545')
    mem_usage_graph = DashGraph(window.FindElement('_MEM_GRAPH_'), 0,
                                '#BE7C29')

    print(psutil.cpu_percent(percpu=True))
    # ----------------  main loop  ----------------
    while (True):
        # --------- Read and update window once a second--------
        event, values = window.Read(timeout=1000)
        if event in (
                None, 'Exit'
        ):  # Be nice and give an exit, expecially since there is no titlebar
            break
        # ----- Network Graphs -----
        netio = psutil.net_io_counters()
        write_bytes = net_graph_out.graph_value(netio.bytes_sent)
        read_bytes = net_graph_in.graph_value(netio.bytes_recv)
        Txt_Update(window, '_NET_OUT_TXT_',
                   'Net out {}'.format(human_size(write_bytes)))
        Txt_Update(window, '_NET_IN_TXT_',
                   'Net In {}'.format(human_size(read_bytes)))
        # ----- Disk Graphs -----
        diskio = psutil.disk_io_counters()
        write_bytes = disk_graph_write.graph_value(diskio.write_bytes)
        read_bytes = disk_graph_read.graph_value(diskio.read_bytes)
        Txt_Update(window, '_DISK_WRITE_TXT_',
                   'Disk Write {}'.format(human_size(write_bytes)))
        Txt_Update(window, '_DISK_READ_TXT_',
                   'Disk Read {}'.format(human_size(read_bytes)))
        # ----- CPU Graph -----
        cpu = psutil.cpu_percent(0)
        cpu_usage_graph.graph_percentage_abs(cpu)
        Txt_Update(window, '_CPU_TXT_', '{0:2.0f}% CPU Used'.format(cpu))
        # ----- Memory Graph -----
        mem_used = psutil.virtual_memory().percent
        mem_usage_graph.graph_percentage_abs(mem_used)
        Txt_Update(window, '_MEM_TXT_', '{}% Memory Used'.format(mem_used))
Beispiel #7
0
 def __init__(self, b_size=4):
   self.b_size = b_size
   self.board = None
   self.window = None
   sg.ChangeLookAndFeel('Reddit')
Beispiel #8
0
def main():
    global g_interval, g_procs, g_exit

    # ----------------  Create Form  ----------------
    sg.ChangeLookAndFeel('Black')
    layout = [
        [
            sg.Text('',
                    size=(8, 1),
                    font=('Helvetica', 20),
                    text_color=sg.YELLOWS[0],
                    justification='center',
                    key='text')
        ],
        [
            sg.Text('',
                    size=(30, 8),
                    font=('Courier New', 12),
                    text_color='white',
                    justification='left',
                    key='processes')
        ],
        [
            sg.Exit(button_color=('white', 'firebrick4'),
                    pad=((15, 0), 0),
                    size=(9, 1)),
            sg.Spin([x + 1 for x in range(10)], 3, key='spin')
        ],
    ]

    window = sg.Window('CPU Utilization',
                       no_titlebar=True,
                       keep_on_top=True,
                       alpha_channel=.8,
                       grab_anywhere=True).Layout(layout)

    # start cpu measurement thread
    thread = Thread(target=CPU_thread, args=(None, ))
    thread.start()
    timeout_value = 1  # make first read really quick
    g_interval = 1
    # ----------------  main loop  ----------------
    while (True):
        # --------- Read and update window --------
        event, values = window.Read(timeout=timeout_value,
                                    timeout_key='Timeout')
        # --------- Do Button Operations --------
        if event is None or event == 'Exit':
            break

        timeout_value = int(values['spin']) * 1000

        cpu_percent = g_cpu_percent
        display_string = ''
        if g_procs:
            # --------- Create list of top % CPU porocesses --------
            try:
                top = {proc.name(): proc.cpu_percent() for proc in g_procs}
            except:
                pass

            top_sorted = sorted(top.items(),
                                key=operator.itemgetter(1),
                                reverse=True)
            if top_sorted:
                top_sorted.pop(0)
            display_string = ''
            for proc, cpu in top_sorted:
                display_string += '{:2.2f} {}\n'.format(cpu / 10, proc)

        # --------- Display timer and proceses in window --------
        window.FindElement('text').Update('CPU {}'.format(cpu_percent))
        window.FindElement('processes').Update(display_string)

    g_exit = True
    thread.join()
    def _choose_auto_watches(self, my_locals):
        sg.ChangeLookAndFeel(COLOR_SCHEME)
        num_cols = 3
        output_text = ''
        num_lines = 2
        cur_col = 0
        layout = [[
            sg.Text('Choose your "Auto Watch" variables',
                    font='ANY 14',
                    text_color='red')
        ]]
        longest_line = max([len(key) for key in my_locals])
        line = []
        sorted_dict = {}
        for key in sorted(my_locals.keys()):
            sorted_dict[key] = my_locals[key]
        for key in sorted_dict:
            line.append(
                sg.CB(key,
                      key=key,
                      size=(longest_line, 1),
                      default=self.local_choices[key]
                      if key in self.local_choices else False))
            if cur_col + 1 == num_cols:
                cur_col = 0
                layout.append(line)
                line = []
            else:
                cur_col += 1
        if cur_col:
            layout.append(line)

        layout += [[
            sg.Text('Custom Watch (any expression)'),
            sg.Input(default_text=self.custom_watch,
                     size=(40, 1),
                     key='_CUSTOM_WATCH_')
        ]]
        layout += [[
            sg.Ok(),
            sg.Cancel(),
            sg.Button('Clear All'),
            sg.Button('Select [almost] All', key='_AUTO_SELECT_')
        ]]

        window = sg.Window('All Locals', layout, icon=PSGDebugLogo).Finalize()

        while True:  # event loop
            event, values = window.Read()
            if event in (None, 'Cancel'):
                break
            elif event == 'Ok':
                self.local_choices = values
                self.custom_watch = values['_CUSTOM_WATCH_']
                break
            elif event == 'Clear All':
                sg.PopupQuickMessage('Cleared Auto Watches',
                                     auto_close=True,
                                     auto_close_duration=3,
                                     non_blocking=True,
                                     text_color='red',
                                     font='ANY 18')
                for key in sorted_dict:
                    window.Element(key).Update(False)
                window.Element('_CUSTOM_WATCH_').Update('')
            elif event == 'Select All':
                for key in sorted_dict:
                    window.Element(key).Update(False)
            elif event == '_AUTO_SELECT_':
                for key in sorted_dict:
                    window.Element(key).Update(not key.startswith('_'))

        # exited event loop
        window.Close()
        sg.ChangeLookAndFeel('SystemDefault')
Beispiel #10
0
    layout = [
        [
            sg.Slider(orientation='horizontal',
                      range=(0, 100),
                      enable_events=True,
                      tick_interval=25)
        ],
        [
            sg.Menu(menu_definition=[[
                'File', ['New::new-file', 'Open::open-file']
            ]])
        ],
        # [
        #     sg.Menu(menu_definition=[['&File', ['!&Open', '&Save::savekey', '---', '&Properties', 'E&xit']],
        #     ['&Edit', ['!&Paste', ['Special', 'Normal', ], 'Undo'], ],
        #     ['&Debugger', ['Popout', 'Launch Debugger']],
        #     ['&Toolbar', ['Command &1', 'Command &2', 'Command &3', 'Command &4']],
        #     ['&Help', '&About...'], ])
        # ],
    ]
    return layout


if __name__ == '__main__':
    sg.ChangeLookAndFeel('DarkGrey')
    window = sg.Window(title='Window', layout=init_layout(), margins=(100, 50))
    while True:
        event, values = window.read()
        if (event is not None) or (values is not None):
            print(f'E: {event},\tV: {values}')
    window.close()
Beispiel #11
0
def main():
    # init -------------------------------------------------------------
    while True:     # INIT cycle  --------------------------------------
        sg.ChangeLookAndFeel('SystemDefault')
        _gl = Class_GLBL()
        #
        rep = _gl.read_cfg_soft()
        if rep[0] > 0:
            err_lmb('main', s_lmb('Could not read table *cfg_soft*!') + s_lmb(rep[1]))
            return 0
        #
        _gl.trm.rd_term_FUT()
        if _gl.trm.err_status > 0:
            err_lmb('main', s_lmb('Could not read term *data_file*!') + s_lmb(_gl.trm.err_status))
        else:
            #ok_lmb('main', s_lmb('Read term *data_file* successfully !'))
            os.system('cls')  # on windows
        #
        _gl.trm.rd_term_HST()
        if _gl.trm.err_status > 0:
            err_lmb('main', s_lmb('Could not read term *hist_file*!') + s_lmb(_gl.trm.err_status))
        else:
            #ok_lmb('main', s_lmb('Read term *hist_file* successfully !'))
            os.system('cls')  # on windows
        break
    #
    wndw = sg.Window('START').Layout([menu_def, [sg.Exit()]])
    wndw = wndw_menu_CFG_SOFT(wndw, _gl)
    #
    while True:     # MAIN cycle  --------------------------------------
        # for sg.Input must be => wndw.Read()  OR  timeout > 10000
        evn, val = wndw.Read(timeout = 3000)
        print('----------------------------------------------')
        print('evn = ', evn, '     val =', val)
        if evn in (None, 'Exit'): break
        #
        if evn == '__TIMEOUT__':
            try:
                #--- Read file DATA  ---------------------------------------
                _gl.trm.rd_term_FUT()
                _gl.stastus_bar = _gl.trm.account.dt + 3*' '
                if _gl.trm.err_status > 0:
                    _gl.stastus_bar += 'Error DATA - ' + str(_gl.trm.err_status)
                    _gl.trm.err_rd_term()
                else:
                    _gl.trm.cnt_errors = 0
                    _gl.stastus_bar += 'Got new DATA'
                #--- Read file HIST  ---------------------------------------
                dtt = datetime.strptime(_gl.trm.account.dt, "%d.%m.%Y %H:%M:%S")
                if dtt.minute == _gl.trm.time_1_min:
                    _gl.stastus_bar += '     Did not read HIST, it is not time'
                else:
                    _gl.trm.time_1_min = dtt.minute
                    _gl.trm.rd_term_HST()
                    if _gl.trm.err_status > 0:
                        _gl.stastus_bar += '     Error HIST - ' + str(_gl.trm.err_status)
                        _gl.trm.err_rd_term()
                    else:
                        _gl.stastus_bar += '     Got new HIST'
                #--- If is not errors READ files then:  --------------------
                #        update tables 'data_FUT' & 'hist_FUT'
                if _gl.trm.err_status == 0:
                    buf_arr_1, buf_arr_2 = [], []
                    frm = '%d.%m.%Y %H:%M:%S'
                    #
                    buf_arr_1 = ((j,) for j in _gl.trm.data_in_file)
                    if len(_gl.trm.hist_in_file) > 0:
                        for it in _gl.trm.hist_in_file:
                            dtt = datetime.strptime(it.split('|')[0], frm)
                            ind_sec  = int(dtt.replace(tzinfo=timezone.utc).timestamp())
                            buf_arr_2.append([ind_sec, it])
                    #
                    rep = _gl.db_TODAY.update_2_tbl('data_FUT', buf_arr_1, 'hist_FUT', buf_arr_2)
                    if rep[0] > 0:
                        _gl.trm.err_rd_term('main', rep[1], err_log = True)
                        #err_lmb('main', s_lmb('Could not update tables ') + s_lmb(rep[1]))
                    #
            except Exception as ex:
                _gl.trm.err_rd_term('main', str(ex), err_log = True)
            #print('_gl.wndw_menu = ', _gl.wndw_menu)
        if _gl.wndw_menu == 'CFG_SOFT':
            event_menu_CFG_SOFT(evn, val, wndw, _gl)
        elif _gl.wndw_menu == 'DATA_FUT_FILE':
            event_menu_DATA_FUT_FILE(evn, val, wndw, _gl)
        elif _gl.wndw_menu == 'DATA_HIST_FILE':
            event_menu_DATA_HIST_FILE(evn, val, wndw, _gl)
        elif _gl.wndw_menu == 'DATA_ACNT':
            event_menu_DATA_ACNT(evn, val, wndw, _gl)
        elif _gl.wndw_menu == 'DATA_PROFIT':
            event_menu_DATA_PROFIT(evn, val, wndw, _gl)
        else:      pass
        #
        if evn == 'CFG_SOFT':
            wndw = wndw_menu_CFG_SOFT(wndw, _gl)
        elif evn == 'DATA_FUT_FILE':
            wndw = wndw_menu_DATA_FUT_FILE(wndw, _gl)
        elif evn == 'DATA_HIST_FILE':
            wndw = wndw_menu_DATA_HIST_FILE(wndw, _gl)
        elif evn == 'DATA_ACNT':
            wndw = wndw_menu_DATA_ACNT(wndw, _gl)
        elif evn == 'DATA_PROFIT':
            wndw = wndw_menu_DATA_PROFIT(wndw, _gl)
        elif evn == 'SAVE_HIST_FILE':
            event_menu_SAVE_HIST_FILE(evn, val, wndw, _gl)
        elif evn == 'CLR_HIST_FILE':
            event_menu_CLR_HIST_FILE(evn, val, wndw, _gl)
        elif evn == 'CLR_HIST_TBL':
            event_menu_CLR_HIST_TBL(evn, val, wndw, _gl)
        else:      pass

    #ok_lmb('titul', 'message')
    return 0
Beispiel #12
0
def maincaller():
    global fname
    global temp_cat
    global temp_id
    #Main Function [Read Dataset File] 
    import PySimpleGUI as sg
    import sys

    sg.ChangeLookAndFeel('BlueMono') 



    event, values = sg.Window('Select DataSet').Layout([[sg.Text('Browse Dataset File :')],
                                                        [sg.In(), sg.FileBrowse()],
                                                       [sg.CloseButton('Load'), sg.CloseButton('Cancel')]]).Read()
    fname = values[0]

    if not fname:
        sg.Popup("Cancel", "No filename supplied")
        raise SystemExit("Cancelling: no filename supplied")
    else:
        #----------------------------------Display Progress Bar for Load dataset window
        # layout the Window
        layout = [[sg.Text('Loading your File...')],
                  [sg.ProgressBar(1000, orientation='h', size=(20, 20), key='progbar')],
                  [sg.Cancel()]]


        # create the Window
        window = sg.Window('Loading...', layout)
        # loop that would normally do something useful
        for i in range(1000):
            # check to see if the cancel button was clicked and exit loop if clicked
            event, values = window.Read(timeout=6)
            if event == 'Cancel' or event is None:
                fname=""
                break
                # update bar with loop value +1 so that bar eventually reaches the maximum
            window.Element('progbar').UpdateBar(i + 1)
        # done with loop... need to destroy the window as it's still open
        loaddataset(fname)
        window.Close()
        #UserPanel()
        #-------------------------------Display Progress bar for Preprocessing Window
        # layout the Window
        event=sg.PopupYesNo('Can we Preprocess Data',title="Permissions")
        if event == 'Yes':
            layout = [[sg.Text('We are Analysing your Dataset')],
                      [sg.ProgressBar(1000, orientation='h', size=(30, 20), key='progbar')],
                      [sg.Cancel()]]


            # create the Window
            window = sg.Window('Please Wait...!', layout)
            # loop that would normally do something useful
            for i in range(1000):
                # check to see if the cancel button was clicked and exit loop if clicked
                event, values = window.Read(timeout=5)
                if event == 'Cancel' or event is None:
                    fname=""
                    break
                    # update bar with loop value +1 so that bar eventually reaches the maximum
                window.Element('progbar').UpdateBar(i + 1)
            # done with loop... need to destroy the window as it's still open
            preprocess() #this is call the function

        else :
            sg.PopupError('Please Preprocess Dataset',title="Error")


        window.Close()
Beispiel #13
0
CONFIG_INI = 'config.ini'

config = ConfigParser()
config.read(CONFIG_INI)
API_HOST = config['default']['api_host']
EXCLUDE_PORTS = config['default']['exclude_ports'].split()
SERVER_NAME = config['default']['server_name']
telegram = NotificationHandler('telegram',
                               defaults={
                                   'token': config['default']['telegram_api'],
                                   'chat_id': config['default']['telegram_id']
                               })
logger.add(telegram, level=logging.ERROR)

sg.ChangeLookAndFeel('Reddit')
window = sg.Window("SMS Deliver")
table = sg.Table(
    [[' ' * 15, ' ' * 18, ' ' * 12, ' ' * 8, ' ' * 8, ' ' * 12, ' ' * 36]],
    size=(200, 33),
    max_col_width=100,
    headings=[
        'Port', 'IMSI', 'Network', 'SMS count', 'Fails', 'Signal', 'Status'
    ],
    justification='right',
    key='thread_table')
window.Layout([[
    sg.Column([[table]]),
    sg.Column([
        [sg.Button("Refresh ports", key='refresh')],
        [sg.T("")],
Beispiel #14
0
def PlayGame():

    menu_def = [
        ['&File', ['&Open PGN File', 'E&xit']],
        ['&Help', '&About...'],
    ]

    # sg.SetOptions(margins=(0,0))
    sg.ChangeLookAndFeel('GreenTan')
    # create initial board setup
    board = copy.deepcopy(initial_board)
    # the main board display layout
    board_layout = [[sg.T('     ')] + [
        sg.T('{}'.format(a), pad=((23, 27), 0), font='Any 13')
        for a in 'abcdefgh'
    ]]
    # loop though board and create buttons with images
    for i in range(8):
        row = [sg.T(str(8 - i) + '   ', font='Any 13')]
        for j in range(8):
            piece_image = images[board[i][j]]
            row.append(render_square(piece_image, key=(i, j), location=(i, j)))
        row.append(sg.T(str(8 - i) + '   ', font='Any 13'))
        board_layout.append(row)
    # add the labels across bottom of board
    board_layout.append([sg.T('     ')] + [
        sg.T('{}'.format(a), pad=((23, 27), 0), font='Any 13')
        for a in 'abcdefgh'
    ])

    # setup the controls on the right side of screen
    openings = ('Any', 'Defense', 'Attack', 'Trap', 'Gambit', 'Counter',
                'Sicillian', 'English', 'French', 'Queen\'s openings',
                'King\'s Openings', 'Indian Openings')

    board_controls = [
        [sg.RButton('New Game', key='Open PGN File'),
         sg.RButton('Draw')],
        [sg.RButton('Resign Game'),
         sg.RButton('Set FEN')],
        [sg.RButton('Player Odds'),
         sg.RButton('Training')],
        [sg.Drop(openings), sg.Text('Opening/Style')],
        [sg.CBox('Play a White', key='_white_')],
        [sg.Text('Move List')],
        [
            sg.Multiline([],
                         do_not_clear=True,
                         autoscroll=True,
                         size=(15, 10),
                         key='_movelist_')
        ],
    ]

    # layouts for the tabs
    controls_layout = [[
        sg.Text('Performance Parameters', font='_ 20')
    ], [sg.T('Put stuff like AI engine tuning parms on this tab')]]

    statistics_layout = [[sg.Text('Statistics', font=('_ 20'))],
                         [sg.T('Game statistics go here?')]]

    board_tab = [[sg.Column(board_layout)]]

    # the main window layout
    layout = [[sg.Menu(menu_def, tearoff=False)],
              [
                  sg.TabGroup([[
                      sg.Tab('Board', board_tab),
                      sg.Tab('Controls', controls_layout),
                      sg.Tab('Statistics', statistics_layout)
                  ]],
                              title_color='red'),
                  sg.Column(board_controls)
              ],
              [sg.Text('Click anywhere on board for next move', font='_ 14')]]

    window = sg.Window('Chess',
                       default_button_element_size=(12, 1),
                       auto_size_buttons=False,
                       icon='kingb.ico').Layout(layout)

    # ---===--- Loop taking in user input --- #
    i = 0
    moves = None
    while True:
        button, value = window.Read()
        if button in (None, 'Exit'):
            break
        if button == 'Open PGN File':
            filename = sg.PopupGetFile('', no_window=True)
            if filename is not None:
                moves = open_pgn_file(filename)
                i = 0
                board = copy.deepcopy(initial_board)
                window.FindElement('_movelist_').Update(value='')
        if button == 'About...':
            sg.Popup('Powerd by Engine Kibitz Chess Engine')
        if type(button) is tuple and moves is not None and i < len(moves):
            move = moves[i]  # get the current move
            window.FindElement('_movelist_').Update(value='{}   {}\n'.format(
                i + 1, str(move)),
                                                    append=True)
            move_from = move.from_square  # parse the move-from and move-to squares
            move_to = move.to_square
            row, col = move_from // 8, move_from % 8
            piece = board[row][col]  # get the move-from piece
            button = window.FindElement(key=(row, col))
            for x in range(3):
                button.Update(button_color=('white',
                                            'red' if x % 2 else 'white'))
                window.Refresh()
                time.sleep(.05)
            board[row][col] = BLANK  # place blank where piece was
            row, col = move_to // 8, move_to % 8  # compute move-to square
            board[row][col] = piece  # place piece in the move-to square
            redraw_board(window, board)
            i += 1
Beispiel #15
0
    def __init__(self, controlador):
        sg.ChangeLookAndFeel('Reddit')

        super().__init__(controlador, nome_tela='Fornecedores')
Beispiel #16
0
    def _build_floating_window(self):
        if self.popout_window:  # if floating window already exists, close it first
            self.popout_window.Close()
        sg.ChangeLookAndFeel('Topanga')
        num_cols = 2
        width_var = 15
        width_value = 30
        layout = []
        line = []
        col = 0
        self.popout_choices = self.local_choices
        if self.popout_choices == {}:  # if nothing chosen, then choose all non-_ variables
            for key in sorted(self.locals.keys()):
                self.popout_choices[key] = not key.startswith('_')

        width_var = max([len(key) for key in self.popout_choices])
        for key in self.popout_choices:
            if self.popout_choices[key] is True:
                value = str(self.locals.get(key))
                h = min(
                    len(value) // width_value + 1,
                    MAX_LINES_PER_RESULT_FLOATING)
                line += [
                    sg.Text(f'{key}',
                            size=(width_var, 1),
                            font=POPOUT_WINDOW_FONT),
                    sg.Text(' = ', font=POPOUT_WINDOW_FONT),
                    sg.Text(value,
                            key=key,
                            size=(width_value, h),
                            font=POPOUT_WINDOW_FONT)
                ]
                if col + 1 < num_cols:
                    line += [sg.VerticalSeparator(), sg.T(' ')]
                col += 1
            if col >= num_cols:
                layout.append(line)
                line = []
                col = 0
        if col != 0:
            layout.append(line)
        layout = [[
            sg.Column(layout),
            sg.Column([[
                sg.Button('',
                          key='_EXIT_',
                          image_data=red_x,
                          button_color=('#282923', '#282923'),
                          border_width=0)
            ]])
        ]]

        self.popout_window = sg.Window(
            'Floating',
            layout,
            alpha_channel=0,
            no_titlebar=True,
            grab_anywhere=True,
            element_padding=(0, 0),
            margins=(0, 0),
            keep_on_top=True,
            right_click_menu=[
                '&Right', ['Debugger::RightClick', 'Exit::RightClick']
            ],
        ).Finalize()
        screen_size = self.popout_window.GetScreenDimensions()
        self.popout_window.Move(screen_size[0] - self.popout_window.Size[0], 0)
        self.popout_window.SetAlpha(1)

        sg.ChangeLookAndFeel('SystemDefault')
        return True
# Date:          10/17/2019
# ISU Email:     [email protected]
# Description:   This program automates the study process for the 2019 ARLAB user study

from subprocess import call
import random
import psutil
import PySimpleGUI as sg
import csv
import time
import sys
import datetime
import os
import shutil

sg.ChangeLookAndFeel('SystemDefault')

# ------ Menu Definition ------ #
menu_def = [
    ['File', ['Open', 'Save', 'Exit', 'Properties']],
    [
        'Edit',
        ['Paste', [
            'Special',
            'Normal',
        ], 'Undo'],
    ],
    ['Help', 'About...'],
]

# ------ Column Definition ------ #
Beispiel #18
0
    def _build_main_debugger_window(self):
        sg.ChangeLookAndFeel(COLOR_SCHEME)

        def InVar(key1):
            row1 = [
                sg.T('    '),
                sg.I(key=key1, size=(WIDTH_VARIABLES, 1)),
                sg.T('', key=key1 + 'CHANGED_', size=(WIDTH_RESULTS, 1)),
                sg.B('Detail', key=key1 + 'DETAIL_'),
                sg.B('Obj', key=key1 + 'OBJ_'),
            ]
            return row1

        variables_frame = [
            InVar('_VAR0_'),
            InVar('_VAR1_'),
            InVar('_VAR2_'),
        ]

        interactive_frame = [
            [
                sg.T('>>> ', size=(9, 1), justification='r'),
                sg.In(
                    size=(83, 1),
                    key='_INTERACTIVE_',
                    tooltip=
                    'Type in any "expression" and it will be disaplayed below.'
                ),
                sg.B('Go', bind_return_key=True, visible=False)
            ],
            [
                sg.T('CODE >>> ', justification='r', size=(9, 1)),
                sg.
                In(size=(83, 1),
                   key='_CODE_',
                   tooltip=
                   'Use for things like import or other statements / lines of code'
                   )
            ],
            [
                sg.Multiline(size=(93, 26),
                             key='_OUTPUT_',
                             autoscroll=True,
                             do_not_clear=True)
            ],
        ]

        autowatch_frame = [[
            sg.Button('Choose Variables To Auto Watch', key='_LOCALS_'),
            sg.Button('Clear All Auto Watches'),
            sg.Button('Show All Variables', key='_SHOW_ALL_'),
            sg.Button('Locals', key='_ALL_LOCALS_'),
            sg.Button('Globals', key='_GLOBALS_'),
            sg.Button('Popout', key='_POPOUT_')
        ]]

        variable_values = [[
            sg.T('', size=(WIDTH_WATCHER_VARIABLES, 1), key='_WATCH%s_' % i),
            sg.T(
                '',
                size=(WIDTH_WATCHER_RESULTS, MAX_LINES_PER_RESULT_MAIN),
                key='_WATCH%s_RESULT_' % i,
            )
        ] for i in range(NUM_AUTO_WATCH)]

        var_layout = []
        for i in range(NUM_AUTO_WATCH):
            var_layout.append([
                sg.T('',
                     size=(WIDTH_WATCHER_VARIABLES, 1),
                     key='_WATCH%s_' % i),
                sg.T(
                    '',
                    size=(WIDTH_WATCHER_RESULTS, MAX_LINES_PER_RESULT_MAIN),
                    key='_WATCH%s_RESULT_' % i,
                )
            ])

        col1 = [
            # [sg.Frame('Auto Watches', autowatch_frame+variable_values, title_color='blue')]
            [
                sg.Frame('Auto Watches',
                         autowatch_frame + var_layout,
                         title_color='blue')
            ]
        ]

        col2 = [[
            sg.Frame('Variables or Expressions to Watch',
                     variables_frame,
                     title_color='blue'),
        ],
                [
                    sg.Frame('REPL-Light - Press Enter To Execute Commands',
                             interactive_frame,
                             title_color='blue'),
                ]]

        # Tab based layout
        layout = [[
            sg.TabGroup(
                [[sg.Tab('Variables', col1),
                  sg.Tab('REPL & Watches', col2)]])
        ], [
            sg.Button('', image_data=red_x, key='_EXIT_', button_color=None),
        ]]

        # ------------------------------- Create main window -------------------------------
        window = sg.Window("I'm Watching You Debugger",
                           layout,
                           icon=PSGDebugLogo,
                           margins=(0, 0)).Finalize()
        window.Element('_VAR1_').SetFocus()
        self.watcher_window = window
        sg.ChangeLookAndFeel(
            'SystemDefault')  # set look and feel to default before exiting
        return window
Beispiel #19
0
import sys
import PySimpleGUI as sg
import os
import GUI.app_audio as app
import GUI.playAudio as pl

sg.ChangeLookAndFeel('SandyBeach')
layout = [[
    sg.Text('我是大白(●—●),我在听呢:',
            size=(150, 1),
            justification='left',
            font=("Terminal", 10),
            auto_size_text=True)
], [sg.Input(do_not_clear=False, size=(54, 1), key='_IN_')],
          [
              sg.Button('开始合成语音(中文)', key='ShowChina'),
              sg.Button('开始合成语音(英文)', key='ShowEnglish'),
              sg.Button('退出系统', key='Exit')
          ],
          [
              sg.Text('采样速率:', size=(10, 1), auto_size_text=True),
              sg.Text('    ',
                      size=(10, 1),
                      key='_OUTPUTFREQ_',
                      auto_size_text=True)
          ],
          [
              sg.Text('通道数量:', size=(10, 1), auto_size_text=True),
              sg.Text('    ',
                      size=(10, 1),
                      key='_OUTPUTCHAN_',
Beispiel #20
0
def pxxteste04():

    sg.ChangeLookAndFeel('GreenTan')

    # ------ Menu Definition ------ #
    menu_def = [
        ['File', ['Open', 'Save', 'Exit', 'Properties']],
        [
            'Edit',
            ['Paste', [
                'Special',
                'Normal',
            ], 'Undo'],
        ],
        ['Help', 'About...'],
    ]

    # ------ Column Definition ------ #
    column1 = [
        [
            sg.Text('Column 1',
                    background_color='#F7F3EC',
                    justification='center',
                    size=(10, 1))
        ],
        [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 1')],
        [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 2')],
        [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 3')]
    ]

    layout = [
        [sg.Menu(menu_def, tearoff=True)],
        [
            sg.Text('Opções de Seleção e Consulta!',
                    size=(30, 1),
                    justification='center',
                    font=("Helvetica", 25),
                    relief=sg.RELIEF_RIDGE)
        ],
        [sg.Text('PESQUISA, informe:')],
        #[sg.Text('Jogo De: ', size=(5, 1)), sg.InputText()), sg.Text(' Até: ', size=(5, 2), sg.InputText())],
        [
            sg.Text('Jogo De: ', size=(7, 0)),
            sg.Input(size=(5, 0), key='jde'),
            sg.Text(' Ate: ', size=(3, 0)),
            sg.InputText(size=(5, 0), key='jate')
        ],
        #[sg.Text(' Ate: ', size=(20, 0)), sg.InputText(size=(5,0), key='jate')],
        #[sg.InputText('This is my text')],

        #[sg.Frame(layout=[
        # [sg.Checkbox('Checkbox', size=(10,1)),  sg.Checkbox('My second checkbox!', default=True)],
        #[sg.Radio('My first Radio!     ', "RADIO1", default=True, size=(10,1)), sg.Radio('My second Radio!', "RADIO1")]], title='Options',title_color='red', relief=sg.RELIEF_SUNKEN, tooltip='Use these to set flags')],

        # [sg.Multiline(default_text='This is the default Text should you decide not to type anything', size=(35, 3)),
        #     sg.Multiline(default_text='A second multi-line', size=(35, 3))],
        # [sg.InputCombo(('Combobox 1', 'Combobox 2'), size=(20, 1)),
        #     sg.Slider(range=(1, 100), orientation='h', size=(34, 20), default_value=85)],
        # [sg.InputOptionMenu(('Menu Option 1', 'Menu Option 2', 'Menu Option 3'))],
        # [sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'), size=(30, 3)),
        #     sg.Frame('Labelled Group',[[
        #     sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=25),
        #     sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=75),
        #     sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=10),
        #     sg.Column(column1, background_color='#F7F3EC')]])],
        # [sg.Text('_'  * 80)],
        # [sg.Text('Choose A Folder', size=(35, 1))],
        # [sg.Text('Your Folder', size=(15, 1), auto_size_text=False, justification='right'),
        #     sg.InputText('Default Folder'), sg.FolderBrowse()],
        [sg.Submit(tooltip='Click to submit this window'),
         sg.Cancel()]
    ]

    window = sg.Window('Menu de Opções da Lotofacil',
                       layout,
                       default_element_size=(40, 1),
                       grab_anywhere=False)
    event, values = window.read()
    window.Maximize()
    window.close()

    sg.popup('Title', 'The results of the window.',
             'The button clicked was "{}"'.format(event), 'The values are',
             values)
Beispiel #21
0
#!/usr/bin/env Python3      
import PySimpleGUI as sg      

# I was testing out the colors and use this to get arguments I could change fast...
import sys
if len(sys.argv) > 1:
    sg.ChangeLookAndFeel(sys.argv[1])
else:
    sg.ChangeLookAndFeel('SandyBeach')

 

print(sg.ListOfLookAndFeelValues()) 
themeColor = '#ff6961'


# # ------ Menu Definition ------ #      
# menu_def = [['File', ['Open', 'Save', 'Exit', 'Properties']],      
#             ['Edit', ['Paste', ['Special', 'Normal', ], 'Undo'], ],      
#             ['Help', 'About...'], ]      

# ------ Column Definition ------ #      
column1 = [[sg.Text('Column 1', justification='center', size=(10, 1))],      
            [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 1')],      
            [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 2')],      
            [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 3')]]      

layout = [      
    # [sg.Menu(menu_def, tearoff=True)],      
    [sg.Text('Welcome to the RhubarbPi installer!', size=(30, 1), justification='center', font=("Helvetica", 25), relief=sg.RELIEF_RIDGE)],   
    [sg.Image(r'img/pi.png', size=(600,300))],
Beispiel #22
0
def pxxteste01():

    # Green & tan color scheme
    sg.ChangeLookAndFeel('GreenTan')
    sg.SetOptions(text_justification='right')

    layout = [[
        sg.Text('Machine Learning Command Line Parameters',
                font=('Helvetica', 16))
    ],
              [
                  sg.Text('Passes', size=(15, 1)),
                  sg.Spin(values=[i for i in range(1, 1000)],
                          initial_value=20,
                          size=(6, 1)),
                  sg.Text('Steps', size=(18, 1)),
                  sg.Spin(values=[i for i in range(1, 1000)],
                          initial_value=20,
                          size=(6, 1))
              ],
              [
                  sg.Text('ooa', size=(15, 1)),
                  sg.In(default_text='6', size=(10, 1)),
                  sg.Text('nn', size=(15, 1)),
                  sg.In(default_text='10', size=(10, 1))
              ],
              [
                  sg.Text('q', size=(15, 1)),
                  sg.In(default_text='ff', size=(10, 1)),
                  sg.Text('ngram', size=(15, 1)),
                  sg.In(default_text='5', size=(10, 1))
              ],
              [
                  sg.Text('l', size=(15, 1)),
                  sg.In(default_text='0.4', size=(10, 1)),
                  sg.Text('Layers', size=(15, 1)),
                  sg.Drop(values=('BatchNorm', 'other'), auto_size_text=True)
              ], [sg.Text('_' * 100, size=(65, 1))],
              [sg.Text('Flags', font=('Helvetica', 15), justification='left')],
              [
                  sg.Checkbox('Normalize', size=(12, 1), default=True),
                  sg.Checkbox('Verbose', size=(20, 1))
              ],
              [
                  sg.Checkbox('Cluster', size=(12, 1)),
                  sg.Checkbox('Flush Output', size=(20, 1), default=True)
              ],
              [
                  sg.Checkbox('Write Results', size=(12, 1)),
                  sg.Checkbox('Keep Intermediate Data', size=(20, 1))
              ], [sg.Text('_' * 100, size=(65, 1))],
              [
                  sg.Text('Loss Functions',
                          font=('Helvetica', 15),
                          justification='left')
              ],
              [
                  sg.Radio('Cross-Entropy', 'loss', size=(12, 1)),
                  sg.Radio('Logistic', 'loss', default=True, size=(12, 1))
              ],
              [
                  sg.Radio('Hinge', 'loss', size=(12, 1)),
                  sg.Radio('Huber', 'loss', size=(12, 1))
              ],
              [
                  sg.Radio('Kullerback', 'loss', size=(12, 1)),
                  sg.Radio('MAE(L1)', 'loss', size=(12, 1))
              ],
              [
                  sg.Radio('MSE(L2)', 'loss', size=(12, 1)),
                  sg.Radio('MB(L0)', 'loss', size=(12, 1))
              ], [sg.Submit(), sg.Cancel()]]

    window = sg.Window('Machine Learning Front End',
                       layout,
                       font=("Helvetica", 12))

    event, values = window.read()
Beispiel #23
0
    def __init__(self, controlador):
        sg.ChangeLookAndFeel('Reddit')

        super().__init__(controlador, nome_tela='Formas de pagamento')
    return str(random.choice(random_list))


def disableControls(window):
    window["Quit"].Update(disabled=True)
    window["OK"].Update(disabled=True)
    window["input"].Update(disabled=True)


def enableControls(window):
    window["Quit"].Update(disabled=False)
    window["OK"].Update(disabled=False)
    window["input"].Update(disabled=False)


gui.ChangeLookAndFeel('Black')

layout = [[gui.Text('SHOPPING LIST!!!')],
          [
              gui.Text(' ', key='box0', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box10', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box20', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box30', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box40', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box50', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box60', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box70', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box80', size=(7, 1), pad=(1, 10)),
              gui.Text(' ', key='box90', size=(7, 1), pad=(1, 10))
          ],
          [
Beispiel #25
0
'''
  A minimalist Notepad built with the PySimpleGUI TKinter framework
  Author:     Israel Dryer
  Email:      [email protected]
  Modified:   2019-10-13
'''
import PySimpleGUI as sg
sg.ChangeLookAndFeel('BrownBlue')  # change style

WIN_W: int = 90
WIN_H: int = 25
filename: str = None

# string variables to shorten loop and menu code
file_new: str = 'New............(CTRL+N)'
file_open: str = 'Open..........(CTRL+O)'
file_save: str = 'Save............(CTRL+S)'

menu_layout: list = [[
    'File', [file_new, file_open, file_save, 'Save As', '---', 'Exit']
], ['Tools', ['Word Count']], ['Help', ['About']]]

layout: list = [[sg.Menu(menu_layout)],
                [
                    sg.Text('> New file <',
                            font=('Consolas', 10),
                            size=(WIN_W, 1),
                            key='_INFO_')
                ],
                [
                    sg.Multiline(font=('Consolas', 12),
Beispiel #26
0
import os
import sys
if sys.version_info[0] >= 3:
    import PySimpleGUI as sg
else:
    import PySimpleGUI27 as sg
'''
A chat window.  Add call to your send-routine, print the response and you're done
To see this program RUN on the web go here:
https://repl.it/@PySimpleGUI/Chat-Application-Demo
Note that the size of the display on repl.it is smaller than most, so the sizes of the 
Note that the size of the display on reply. it is smaller than most, so the sizes of the
Multiline and Output text areas were reduced in the online version.  Nothing else was changed
'''

sg.ChangeLookAndFeel('GreenTan')  # give our window a spiffy set of colors
layout = [[sg.Text('Your output will go here', size=(40, 1))],
          [sg.Output(size=(127, 30), font=('Helvetica 10'))],
          [
              sg.Multiline(size=(85, 5), enter_submits=True, key='query'),
              sg.Button('SEND',
                        button_color=(sg.YELLOWS[0], sg.BLUES[0]),
                        bind_return_key=True),
              sg.Button('EXIT', button_color=(sg.YELLOWS[0], sg.GREENS[0]))
          ]]
window = sg.Window('Chat window',
                   default_element_size=(30, 2),
                   font=('Helvetica', ' 14'),
                   default_button_element_size=(8, 2)).Layout(layout)

# ---===--- Loop taking in user input and using it  --- #
Beispiel #27
0
import PySimpleGUI as gui
from subprocess import Popen
import os
gui.ChangeLookAndFeel("BlueMono")
layout = [[gui.Text("Welcome To Revision Helper",size=(50,2))], [gui.Button("Notes",button_color=('white','blue')), gui.Button("Flash Cards",button_color=('white','blue')), gui.Button("Exit",button_color=('white','red'))]]
window = gui.Window("Revision Helper",layout=layout,resizable=False)
window.read(timeout=1)
while True:
    event, values = window.read()
    if event in (None,"Exit"):
        break
    elif event in ("Notes"):
        if os.path.exists("Notes.pyw"):
            Popen("python Notes.pyw")
        elif os.path.exists("Notes.exe"):
            Popen("Notes.exe")
    elif event in ("Flash Cards"):
        if os.path.exists("Notes.pyw"):
            Popen("python Cards.pyw")
        elif os.path.exists("Notes.exe"):
            Popen("Cards.exe")
window.close()
Beispiel #28
0
def main():
    config = cfg.get_configuration()
    chase_scraper = ChaseScraperWrapper(config)
    sheet_uploader = SheetUploader(config)
    sw = splitwise.init(config)
    background_worker = BackgroundWorker()

    now = dt.datetime.now()
    first_day_of_this_month = dt.datetime(now.year, now.month, 1)
    date_to = first_day_of_this_month - dt.timedelta(days=1)
    date_from = dt.datetime(date_to.year, date_to.month, 1)

    sg.SetOptions(font=FONT_TEXT)

    # ------ Date Range Definition ------ #
    sg.theme('DarkTeal7')
    date_range_frame = sg.Frame(
        "",
        relief=sg.RELIEF_FLAT,
        element_justification='left',
        layout=[[
            sg.Button(" << ", key=KEY_MONTH_PREV),
            sg.Text("From:"),
            sg.InputText(key=KEY_DATES_FROM,
                         size=(10, 1),
                         justification='center',
                         default_text=date_from.strftime(FORMAT_DATE)),
            sg.CalendarButton("Pick",
                              target=KEY_DATES_FROM,
                              format=FORMAT_DATE),
            sg.Text("", size=(3, 1)),
            sg.Text("To:"),
            sg.InputText(key=KEY_DATES_TO,
                         size=(10, 1),
                         justification='center',
                         default_text=date_to.strftime(FORMAT_DATE)),
            sg.CalendarButton("Pick", target=KEY_DATES_TO, format=FORMAT_DATE),
            sg.Button(" >> ", key=KEY_MONTH_NEXT)
        ]])

    # ------ Chase Frame Definition ------ #
    sg.theme('DarkBlue15')
    chase_logon_frame = sg.Frame(
        "Logon",
        font=FONT_GROUP,
        relief=sg.RELIEF_RIDGE,
        layout=[[
            sg.Text("Login: "******"Password: "******"account_{account}-key"

    chase_accounts_frame = sg.Frame(
        "Accounts",
        font=FONT_GROUP,
        relief=sg.RELIEF_RIDGE,
        layout=[[sg.Checkbox(account, key=account_key(key), default=True)]
                for key, account in config.chase_accounts.items()])

    chase_frame = sg.Frame(
        "Chase",
        font=FONT_TITLE,
        relief=sg.RELIEF_FLAT,
        layout=[[chase_logon_frame],
                [
                    chase_accounts_frame,
                    sg.Column(
                        [[sg.Text('')],
                         [sg.Button("Sign In", key=KEY_SIGNIN, size=(20, 1))],
                         [
                             sg.Button('Download Statements',
                                       key=KEY_RUN,
                                       size=(20, 1))
                         ],
                         [
                             sg.Button('Export to Sheets',
                                       key=KEY_PUSH,
                                       size=(20, 1))
                         ]])
                ],
                [sg.Button("Chase -> Sheets", size=(40, 1), key=KEY_RUN_ALL)]])

    # ------ Google Sheets Frame Definition ------ #
    sg.ChangeLookAndFeel('DarkAmber')
    gsheets_frame = sg.Frame(
        "Sheets - Splitwise",
        font=FONT_TITLE,
        relief=sg.RELIEF_FLAT,
        layout=[
            [
                sg.InputOptionMenu(values=get_sheet_tabs(sheet_uploader),
                                   key=KEY_SHEET_TABS,
                                   text_color='black'),
                sg.Button("Refresh", key=KEY_SHEET_REFRESH)
            ],
            [
                sg.Multiline(size=(30, 10),
                             font=FONT_TEXT2,
                             key=KEY_SHEET_CONTENT)
            ],
            [
                sg.Button(
                    f"Upload to {sw.getGroup(config.splitwise_group_id).name}",
                    size=(30, 1),
                    key=KEY_SPLITWISE_PUSH)
            ]
        ])

    # ------ XPath Frame Definition ------ #
    # sg.ChangeLookAndFeel('DarkAmber')
    # xpath_frame = sg.Frame("XPath Tester", font=FONT_GROUP, relief=sg.RELIEF_FLAT, layout=
    # [
    #     [sg.T("XPATH:"), sg.In(key="XPATH")],
    #     [sg.Button(button_text="Go", key='XP_FIND'), sg.Button(button_text="Click", key='XP_CLICK')]
    # ])

    layout = [
        [date_range_frame],
        [chase_frame, sg.VerticalSeparator(), gsheets_frame],
        #[chase_frame, sg.VerticalSeparator(), sg.Column([[gsheets_frame], [xpath_frame]])],
        # [sg.Text("", size=(45, 1)), sg.Button('Exit')]
    ]

    window = sg.Window("Chazeets",
                       layout,
                       keep_on_top=True,
                       element_justification='center')
    curr_tab = SELECT_STR
    while True:
        event, values = window.read(timeout=100)
        if event == '__TIMEOUT__':
            if values[KEY_SHEET_TABS] != curr_tab:
                curr_tab = values[KEY_SHEET_TABS]
                if curr_tab == SELECT_STR:
                    window[KEY_SHEET_CONTENT].update(value="")
                else:
                    expenses = '\n'.join(
                        [str(e) for e in sheet_uploader.pull_totals(curr_tab)])
                    window[KEY_SHEET_CONTENT].update(value=expenses)
            continue
        if event in (None, 'Exit'):
            break
        if event == KEY_MONTH_PREV:
            curr_df = dt.datetime.strptime(values[KEY_DATES_FROM], FORMAT_DATE)
            first_day_of_curr_month = dt.datetime(curr_df.year, curr_df.month,
                                                  1)
            date_to = first_day_of_curr_month - dt.timedelta(days=1)
            date_from = dt.datetime(date_to.year, date_to.month, 1)
            window[KEY_DATES_FROM].update(
                value=date_from.strftime(FORMAT_DATE))
            window[KEY_DATES_TO].update(value=date_to.strftime(FORMAT_DATE))
        if event == KEY_MONTH_NEXT:
            curr_df = dt.datetime.strptime(values[KEY_DATES_TO],
                                           FORMAT_DATE) + dt.timedelta(days=1)
            date_from = dt.datetime(curr_df.year, curr_df.month, 1)
            date_to = date_from + dt.timedelta(days=32)
            date_to = dt.datetime(date_to.year, date_to.month,
                                  1) - dt.timedelta(days=1)
            window[KEY_DATES_FROM].update(
                value=date_from.strftime(FORMAT_DATE))
            window[KEY_DATES_TO].update(value=date_to.strftime(FORMAT_DATE))
        if event == KEY_SIGNIN:
            login(background_worker, chase_scraper, values[KEY_CHASE_USERNAME],
                  values[KEY_CHASE_PASSWORD])
        if event == KEY_RUN:
            selected_accounts = [
                config.chase_accounts[account]
                for account in config.chase_accounts
                if values[account_key(account)]
            ]
            get_statements(background_worker, chase_scraper, selected_accounts,
                           values[KEY_DATES_FROM], values[KEY_DATES_TO])
        if event == KEY_PUSH:
            upload_to_sheets(background_worker, sheet_uploader,
                             values[KEY_DATES_FROM], values[KEY_DATES_TO])
        if event == KEY_RUN_ALL:
            login(background_worker, chase_scraper, values[KEY_CHASE_USERNAME],
                  values[KEY_CHASE_PASSWORD])
            selected_accounts = [
                config.chase_accounts[account]
                for account in config.chase_accounts
                if values[account_key(account)]
            ]
            get_statements(background_worker, chase_scraper, selected_accounts,
                           values[KEY_DATES_FROM], values[KEY_DATES_TO])
            upload_to_sheets(background_worker, sheet_uploader,
                             values[KEY_DATES_FROM], values[KEY_DATES_TO])
        if event == KEY_SHEET_REFRESH:
            sheet_uploader.api.refresh()
            window[KEY_SHEET_TABS].update(
                values=get_sheet_tabs(sheet_uploader))
        if event == KEY_SPLITWISE_PUSH:
            for e in sheet_uploader.pull_totals(curr_tab):
                splitwise.share_expense_with_group_members(
                    sw, f"{curr_tab} - {e.item}", e.total,
                    config.splitwise_group_id, date_to)
        if event in ("XP_FIND", "XP_CLICK"):
            elt = chase_scraper.scraper._find_by_xpath(values['XPATH'], 1)
            print(elt)
            if event == "XP_CLICK":
                elt.click()
    window.close()
    chase_scraper.close(0)
Beispiel #29
0
import PySimpleGUI as sg

sg.ChangeLookAndFeel("Dark")  # MUDAR TEMA
WIN_W = 90
WIN_H = 25
filename = None

file_new = "Novo        (CTRL+N)"
file_open = "Abrir      (CTRL+O)"
file_save = "Salvar      (CTRL+S)"

sg.Text()
menu_layout = (
    [
        "Arquivo",
        [file_new, file_open, file_save, "Salvar como", "---", "Sair"]
    ],
    ["Editar", ["Tornar caixa alta", "Tornar caixa baixa"]],
    ["Ajuda", ["Como criar minhhas próprias interfaces?", "Autores"]],
)

layout = [
    [sg.MenuBar(menu_layout)],
    [
        sg.Multiline(font=("Consolas", 12),
                     text_color="white",
                     size=(WIN_W, WIN_H),
                     key="_BODY_")
    ],
]
Beispiel #30
0
def main():

    sg.ChangeLookAndFeel('SystemDefault')

    # ------ Layout ------ #
    column1 = sg.Column([[sg.Button("Clean", key="btnClean")],
                         [sg.Button("Prove", key="btnProve")],
                         [sg.Button("Exit", key="btnExit")]])

    layout = [
        [sg.Text("Statements")],
        [
            sg.Multiline("",
                         key='txtInput',
                         size=(75, 5),
                         enable_events=True,
                         justification='left',
                         font=("Helvetica", 8),
                         text_color='blue',
                         tooltip='Input Statements'), column1
        ],
        [sg.Text("Result")],
        [
            sg.Multiline("",
                         key='txtOutput',
                         size=(85, 10),
                         justification='left',
                         font=("Helvetica", 8),
                         text_color='blue',
                         tooltip='Result')
        ],
    ]

    # Create the window
    window = sg.Window("Theorem Prover",
                       layout,
                       finalize=True,
                       grab_anywhere=False,
                       return_keyboard_events=True,
                       use_default_focus=False,
                       location=(150, 150))

    # set initial values
    window['txtOutput'].update(thp.help())
    window['txtInput'].update(
        'axiom P implies Q\naxiom Q implies R\naxiom P\nlemma R')

    # ---===--- Loop taking in user input --- #
    while True:
        event, value = window.read()

        # End program if user closes window or press Exit button
        if event == 'Exit' or event == "btnExit" or event == sg.WIN_CLOSED:
            print(event, "exiting")
            break

        if event == 'btnClean':
            window['txtOutput'].update("")
            window['txtInput'].update('')
        if event == 'btnProve':
            try:
                textInput = value['txtInput']
                statement = textInput.splitlines()
                print(statement)
                # statement=textInput.split(",")
                # statement=re.split("^\S",textInput)
                # statement = ' '.join(statement).split() # remove empty strings from list

                output, proof = thp.prove(statement)
                print("proof", proof)
                s = "\nProof:\n"
                for p in proof:
                    s = s + p + "\n"

                window['txtOutput'].update(output + s)
            except Exception as e:
                print('Error=', e)

        # for debugging event and value
        # print('event= {}'.format(event))
        # print('element= {}'.format(value))

    window.close()