fix error
This commit is contained in:
@@ -51,350 +51,6 @@
|
||||
- 📝 Generates the token-optimized project map.
|
||||
- ƒ **_write_entity_md** (`Function`)
|
||||
- 📝 Recursive helper to write entity tree to Markdown.
|
||||
- 📦 **migration_script** (`Module`)
|
||||
- 📝 Предоставляет интерактивный CLI для миграции дашбордов Superset между окружениями с возможностью восстановления после ошибок.
|
||||
- 🏗️ Layer: App
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.client`
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.utils`
|
||||
- ℂ **Migration** (`Class`)
|
||||
- 📝 Инкапсулирует логику интерактивной миграции дашбордов с возможностью «удалить‑и‑перезаписать» при ошибке импорта.
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Инициализирует сервис миграции, настраивает логгер и начальные состояния.
|
||||
- ƒ **run** (`Function`)
|
||||
- 📝 Точка входа – последовательный запуск всех шагов миграции.
|
||||
- 🔗 CALLS -> `self.ask_delete_on_failure`
|
||||
- 🔗 CALLS -> `self.select_environments`
|
||||
- 🔗 CALLS -> `self.select_dashboards`
|
||||
- 🔗 CALLS -> `self.confirm_db_config_replacement`
|
||||
- 🔗 CALLS -> `self.execute_migration`
|
||||
- ƒ **ask_delete_on_failure** (`Function`)
|
||||
- 📝 Запрашивает у пользователя, следует ли удалять дашборд при ошибке импорта.
|
||||
- 🔗 CALLS -> `yesno`
|
||||
- ƒ **select_environments** (`Function`)
|
||||
- 📝 Позволяет пользователю выбрать исходное и целевое окружения Superset.
|
||||
- 🔗 CALLS -> `setup_clients`
|
||||
- 🔗 CALLS -> `menu`
|
||||
- ƒ **select_dashboards** (`Function`)
|
||||
- 📝 Позволяет пользователю выбрать набор дашбордов для миграции.
|
||||
- 🔗 CALLS -> `self.from_c.get_dashboards`
|
||||
- 🔗 CALLS -> `checklist`
|
||||
- ƒ **confirm_db_config_replacement** (`Function`)
|
||||
- 📝 Запрашивает у пользователя, требуется ли заменить имена БД в YAML-файлах.
|
||||
- 🔗 CALLS -> `yesno`
|
||||
- 🔗 CALLS -> `self._select_databases`
|
||||
- ƒ **_select_databases** (`Function`)
|
||||
- 📝 Позволяет пользователю выбрать исходную и целевую БД через API.
|
||||
- 🔗 CALLS -> `self.from_c.get_databases`
|
||||
- 🔗 CALLS -> `self.to_c.get_databases`
|
||||
- 🔗 CALLS -> `self.from_c.get_database`
|
||||
- 🔗 CALLS -> `self.to_c.get_database`
|
||||
- 🔗 CALLS -> `menu`
|
||||
- ƒ **_batch_delete_by_ids** (`Function`)
|
||||
- 📝 Удаляет набор дашбордов по их ID единым запросом.
|
||||
- 🔗 CALLS -> `self.to_c.network.request`
|
||||
- ƒ **execute_migration** (`Function`)
|
||||
- 📝 Выполняет экспорт-импорт дашбордов, обрабатывает ошибки и, при необходимости, выполняет процедуру восстановления.
|
||||
- 🔗 CALLS -> `self.from_c.export_dashboard`
|
||||
- 🔗 CALLS -> `create_temp_file`
|
||||
- 🔗 CALLS -> `update_yamls`
|
||||
- 🔗 CALLS -> `create_dashboard_export`
|
||||
- 🔗 CALLS -> `self.to_c.import_dashboard`
|
||||
- 🔗 CALLS -> `self._batch_delete_by_ids`
|
||||
- 📦 **superset_tool.exceptions** (`Module`)
|
||||
- 📝 Определяет иерархию пользовательских исключений для всего инструмента, обеспечивая единую точку обработки ошибок.
|
||||
- 🏗️ Layer: Infra
|
||||
- ℂ **SupersetToolError** (`Class`)
|
||||
- 📝 Базовый класс для всех ошибок, генерируемых инструментом.
|
||||
- 🔗 INHERITS_FROM -> `Exception`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes the base tool error.
|
||||
- ℂ **AuthenticationError** (`Class`)
|
||||
- 📝 Ошибки, связанные с аутентификацией или авторизацией.
|
||||
- 🔗 INHERITS_FROM -> `SupersetToolError`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes an authentication error.
|
||||
- ℂ **PermissionDeniedError** (`Class`)
|
||||
- 📝 Ошибка, возникающая при отказе в доступе к ресурсу.
|
||||
- 🔗 INHERITS_FROM -> `AuthenticationError`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes a permission denied error.
|
||||
- ℂ **SupersetAPIError** (`Class`)
|
||||
- 📝 Общие ошибки при взаимодействии с Superset API.
|
||||
- 🔗 INHERITS_FROM -> `SupersetToolError`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes a Superset API error.
|
||||
- ℂ **ExportError** (`Class`)
|
||||
- 📝 Ошибки, специфичные для операций экспорта.
|
||||
- 🔗 INHERITS_FROM -> `SupersetAPIError`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes an export error.
|
||||
- ℂ **DashboardNotFoundError** (`Class`)
|
||||
- 📝 Ошибка, когда запрошенный дашборд или ресурс не найден (404).
|
||||
- 🔗 INHERITS_FROM -> `SupersetAPIError`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes a dashboard not found error.
|
||||
- ℂ **DatasetNotFoundError** (`Class`)
|
||||
- 📝 Ошибка, когда запрашиваемый набор данных не существует (404).
|
||||
- 🔗 INHERITS_FROM -> `SupersetAPIError`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes a dataset not found error.
|
||||
- ℂ **InvalidZipFormatError** (`Class`)
|
||||
- 📝 Ошибка, указывающая на некорректный формат или содержимое ZIP-архива.
|
||||
- 🔗 INHERITS_FROM -> `SupersetToolError`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes an invalid ZIP format error.
|
||||
- ℂ **NetworkError** (`Class`)
|
||||
- 📝 Ошибки, связанные с сетевым соединением.
|
||||
- 🔗 INHERITS_FROM -> `SupersetToolError`
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes a network error.
|
||||
- ℂ **FileOperationError** (`Class`)
|
||||
- 📝 Общие ошибки файловых операций (I/O).
|
||||
- 🔗 INHERITS_FROM -> `SupersetToolError`
|
||||
- ℂ **InvalidFileStructureError** (`Class`)
|
||||
- 📝 Ошибка, указывающая на некорректную структуру файлов или директорий.
|
||||
- 🔗 INHERITS_FROM -> `FileOperationError`
|
||||
- ℂ **ConfigurationError** (`Class`)
|
||||
- 📝 Ошибки, связанные с неверной конфигурацией инструмента.
|
||||
- 🔗 INHERITS_FROM -> `SupersetToolError`
|
||||
- 📦 **superset_tool.models** (`Module`)
|
||||
- 📝 Определяет Pydantic-модели для конфигурации инструмента, обеспечивая валидацию данных.
|
||||
- 🏗️ Layer: Infra
|
||||
- 🔗 DEPENDS_ON -> `pydantic`
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.utils.logger`
|
||||
- ℂ **SupersetConfig** (`Class`)
|
||||
- 📝 Модель конфигурации для подключения к одному экземпляру Superset API.
|
||||
- 🔗 INHERITS_FROM -> `pydantic.BaseModel`
|
||||
- ƒ **validate_auth** (`Function`)
|
||||
- 📝 Проверяет, что словарь `auth` содержит все необходимые для аутентификации поля.
|
||||
- ƒ **normalize_base_url** (`Function`)
|
||||
- 📝 Нормализует `base_url`, добавляя `/api/v1`, если он отсутствует.
|
||||
- ℂ **DatabaseConfig** (`Class`)
|
||||
- 📝 Модель для параметров трансформации баз данных при миграции дашбордов.
|
||||
- 🔗 INHERITS_FROM -> `pydantic.BaseModel`
|
||||
- ƒ **validate_config** (`Function`)
|
||||
- 📝 Проверяет, что словарь `database_config` содержит ключи 'old' и 'new'.
|
||||
- 📦 **superset_tool.client** (`Module`)
|
||||
- 📝 Предоставляет высокоуровневый клиент для взаимодействия с Superset REST API, инкапсулируя логику запросов, обработку ошибок и пагинацию.
|
||||
- 🏗️ Layer: Domain
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.models`
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.exceptions`
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.utils`
|
||||
- ℂ **SupersetClient** (`Class`)
|
||||
- 📝 Класс-обёртка над Superset REST API, предоставляющий методы для работы с дашбордами и датасетами.
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Инициализирует клиент, проверяет конфигурацию и создает сетевой клиент.
|
||||
- ƒ **_validate_config** (`Function`)
|
||||
- 📝 Проверяет, что переданный объект конфигурации имеет корректный тип.
|
||||
- ƒ **headers** (`Function`)
|
||||
- 📝 Возвращает базовые HTTP-заголовки, используемые сетевым клиентом.
|
||||
- ƒ **get_dashboards** (`Function`)
|
||||
- 📝 Получает полный список дашбордов, автоматически обрабатывая пагинацию.
|
||||
- 🔗 CALLS -> `self._fetch_total_object_count`
|
||||
- 🔗 CALLS -> `self._fetch_all_pages`
|
||||
- ƒ **export_dashboard** (`Function`)
|
||||
- 📝 Экспортирует дашборд в виде ZIP-архива.
|
||||
- 🔗 CALLS -> `self.network.request`
|
||||
- ƒ **import_dashboard** (`Function`)
|
||||
- 📝 Импортирует дашборд из ZIP-файла с возможностью автоматического удаления и повторной попытки при ошибке.
|
||||
- 🔗 CALLS -> `self._do_import`
|
||||
- 🔗 CALLS -> `self.delete_dashboard`
|
||||
- 🔗 CALLS -> `self.get_dashboards`
|
||||
- ƒ **_resolve_target_id_for_delete** (`Function`)
|
||||
- 📝 Определяет ID дашборда для удаления, используя ID или slug.
|
||||
- ƒ **_do_import** (`Function`)
|
||||
- 📝 Выполняет один запрос на импорт без обработки исключений.
|
||||
- ƒ **delete_dashboard** (`Function`)
|
||||
- 📝 Удаляет дашборд по его ID или slug.
|
||||
- 🔗 CALLS -> `self.network.request`
|
||||
- ƒ **_extract_dashboard_id_from_zip** (`Function`)
|
||||
- 📝 Извлекает ID дашборда из `metadata.yaml` внутри ZIP-архива.
|
||||
- ƒ **_extract_dashboard_slug_from_zip** (`Function`)
|
||||
- 📝 Извлекает slug дашборда из `metadata.yaml` внутри ZIP-архива.
|
||||
- ƒ **_validate_export_response** (`Function`)
|
||||
- 📝 Проверяет, что HTTP-ответ на экспорт является валидным ZIP-архивом.
|
||||
- ƒ **_resolve_export_filename** (`Function`)
|
||||
- 📝 Определяет имя файла для экспорта из заголовков или генерирует его.
|
||||
- ƒ **_validate_query_params** (`Function`)
|
||||
- 📝 Формирует корректный набор параметров запроса с пагинацией.
|
||||
- ƒ **_fetch_total_object_count** (`Function`)
|
||||
- 📝 Получает общее количество объектов по указанному эндпоинту для пагинации.
|
||||
- ƒ **_fetch_all_pages** (`Function`)
|
||||
- 📝 Итерируется по всем страницам пагинированного API и собирает все данные.
|
||||
- ƒ **_validate_import_file** (`Function`)
|
||||
- 📝 Проверяет, что файл существует, является ZIP-архивом и содержит `metadata.yaml`.
|
||||
- ƒ **get_datasets** (`Function`)
|
||||
- 📝 Получает полный список датасетов, автоматически обрабатывая пагинацию.
|
||||
- 🔗 CALLS -> `self._fetch_total_object_count`
|
||||
- 🔗 CALLS -> `self._fetch_all_pages`
|
||||
- ƒ **get_databases** (`Function`)
|
||||
- 📝 Получает полный список баз данных, автоматически обрабатывая пагинацию.
|
||||
- 🔗 CALLS -> `self._fetch_total_object_count`
|
||||
- 🔗 CALLS -> `self._fetch_all_pages`
|
||||
- ƒ **get_dataset** (`Function`)
|
||||
- 📝 Получает информацию о конкретном датасете по его ID.
|
||||
- 🔗 CALLS -> `self.network.request`
|
||||
- ƒ **get_database** (`Function`)
|
||||
- 📝 Получает информацию о конкретной базе данных по её ID.
|
||||
- 🔗 CALLS -> `self.network.request`
|
||||
- ƒ **update_dataset** (`Function`)
|
||||
- 📝 Обновляет данные датасета по его ID.
|
||||
- 🔗 CALLS -> `self.network.request`
|
||||
- 📦 **superset_tool** (`Module`)
|
||||
- 📝 Root package for superset_tool.
|
||||
- 🏗️ Layer: Domain
|
||||
- 📦 **superset_tool.utils.init_clients** (`Module`)
|
||||
- 📝 Централизованно инициализирует клиенты Superset для различных окружений (DEV, PROD, SBX, PREPROD), используя `keyring` для безопасного доступа к паролям.
|
||||
- 🏗️ Layer: Infra
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.models`
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.client`
|
||||
- 🔗 DEPENDS_ON -> `keyring`
|
||||
- ƒ **setup_clients** (`Function`)
|
||||
- 📝 Инициализирует и возвращает словарь клиентов `SupersetClient`.
|
||||
- 📦 **superset_tool.utils.logger** (`Module`)
|
||||
- 📝 Предоставляет универсальную обёртку над стандартным `logging.Logger` для унифицированного создания и управления логгерами с выводом в консоль и/или файл.
|
||||
- 🏗️ Layer: Infra
|
||||
- ƒ **belief_scope** (`Function`)
|
||||
- 📝 Context manager for belief state logging to maintain execution coherence.
|
||||
- ℂ **SupersetLogger** (`Class`)
|
||||
- 📝 Обёртка над `logging.Logger`, которая упрощает конфигурацию и использование логгеров.
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Конфигурирует и инициализирует логгер, добавляя обработчики для файла и/или консоли.
|
||||
- ƒ **_log** (`Function`)
|
||||
- 📝 (Helper) Универсальный метод для вызова соответствующего уровня логирования.
|
||||
- ƒ **info** (`Function`)
|
||||
- 📝 Записывает сообщение уровня INFO.
|
||||
- ƒ **debug** (`Function`)
|
||||
- 📝 Записывает сообщение уровня DEBUG.
|
||||
- ƒ **warning** (`Function`)
|
||||
- 📝 Записывает сообщение уровня WARNING.
|
||||
- ƒ **error** (`Function`)
|
||||
- 📝 Записывает сообщение уровня ERROR.
|
||||
- ƒ **critical** (`Function`)
|
||||
- 📝 Записывает сообщение уровня CRITICAL.
|
||||
- ƒ **exception** (`Function`)
|
||||
- 📝 Записывает сообщение уровня ERROR вместе с трассировкой стека текущего исключения.
|
||||
- 📦 **belief_scope** (`Method`)
|
||||
- 📝 Instance method wrapper for belief_scope context manager.
|
||||
- 📦 **superset_tool.utils.fileio** (`Module`)
|
||||
- 📝 Предоставляет набор утилит для управления файловыми операциями, включая работу с временными файлами, архивами ZIP, файлами YAML и очистку директорий.
|
||||
- 🏗️ Layer: Infra
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.exceptions`
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.utils.logger`
|
||||
- 🔗 DEPENDS_ON -> `pyyaml`
|
||||
- ƒ **create_temp_file** (`Function`)
|
||||
- 📝 Контекстный менеджер для создания временного файла или директории с гарантированным удалением.
|
||||
- ƒ **remove_empty_directories** (`Function`)
|
||||
- 📝 Рекурсивно удаляет все пустые поддиректории, начиная с указанного пути.
|
||||
- ƒ **read_dashboard_from_disk** (`Function`)
|
||||
- 📝 Читает бинарное содержимое файла с диска.
|
||||
- ƒ **calculate_crc32** (`Function`)
|
||||
- 📝 Вычисляет контрольную сумму CRC32 для файла.
|
||||
- 📦 **RetentionPolicy** (`DataClass`)
|
||||
- 📝 Определяет политику хранения для архивов (ежедневные, еженедельные, ежемесячные).
|
||||
- ƒ **archive_exports** (`Function`)
|
||||
- 📝 Управляет архивом экспортированных файлов, применяя политику хранения и дедупликацию.
|
||||
- 🔗 CALLS -> `apply_retention_policy`
|
||||
- 🔗 CALLS -> `calculate_crc32`
|
||||
- ƒ **apply_retention_policy** (`Function`)
|
||||
- 📝 (Helper) Применяет политику хранения к списку файлов, возвращая те, что нужно сохранить.
|
||||
- ƒ **save_and_unpack_dashboard** (`Function`)
|
||||
- 📝 Сохраняет бинарное содержимое ZIP-архива на диск и опционально распаковывает его.
|
||||
- ƒ **update_yamls** (`Function`)
|
||||
- 📝 Обновляет конфигурации в YAML-файлах, заменяя значения или применяя regex.
|
||||
- 🔗 CALLS -> `_update_yaml_file`
|
||||
- ƒ **_update_yaml_file** (`Function`)
|
||||
- 📝 (Helper) Обновляет один YAML файл.
|
||||
- ƒ **replacer** (`Function`)
|
||||
- 📝 Функция замены, сохраняющая кавычки если они были.
|
||||
- ƒ **create_dashboard_export** (`Function`)
|
||||
- 📝 Создает ZIP-архив из указанных исходных путей.
|
||||
- ƒ **sanitize_filename** (`Function`)
|
||||
- 📝 Очищает строку от символов, недопустимых в именах файлов.
|
||||
- ƒ **get_filename_from_headers** (`Function`)
|
||||
- 📝 Извлекает имя файла из HTTP заголовка 'Content-Disposition'.
|
||||
- ƒ **consolidate_archive_folders** (`Function`)
|
||||
- 📝 Консолидирует директории архивов на основе общего слага в имени.
|
||||
- 📦 **superset_tool.utils.network** (`Module`)
|
||||
- 📝 Инкапсулирует низкоуровневую HTTP-логику для взаимодействия с Superset API, включая аутентификацию, управление сессией, retry-логику и обработку ошибок.
|
||||
- 🏗️ Layer: Infra
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.exceptions`
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.utils.logger`
|
||||
- 🔗 DEPENDS_ON -> `requests`
|
||||
- ℂ **APIClient** (`Class`)
|
||||
- 📝 Инкапсулирует HTTP-логику для работы с API, включая сессии, аутентификацию, и обработку запросов.
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Инициализирует API клиент с конфигурацией, сессией и логгером.
|
||||
- ƒ **_init_session** (`Function`)
|
||||
- 📝 Создает и настраивает `requests.Session` с retry-логикой.
|
||||
- ƒ **authenticate** (`Function`)
|
||||
- 📝 Выполняет аутентификацию в Superset API и получает access и CSRF токены.
|
||||
- ƒ **headers** (`Function`)
|
||||
- 📝 Возвращает HTTP-заголовки для аутентифицированных запросов.
|
||||
- ƒ **request** (`Function`)
|
||||
- 📝 Выполняет универсальный HTTP-запрос к API.
|
||||
- ƒ **_handle_http_error** (`Function`)
|
||||
- 📝 (Helper) Преобразует HTTP ошибки в кастомные исключения.
|
||||
- ƒ **_handle_network_error** (`Function`)
|
||||
- 📝 (Helper) Преобразует сетевые ошибки в `NetworkError`.
|
||||
- ƒ **upload_file** (`Function`)
|
||||
- 📝 Загружает файл на сервер через multipart/form-data.
|
||||
- ƒ **_perform_upload** (`Function`)
|
||||
- 📝 (Helper) Выполняет POST запрос с файлом.
|
||||
- ƒ **fetch_paginated_count** (`Function`)
|
||||
- 📝 Получает общее количество элементов для пагинации.
|
||||
- ƒ **fetch_paginated_data** (`Function`)
|
||||
- 📝 Автоматически собирает данные со всех страниц пагинированного эндпоинта.
|
||||
- 📦 **superset_tool.utils.whiptail_fallback** (`Module`)
|
||||
- 📝 Предоставляет плотный консольный UI-fallback для интерактивных диалогов, имитируя `whiptail` для систем, где он недоступен.
|
||||
- 🏗️ Layer: UI
|
||||
- ƒ **menu** (`Function`)
|
||||
- 📝 Отображает меню выбора и возвращает выбранный элемент.
|
||||
- ƒ **checklist** (`Function`)
|
||||
- 📝 Отображает список с возможностью множественного выбора.
|
||||
- ƒ **yesno** (`Function`)
|
||||
- 📝 Задает вопрос с ответом да/нет.
|
||||
- ƒ **msgbox** (`Function`)
|
||||
- 📝 Отображает информационное сообщение.
|
||||
- ƒ **inputbox** (`Function`)
|
||||
- 📝 Запрашивает у пользователя текстовый ввод.
|
||||
- ℂ **_ConsoleGauge** (`Class`)
|
||||
- 📝 Контекстный менеджер для имитации `whiptail gauge` в консоли.
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes the gauge.
|
||||
- ƒ **__enter__** (`Function`)
|
||||
- 📝 Enters the context.
|
||||
- ƒ **__exit__** (`Function`)
|
||||
- 📝 Exits the context.
|
||||
- ƒ **set_text** (`Function`)
|
||||
- 📝 Sets the gauge text.
|
||||
- ƒ **set_percent** (`Function`)
|
||||
- 📝 Sets the gauge percentage.
|
||||
- ƒ **gauge** (`Function`)
|
||||
- 📝 Создает и возвращает экземпляр `_ConsoleGauge`.
|
||||
- 📦 **superset_tool.utils.dataset_mapper** (`Module`)
|
||||
- 📝 Этот модуль отвечает за обновление метаданных (verbose_map) в датасетах Superset, извлекая их из PostgreSQL или XLSX-файлов.
|
||||
- 🏗️ Layer: Domain
|
||||
- 🔗 DEPENDS_ON -> `superset_tool.client`
|
||||
- 🔗 DEPENDS_ON -> `pandas`
|
||||
- 🔗 DEPENDS_ON -> `psycopg2`
|
||||
- ℂ **DatasetMapper** (`Class`)
|
||||
- 📝 Класс для меппинга и обновления verbose_map в датасетах Superset.
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes the mapper.
|
||||
- ƒ **get_postgres_comments** (`Function`)
|
||||
- 📝 Извлекает комментарии к колонкам из системного каталога PostgreSQL.
|
||||
- ƒ **load_excel_mappings** (`Function`)
|
||||
- 📝 Загружает меппинги 'column_name' -> 'column_comment' из XLSX файла.
|
||||
- ƒ **run_mapping** (`Function`)
|
||||
- 📝 Основная функция для выполнения меппинга и обновления verbose_map датасета в Superset.
|
||||
- 🔗 CALLS -> `self.get_postgres_comments`
|
||||
- 🔗 CALLS -> `self.load_excel_mappings`
|
||||
- 🔗 CALLS -> `superset_client.get_dataset`
|
||||
- 🔗 CALLS -> `superset_client.update_dataset`
|
||||
- 📦 **superset_tool.utils** (`Module`)
|
||||
- 📝 Utility package for superset_tool.
|
||||
- 🏗️ Layer: Infra
|
||||
- 📦 **main** (`Module`)
|
||||
- 📝 Entry point for the Svelte application.
|
||||
- 🏗️ Layer: UI-Entry
|
||||
@@ -454,14 +110,17 @@
|
||||
- 📝 Handles task creation from dynamic form submission.
|
||||
- ƒ **load** (`Function`)
|
||||
- 📝 Loads initial plugin data for the dashboard.
|
||||
- ƒ **loadInitialData** (`Function`)
|
||||
- 📝 Loads tasks and environments on page initialization.
|
||||
- ƒ **refreshTasks** (`Function`)
|
||||
- 📝 Periodically refreshes the task list.
|
||||
- ƒ **handleSelectTask** (`Function`)
|
||||
- 📝 Updates the selected task ID when a task is clicked.
|
||||
- ƒ **handleRunBackup** (`Function`)
|
||||
- 📝 Triggers a manual backup task for the selected environment.
|
||||
- 🧩 **TaskManagementPage** (`Component`)
|
||||
- 📝 Page for managing and monitoring tasks.
|
||||
- 🏗️ Layer: Page
|
||||
- ƒ **loadInitialData** (`Function`)
|
||||
- 📝 Loads tasks and environments on page initialization.
|
||||
- ƒ **refreshTasks** (`Function`)
|
||||
- 📝 Periodically refreshes the task list.
|
||||
- ƒ **handleSelectTask** (`Function`)
|
||||
- 📝 Updates the selected task ID when a task is clicked.
|
||||
- ƒ **handleRunBackup** (`Function`)
|
||||
- 📝 Triggers a manual backup task for the selected environment.
|
||||
- 🧩 **MigrationDashboard** (`Component`)
|
||||
- 📝 Main dashboard for configuring and starting migrations.
|
||||
- 🏗️ Layer: Page
|
||||
@@ -579,7 +238,7 @@
|
||||
- ƒ **getSuggestion** (`Function`)
|
||||
- 📝 Finds a suggestion for a source database.
|
||||
- 🧩 **TaskLogViewer** (`Component`)
|
||||
- 📝 Displays detailed logs for a specific task in a modal.
|
||||
- 📝 Displays detailed logs for a specific task in a modal or inline.
|
||||
- 🏗️ Layer: UI
|
||||
- ƒ **fetchLogs** (`Function`)
|
||||
- 📝 Fetches logs for the current task.
|
||||
@@ -745,21 +404,48 @@
|
||||
- ƒ **get_scheduler_service** (`Function`)
|
||||
- 📝 Dependency injector for the SchedulerService.
|
||||
- 📦 **backend.src.core.superset_client** (`Module`)
|
||||
- 📝 Extends the base SupersetClient with database-specific metadata fetching.
|
||||
- 📝 Предоставляет высокоуровневый клиент для взаимодействия с Superset REST API, инкапсулируя логику запросов, обработку ошибок и пагинацию.
|
||||
- 🏗️ Layer: Core
|
||||
- 🔗 INHERITS_FROM -> `superset_tool.client.SupersetClient`
|
||||
- ℂ **SupersetClient** (`Class`)
|
||||
- 📝 Extended SupersetClient for migration-specific operations.
|
||||
- 📝 Класс-обёртка над Superset REST API, предоставляющий методы для работы с дашбордами и датасетами.
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Инициализирует клиент, проверяет конфигурацию и создает сетевой клиент.
|
||||
- ƒ **authenticate** (`Function`)
|
||||
- 📝 Authenticates the client using the configured credentials.
|
||||
- ƒ **headers** (`Function`)
|
||||
- 📝 Возвращает базовые HTTP-заголовки, используемые сетевым клиентом.
|
||||
- ƒ **get_dashboards** (`Function`)
|
||||
- 📝 Получает полный список дашбордов, автоматически обрабатывая пагинацию.
|
||||
- ƒ **get_dashboards_summary** (`Function`)
|
||||
- 📝 Fetches dashboard metadata optimized for the grid.
|
||||
- ƒ **export_dashboard** (`Function`)
|
||||
- 📝 Экспортирует дашборд в виде ZIP-архива.
|
||||
- ƒ **import_dashboard** (`Function`)
|
||||
- 📝 Импортирует дашборд из ZIP-файла.
|
||||
- ƒ **delete_dashboard** (`Function`)
|
||||
- 📝 Удаляет дашборд по его ID или slug.
|
||||
- ƒ **get_datasets** (`Function`)
|
||||
- 📝 Получает полный список датасетов, автоматически обрабатывая пагинацию.
|
||||
- ƒ **get_dataset** (`Function`)
|
||||
- 📝 Получает информацию о конкретном датасете по его ID.
|
||||
- ƒ **update_dataset** (`Function`)
|
||||
- 📝 Обновляет данные датасета по его ID.
|
||||
- ƒ **get_databases** (`Function`)
|
||||
- 📝 Получает полный список баз данных.
|
||||
- ƒ **get_database** (`Function`)
|
||||
- 📝 Получает информацию о конкретной базе данных по её ID.
|
||||
- ƒ **get_databases_summary** (`Function`)
|
||||
- 📝 Fetch a summary of databases including uuid, name, and engine.
|
||||
- ƒ **get_database_by_uuid** (`Function`)
|
||||
- 📝 Find a database by its UUID.
|
||||
- ƒ **get_dashboards_summary** (`Function`)
|
||||
- 📝 Fetches dashboard metadata optimized for the grid.
|
||||
- ƒ **get_dataset** (`Function`)
|
||||
- 📝 Fetch full dataset structure including columns and metrics.
|
||||
- ƒ **update_dataset** (`Function`)
|
||||
- 📝 Update dataset metadata.
|
||||
- ƒ **_resolve_target_id_for_delete** (`Function`)
|
||||
- ƒ **_do_import** (`Function`)
|
||||
- ƒ **_validate_export_response** (`Function`)
|
||||
- ƒ **_resolve_export_filename** (`Function`)
|
||||
- ƒ **_validate_query_params** (`Function`)
|
||||
- ƒ **_fetch_total_object_count** (`Function`)
|
||||
- ƒ **_fetch_all_pages** (`Function`)
|
||||
- ƒ **_validate_import_file** (`Function`)
|
||||
- 📦 **ConfigManagerModule** (`Module`)
|
||||
- 📝 Manages application configuration, including loading/saving to JSON and CRUD for environments.
|
||||
- 🏗️ Layer: Core
|
||||
@@ -785,6 +471,8 @@
|
||||
- 📝 Returns the list of configured environments.
|
||||
- ƒ **has_environments** (`Function`)
|
||||
- 📝 Checks if at least one environment is configured.
|
||||
- ƒ **get_environment** (`Function`)
|
||||
- 📝 Returns a single environment by ID.
|
||||
- ƒ **add_environment** (`Function`)
|
||||
- 📝 Adds a new environment to the configuration.
|
||||
- ƒ **update_environment** (`Function`)
|
||||
@@ -862,6 +550,8 @@
|
||||
- 📝 Returns a list of recent log entries from the buffer.
|
||||
- 📦 **Logger** (`Global`)
|
||||
- 📝 The global logger instance for the application, configured with both a console handler and the custom WebSocket handler.
|
||||
- ƒ **believed** (`Function`)
|
||||
- 📝 A decorator that wraps a function in a belief scope.
|
||||
- ℂ **PluginLoader** (`Class`)
|
||||
- 📝 Scans a specified directory for Python modules, dynamically loads them, and registers any classes that are valid implementations of the PluginBase interface.
|
||||
- 🏗️ Layer: Core
|
||||
@@ -907,12 +597,76 @@
|
||||
- ℂ **PluginConfig** (`Class`)
|
||||
- 📝 A Pydantic model used to represent the validated configuration and metadata of a loaded plugin. This object is what gets exposed to the API layer.
|
||||
- 🏗️ Layer: Core
|
||||
- 📦 **backend.core.utils.fileio** (`Module`)
|
||||
- 📝 Предоставляет набор утилит для управления файловыми операциями, включая работу с временными файлами, архивами ZIP, файлами YAML и очистку директорий.
|
||||
- 🏗️ Layer: Infra
|
||||
- 🔗 DEPENDS_ON -> `backend.src.core.logger`
|
||||
- 🔗 DEPENDS_ON -> `pyyaml`
|
||||
- ℂ **InvalidZipFormatError** (`Class`)
|
||||
- ƒ **create_temp_file** (`Function`)
|
||||
- 📝 Контекстный менеджер для создания временного файла или директории с гарантированным удалением.
|
||||
- ƒ **remove_empty_directories** (`Function`)
|
||||
- 📝 Рекурсивно удаляет все пустые поддиректории, начиная с указанного пути.
|
||||
- ƒ **read_dashboard_from_disk** (`Function`)
|
||||
- 📝 Читает бинарное содержимое файла с диска.
|
||||
- ƒ **calculate_crc32** (`Function`)
|
||||
- 📝 Вычисляет контрольную сумму CRC32 для файла.
|
||||
- 📦 **RetentionPolicy** (`DataClass`)
|
||||
- 📝 Определяет политику хранения для архивов (ежедневные, еженедельные, ежемесячные).
|
||||
- ƒ **archive_exports** (`Function`)
|
||||
- 📝 Управляет архивом экспортированных файлов, применяя политику хранения и дедупликацию.
|
||||
- 🔗 CALLS -> `apply_retention_policy`
|
||||
- 🔗 CALLS -> `calculate_crc32`
|
||||
- ƒ **apply_retention_policy** (`Function`)
|
||||
- 📝 (Helper) Применяет политику хранения к списку файлов, возвращая те, что нужно сохранить.
|
||||
- ƒ **save_and_unpack_dashboard** (`Function`)
|
||||
- 📝 Сохраняет бинарное содержимое ZIP-архива на диск и опционально распаковывает его.
|
||||
- ƒ **update_yamls** (`Function`)
|
||||
- 📝 Обновляет конфигурации в YAML-файлах, заменяя значения или применяя regex.
|
||||
- 🔗 CALLS -> `_update_yaml_file`
|
||||
- ƒ **_update_yaml_file** (`Function`)
|
||||
- 📝 (Helper) Обновляет один YAML файл.
|
||||
- ƒ **create_dashboard_export** (`Function`)
|
||||
- 📝 Создает ZIP-архив из указанных исходных путей.
|
||||
- ƒ **sanitize_filename** (`Function`)
|
||||
- 📝 Очищает строку от символов, недопустимых в именах файлов.
|
||||
- ƒ **get_filename_from_headers** (`Function`)
|
||||
- 📝 Извлекает имя файла из HTTP заголовка 'Content-Disposition'.
|
||||
- ƒ **consolidate_archive_folders** (`Function`)
|
||||
- 📝 Консолидирует директории архивов на основе общего слага в имени.
|
||||
- 📦 **backend.core.utils.network** (`Module`)
|
||||
- 📝 Инкапсулирует низкоуровневую HTTP-логику для взаимодействия с Superset API, включая аутентификацию, управление сессией, retry-логику и обработку ошибок.
|
||||
- 🏗️ Layer: Infra
|
||||
- 🔗 DEPENDS_ON -> `backend.src.core.logger`
|
||||
- 🔗 DEPENDS_ON -> `requests`
|
||||
- ℂ **SupersetAPIError** (`Class`)
|
||||
- ℂ **AuthenticationError** (`Class`)
|
||||
- 📦 **backend.src.core.utils.matching** (`Module`)
|
||||
- 📝 Provides utility functions for fuzzy matching database names.
|
||||
- 🏗️ Layer: Core
|
||||
- 🔗 DEPENDS_ON -> `rapidfuzz`
|
||||
- ƒ **suggest_mappings** (`Function`)
|
||||
- 📝 Suggests mappings between source and target databases using fuzzy matching.
|
||||
- 📦 **backend.core.utils.dataset_mapper** (`Module`)
|
||||
- 📝 Этот модуль отвечает за обновление метаданных (verbose_map) в датасетах Superset, извлекая их из PostgreSQL или XLSX-файлов.
|
||||
- 🏗️ Layer: Domain
|
||||
- 🔗 DEPENDS_ON -> `backend.core.superset_client`
|
||||
- 🔗 DEPENDS_ON -> `pandas`
|
||||
- 🔗 DEPENDS_ON -> `psycopg2`
|
||||
- ℂ **DatasetMapper** (`Class`)
|
||||
- 📝 Класс для меппинга и обновления verbose_map в датасетах Superset.
|
||||
- ƒ **__init__** (`Function`)
|
||||
- 📝 Initializes the mapper.
|
||||
- ƒ **get_postgres_comments** (`Function`)
|
||||
- 📝 Извлекает комментарии к колонкам из системного каталога PostgreSQL.
|
||||
- ƒ **load_excel_mappings** (`Function`)
|
||||
- 📝 Загружает меппинги 'column_name' -> 'column_comment' из XLSX файла.
|
||||
- ƒ **run_mapping** (`Function`)
|
||||
- 📝 Основная функция для выполнения меппинга и обновления verbose_map датасета в Superset.
|
||||
- 🔗 CALLS -> `self.get_postgres_comments`
|
||||
- 🔗 CALLS -> `self.load_excel_mappings`
|
||||
- 🔗 CALLS -> `superset_client.get_dataset`
|
||||
- 🔗 CALLS -> `superset_client.update_dataset`
|
||||
- 📦 **TaskPersistenceModule** (`Module`)
|
||||
- 📝 Handles the persistence of tasks using SQLAlchemy and the tasks.db database.
|
||||
- 🏗️ Layer: Core
|
||||
@@ -1228,10 +982,8 @@
|
||||
- 📝 Returns the JSON schema for migration plugin parameters.
|
||||
- ƒ **execute** (`Function`)
|
||||
- 📝 Executes the dashboard migration logic.
|
||||
- ƒ **test_superset_config_url_normalization** (`Function`)
|
||||
- 📝 Tests that SupersetConfig correctly normalizes the base URL.
|
||||
- ƒ **test_superset_config_invalid_url** (`Function`)
|
||||
- 📝 Tests that SupersetConfig raises ValueError for invalid URLs.
|
||||
- ƒ **test_environment_model** (`Function`)
|
||||
- 📝 Tests that Environment model correctly stores values.
|
||||
- ƒ **test_belief_scope_logs_entry_action_exit** (`Function`)
|
||||
- 📝 Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs.
|
||||
- ƒ **test_belief_scope_error_handling** (`Function`)
|
||||
|
||||
Reference in New Issue
Block a user