app package

Module contents

class app.ConfigManager[source]

Bases : object

Manages configuration state for the UI application.

get_effective_config_path()[source]

Get the effective config path, falling back to default if needed.

Type renvoyé:

Path

toggle_vessel_mode()[source]

Toggle vessel mode and handle mutual exclusivity. Returns True if changed.

Type renvoyé:

bool

toggle_waterline_mode()[source]

Toggle waterline mode and handle mutual exclusivity. Returns True if changed.

Type renvoyé:

bool

update_config_path(path_str)[source]

Update config path from string input.

Type renvoyé:

None

update_output_path(path_str)[source]

Update output path from string input.

Type renvoyé:

None

class app.DependencyContainer[source]

Bases : object

Conteneur pour l’injection de dépendance.

get_config_manager()[source]
Type renvoyé:

ConfigManager

get_file_display()[source]
Type renvoyé:

FileDisplay

get_file_manager()[source]
Type renvoyé:

FileManager

get_file_operations()[source]
Type renvoyé:

FileOperations

get_file_selection_component()[source]
Type renvoyé:

FileSelectionComponentNative

get_log_display()[source]
Type renvoyé:

LogDisplay

get_log_handler()[source]
Type renvoyé:

UILogHandler

get_status_display()[source]
Type renvoyé:

StatusDisplay

get_theme_manager()[source]
Type renvoyé:

ThemeManager

get_ui_event_handler()[source]
Type renvoyé:

UIEventHandler

get_validator()[source]
Type renvoyé:

Validator

class app.FileDisplay(get_files_callback, remove_callback=None)[source]

Bases : object

Component for displaying selected files.

static _format_file_size(size_bytes)[source]

Format file size in human readable format.

Type renvoyé:

str

_create_file_card(file_info)[source]

Create a card for a single file.

Type renvoyé:

None

_handle_remove(file_info)[source]

Handle file removal and update display.

Type renvoyé:

None

create()[source]

Create the file display component.

Type renvoyé:

Column

update()[source]

Update the file display.

Type renvoyé:

None

class app.FileManager[source]

Bases : object

Handles file operations for the application.

static _is_numeric_extension(extension)[source]

Check if the extension is numeric (e.g., .1, .2, .3).

Type renvoyé:

bool

async static open_config_dialog(initial_dir='')[source]

Open config file selection dialog and return selected file.

Type renvoyé:

str

async static open_directory_dialog(initial_dir='')[source]

Open directory selection dialog and return selected directory.

Type renvoyé:

str

_is_duplicate(file_name)[source]

Check if file name already exists in collection.

Type renvoyé:

bool

add_files(file_paths)[source]

Add files to the collection and return number of added files.

Type renvoyé:

int

clear_files()[source]

Clear all files from the collection.

get_file_paths()[source]

Get file paths for processing.

Type renvoyé:

list[Path]

get_files()[source]

Get all files in the collection.

Type renvoyé:

list[dict[str, Any]]

remove_file(file_info)[source]

Remove a file from the collection.

Type renvoyé:

bool

ALLOWED_EXTENSIONS = {'.csv', '.geojson', '.txt', '.xyz'}
class app.FileOperations(config_manager, file_manager, validator)[source]

Bases : object

Handles file-related operations like dialogs and file management.

get_files()[source]

Get files from file manager - delegation method.

remove_file(file_info)[source]

Remove a file from the upload list.

Type renvoyé:

bool

async select_config_file()[source]

Open config file selection dialog.

Type renvoyé:

str | None

async select_output_directory(output_warning_label=None)[source]

Open directory selection dialog.

Type renvoyé:

str | None

class app.FileSelectionComponentNative(file_manager, validator, file_display)[source]

Bases : FileSelectionComponentABC

Component for file selection in the native application.

_add_selected_files(file_paths)[source]

Add selected files from dialog.

_clear_files()[source]

Clear all selected files.

async _open_file_dialog()[source]

Open file selection dialog using native method.

create()[source]

Create the file selection section.

class app.FileSelectionComponentWeb(file_manager, validator, file_display)[source]

Bases : FileSelectionComponentABC

Component for file selection in the web application.

static _handle_rejected(event)[source]

Handle rejected file uploads.

static _save_uploaded_file(file_info)[source]

Save uploaded file content and return file path.

Type renvoyé:

Generator[Path, None, None]

_add_uploaded_files(file_paths)[source]

Add uploaded files to file manager.

_clear_files()[source]

Clear all selected files.

_handle_upload(event)[source]

Handle file upload event.

create()[source]

Create the file selection section.

Type renvoyé:

None

class app.GuiType(value)[source]

Bases : StrEnum

Enumeration for GUI types.

NATIVE = 'native'
WEB = 'web'
class app.HeaderComponent(theme_manager)[source]

Bases : object

Component for application header.

create()[source]

Create the header section.

class app.LogDisplay(log_handler)[source]

Bases : object

Component for displaying log output.

static _get_log_color(log_message)[source]

Get color class based on log level.

Type renvoyé:

str

clear_logs()[source]

Clear all logs.

Type renvoyé:

None

create()[source]

Create the log display component.

Type renvoyé:

Column

hide()[source]

Hide the log display if it’s visible.

Type renvoyé:

None

show()[source]

Show the log display if it’s hidden.

Type renvoyé:

None

toggle_visibility()[source]

Toggle log visibility.

Type renvoyé:

None

update_logs()[source]

Update log display with new log entries.

Type renvoyé:

None

class app.LogSection(log_display)[source]

Bases : object

Component for the log section.

create()[source]

Create log output section.

class app.OptionsComponent(config_path, config_manager, ui_event_handler)[source]

Bases : object

Component for processing options.

_create_left_column()[source]

Create left column of options.

_create_right_column()[source]

Create right column of options.

_handle_config_path_change(e)[source]

Handle config path change.

_handle_output_path_change(e)[source]

Handle output path change.

async _handle_select_config_file()[source]

Handle config file selection.

Type renvoyé:

None

async _handle_select_output_directory()[source]

Handle output directory selection.

_handle_vessel_toggle()[source]

Handle vessel option toggle.

_handle_waterline_toggle()[source]

Handle waterline option toggle.

create()[source]

Create the options section.

class app.ProcessingHandler(config_manager, file_manager, validator, status_display, log_display, log_settings=None)[source]

Bases : object

Handles the file processing workflow.

async _execute_processing_workflow()[source]

Execute the main processing workflow.

Type renvoyé:

None

async _handle_error(error)[source]

Handle processing errors.

Type renvoyé:

None

async _handle_success()[source]

Handle successful processing completion.

Type renvoyé:

None

async _handle_validation_errors(validation_errors)[source]

Handle validation errors.

Type renvoyé:

None

_perform_validation()[source]

Perform comprehensive validation and return list of errors.

Type renvoyé:

list[str]

_prepare_vessel_config()[source]

Prepare vessel configuration based on current settings.

Type renvoyé:

Any

async _run_processing_workflow(valid_files, vessel_config, output, config)[source]

Run the processing workflow in a separate thread.

Type renvoyé:

None

async process_files()[source]

Process the uploaded files.

Type renvoyé:

None

class app.ProcessingSection(process_callback)[source]

Bases : object

Component for the processing section.

async _on_click(*args)[source]

Wrapper that disables the button, runs the callback, then re-enables the button.

create()[source]

Create processing section.

class app.StatusDisplay[source]

Bases : object

Component for displaying processing status.

create()[source]

Create the status display component.

Type renvoyé:

Label

set_status(text, status_type='info')[source]

Set the status with appropriate styling.

Type renvoyé:

None

class app.StatusSection(status_display)[source]

Bases : object

Component for the status section.

create()[source]

Create status section.

class app.ThemeManager(dark_mode=True)[source]

Bases : object

Gestionnaire des thèmes de l’interface utilisateur.

static add_theme_styles()[source]

Ajoute les styles CSS personnalisés pour les thèmes.

Type renvoyé:

None

create_theme_button()[source]

Crée le bouton de basculement de thème.

Type renvoyé:

Button

toggle_theme()[source]

Bascule entre le thème clair et sombre.

Type renvoyé:

None

class app.UIEventHandler(config_manager, file_operations, validator, log_display)[source]

Bases : object

remove_file(file_info, file_selection_component)[source]

Remove a file from the upload list.

Type renvoyé:

None

async select_config_file()[source]

Select config file and return the selected path.

Type renvoyé:

str

async select_output_directory()[source]

Select output directory and return the selected path.

Type renvoyé:

str

toggle_vessel()[source]

Toggle vessel option and return True if waterline was disabled.

Type renvoyé:

bool

toggle_waterline()[source]

Toggle waterline option and return True if vessel was disabled.

Type renvoyé:

bool

update_config_path(path)[source]

Update config_path when input changes.

Type renvoyé:

None

update_output_path(path)[source]

Update output_path when input changes.

Type renvoyé:

None

class app.UILogHandler(level='INFO')[source]

Bases : object

Custom log handler to capture logs for UI display.

clear_logs()[source]

Clear all logs from the queue.

Type renvoyé:

None

get_log_settings()[source]

Get log configuration for external loggers.

Type renvoyé:

dict

get_logs()[source]

Get all available logs from queue.

Type renvoyé:

list[str]

setup_logger()[source]

Setup custom log handler for UI display.

Type renvoyé:

None

write(message)[source]

Write log message to queue.

Type renvoyé:

None

FORMAT: str = '{time:YYYY-MM-DD HH:mm:ss} | {level:^8} | {message}'
class app.UIRunner(main_ui, gui)[source]

Bases : object

Runner for the CSB Processing UI application.

static _find_available_port()[source]

Find an available port for the application.

run()[source]

Run the CSB Processing UI application.

Type renvoyé:

None

class app.Validator(get_files_func, config_manager)[source]

Bases : object

validate_file_selection()[source]

Check if at least one file is selected.

Type renvoyé:

bool

validate_inputs()[source]

Validate all inputs and return list of errors.

Type renvoyé:

list[str]

validate_mutual_exclusivity()[source]

Check vessel and waterline options mutual exclusivity.

Type renvoyé:

bool

validate_output_path()[source]

Check if output path is specified.

Type renvoyé:

bool

validate_vessel_configuration()[source]

Check vessel configuration validity.

Type renvoyé:

bool

validate_waterline_configuration()[source]

Check waterline configuration validity.

Type renvoyé:

bool