Разработать ноутбук в JupyterLab с интерфейсом на ipywidgets

Цена договорная
29 октября 2024, 09:51 • 3 отклика • 47 просмотров
Реализовать ноутбук JupyterLab (python 3.8, ipywidgets 8.1...).
Создает 2 закладки ipywidgets
1 закладка "SQL run".
widgets.HBox(
widgets.VBox(Текстовое поле "Поиск" + кнопка "Искать"
Выпадающий список DD "SQL запросы" + кнопка "Выполнить"
HBox(Кнопка "Сохранить", Кнопка "Выгрузить")
)
widgets.VBox(блок параметров: Параметр1, ... , ПараметрХ )
)
Output Область в 1-3 строки для вывода лога выполнения.
Область для вывода pandas dataframe (pdf) - фиксированная область видимого экрана с прокруткой по вертикали и горизонтали если pdf выходит за границы.

Сценарий:
- файлы с SQL запросами (с расширением .sql) лежат в отдельной папке "SQL_query"
- подпапка archive (см. далее)
- подпапка filters (см. далее)
- файлы со справочниками параметров (с расширением .dict) лежат в отдельной папке "SQL_dict" (формат? dict или csv )
- DD "SQL запросы" заполняется списком всех файлов с расширением .sql из папки
- при заполнении поля "Поиск" и нажатии кнопки "Искать" в DD "SQL запросы" заполняется списком файлов в названии которых или в тексте внутри файла встречается (case insensitive) текст из поля "Поиск"
- при выборе позиции в DD "SQL запросы" считываются параметры ($ или {} ?) из соответствующего sql файла.
- найденным уникальным списком заполняется блок параметров:
- если по имени параметра есть файл .dict в папке справочников, то параметр это Выпадающий список (DD)
- если по имени параметра нет файла .dict в папке справочников, то параметр это текстовое поле
- по имени выбранного файла ищутся параметры в папке "SQL_query/filters" и заполняются значения из последнего по совпадающим параметрам
- по имени выбранного файла ищутся параметры в папке "export_csv"
- при нажатии кнопки "Выполнить" проверяется, что все параметры заполнены. Возвращается сообщение какие параметры не заполнены.
- если параметры заполнены при нажатии кнопки "Выполнить"
- запускается выполнение SQL запроса в PySpark.
- если выполнение успешно, то значения параметров из Блока параметров сохраняются в папку "SQL_query/filters" в файл с маской [имя SQL файла]_filt_[timestamp]
- Результат конвертируется в pandas dataframe и выводится в Область вывода pdf.
(для демонстрации закомментировать вызов pyspark, вывести в консоль текст SQL запроса с подставленными параметрами и создать руками/из csv тестовый pdf который выводить)
- при нажатии кнопки "Сохранить" создается CSV файл с именем по маске [имя SQL файла]_[timestamp] в папке "export_csv"
- при нажатии кнопки "Выгрузить" создается excel файл с именем по маске [имя SQL файла]_[timestamp] в папке "export_excel"

2 закладка "SQL edit"
widgets.HBox(Кнопка "Сохранить", Кнопка "Отменить")
widgets.HBox(Кнопка "Сохранить как" + текстовое поле "имя файла :")
Текстовое поле на всю область видимого экрана
Текстовое поле заполняется автоматически текстом SQL запроса при выборе позиции в DD "SQL запросы".
При нажатии кнопки "Сохранить" предыдущий вариант текста SQL запроса сохраняется в папку/файл "SQL_query/archive/[имя SQL файла]_[timestamp].sql а новый текст на экране сохраняется в исходный файл SQL запроса.
При нажатии кнопки "Сохранить как" проверяется что заполнено текстовое поле "имя файла :" (если пустое или уже есть файл с таким именем в папке "SQL_query, то сообщение что нужно заполнить или изменить имя файла) и сохраняется файл с новым именем в папку "SQL_query"
При нажатии кнопки "Отменить" текстовое поле заполняется текстом из файла (все изменения не сохраняются).