#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""xlwings VBA --standalone

Datei muss den gleichen Nahmen wie die Excel-Datei haben

Muster:
    xlwings quickstart ExcelName --standalone

# ?ref: https://docs.xlwings.org/en/0.27.0/addin.html
"""

from pathlib import Path

import xlwings as xw


# REF: https://www.youtube.com/watch?v=iIATJtruZBE
# REF: https://docs.xlwings.org/en/stable/debugging.html

file_path = Path(__file__).parent / 'hello.txt'


# %% === xw_main_req
@xw.func
def xw_main_req():
    """Starten von Excel aber dann auf neue .py übergeben

    Note:
        dient nur als Aufrufverteiler
    """
    from eSaver_Export_VIDA_Ausw_Erspar_cmd import xw_main_cmd

    xw_main_cmd()

    return


# %% === xw_ahoy_req
@xw.func
def xw_ahoy_req():
    """Starten von Excel aber dann auf neue .py übergeben

    Note:
        dient nur als Aufrufverteiler
    """
    from eSaver_Export_VIDA_Ausw_Erspar_cmd import xw_ahoy_cmd

    xw_ahoy_cmd()

    return


# %% === xw_main_app_extern_req
@xw.func
def xw_main_app_extern_req():
    """Starten von Excel aber dann auf neue .py übergeben

    Note:
        dient nur als Aufrufverteiler
    """
    from eSaver_Export_VIDA_Ausw_Erspar_cmd import xw_main_app_extern_cmd

    xw_main_app_extern_cmd()

    return


# %% === xw_main_csv_to_excel_req
@xw.func
def xw_main_csv_to_excel_req():
    """Starten von Excel aber dann auf neue .py übergeben

    Note:
        dient nur als Aufrufverteiler
    """
    from eSaver_Export_VIDA_Ausw_Erspar_cmd import xw_main_csv_to_excel_cmd

    xw_main_csv_to_excel_cmd()

    return


# %% === xw_main_ImpF_to_Ausw_req
@xw.func
def xw_main_ImpF_to_Ausw_req():
    """Starten von Excel aber dann auf neue .py übergeben

    Note:
        dient nur als Aufrufverteiler
    """
    from eSaver_Export_VIDA_Ausw_Erspar_cmd import xw_main_ImpF_to_Ausw_cmd

    xw_main_ImpF_to_Ausw_cmd()

    return


# %% === xw_from_cell_req
@xw.func
def xw_from_cell_req(row: int = 1, col: int = 1):
    """Starten von Excel aber dann auf neue .py übergeben

    Note:
        dient nur als Aufrufverteiler
    """
    from eSaver_Export_VIDA_Ausw_Erspar_cmd import xw_from_cell_cmd

    xw_from_cell_cmd()

    return


# %% === xw_serve
def xw_serve():
    """Starten von Server für debug

    Danach könne die Werte in Excel gestartet werden,
    um die Scripte zu debuggen

    Note:
        unter EXCEL muss 'Use UDF Server' auf TRUE stehen
        ohne xw_server() muss aber zwingend FALSE eingetragen sein.
    ___
    """
    # ref: https://docs.xlwings.org/en/stable/debugging.html

    xw.serve()  # readme Einestellungen in Excel [xlwings.conf] beachen

    return


# %% === main_app
def main_app():
    """___

    ___
    """
    print('Start -> def main_app')
    print('Hallo => hier kommt das Programm')

    # print('Eingabe der Zahl war: ' + input('Bitte zahl eingeben:  '))

    print('Stopp -> def main_app.py')


def main():
    """___

    ___
    """
    xw.Book('eSaver_Export_VIDA_Ausw_Erspar_SVB.xlsm').set_mock_caller()
    xw_main_app_extern_req()

    return


# %% === __main__
# ## ========== Testen eSaver_Export_VIDA_Ausw_Erspar_SVB ==========
if __name__ == '__main__':
    """Testen der funktionen von VSCode aus.

    Note:
        für Interne Test

    Note: xw_serve()
        unter EXCEL muss 'Use UDF Server' auf TRUE stehen
        ohne xw_server() muss aber zwingend FALSE eingetragen sein.

    """

    pass  # debug

    # main()

    # readme Note: xw_serve()
    # readme     unter EXCEL muss 'Use UDF Server' auf TRUE stehen
    # readme     ohne xw_server() muss aber zwingend FALSE eingetragen sein.
    xw_serve()  # readme Einestellungen in Excel [xlwings.conf] beachen

    pass  # debug


# EOF                   // End of File
