Skip to content

Gui

gui

Graphical user interface for the equities classifier.

run_gui() -> None

Run the equities classifier GUI.

Source code in src/equities_classifier/processflow/gui.py
def run_gui() -> None:
    """Run the equities classifier GUI."""

    sg.theme("SystemDefault")

    layout = [
        [
            sg.Text(
                "Equities Classifier",
                font=("Any", 16),
            ),
        ],
        [
            sg.Text("Input file:", size=(14, 1)),
            sg.Input(
                key="-INPUT-",
                expand_x=True,
            ),
            sg.FileBrowse(
                "Select ...",
                target="-INPUT-",
                file_types=(
                    ("Excel files", "*.xlsx"),
                    ("All files", "*.*"),
                ),
            ),
        ],
        [
            sg.Text("Output file:", size=(14, 1)),
            sg.Input(
                key="-OUTPUT-",
                expand_x=True,
            ),
            sg.FileSaveAs(
                "Select ...",
                target="-OUTPUT-",
                file_types=(
                    ("Excel files", "*.xlsx"),
                ),
                default_extension=".xlsx",
            ),
        ],
        [
            sg.Frame(
                "Classification",
                [
                    [
                        sg.Checkbox(
                            "GECS",
                            key="-GECS-",
                        ),
                        sg.Checkbox(
                            "GICS",
                            key="-GICS-",
                        ),
                    ],
                ],
            ),
        ],
        [
            sg.Frame(
                "Additional output",
                [
                    [
                        sg.Checkbox(
                            "Detailed provider information",
                            key="-PROVIDER-",
                        ),
                    ],
                ],
            ),
        ],
        [
            sg.Push(),
            sg.Button(
                "Start",
                key="-START-",
                bind_return_key=True,
            ),
            sg.Button(
                "Cancel",
                key="-CANCEL-",
            ),
        ],
        [
            sg.Text(
                "",
                key="-STATUS-",
                expand_x=True,
            ),
        ],
    ]

    window = sg.Window("Equities Classifier", layout, resizable=True, finalize=True)

    try:
        _event_loop(window)
    finally:
        window.close()