diff --git a/pybreeze/extend_multi_language/extend_english.py b/pybreeze/extend_multi_language/extend_english.py index 891edaf2..fe707529 100644 --- a/pybreeze/extend_multi_language/extend_english.py +++ b/pybreeze/extend_multi_language/extend_english.py @@ -177,7 +177,7 @@ "ssh_command_widget_dialog_title_key_error": "Key error", "ssh_command_widget_dialog_message_key_file_not_exist": "Key file does not exist.", "ssh_command_widget_error_message_unsupported_private_key": "Unsupported or invalid private key.", - "ssh_key_error_passphrase_needed": "The private key is protected by a passphrase: enter it in the Passphrase field.", + "ssh_key_error_passphrase_needed": "The private key is protected by a passphrase: enter it in the Passphrase field.", # nosec B105 # NOSONAR S2068 — UI text "ssh_key_error_passphrase_wrong": "The passphrase for the private key is wrong.", "ssh_key_error_putty_key": "This is a PuTTY key (.ppk), which cannot be used here: load it in PuTTYgen, " "choose Conversions > Export OpenSSH key, and pick the exported file.", @@ -275,11 +275,11 @@ "ssh_login_widget_label_user": "User", "ssh_login_widget_label_key": "Key", "ssh_login_widget_label_password": "Password", - "ssh_login_widget_label_passphrase": "Passphrase", + "ssh_login_widget_label_passphrase": "Passphrase", # nosec B105 # NOSONAR S2068 — UI text "ssh_login_widget_placeholder_host": "Host name or IP address", "ssh_login_widget_placeholder_username": "Username", "ssh_login_widget_placeholder_password": "Password", - "ssh_login_widget_placeholder_passphrase": "The key's passphrase, if it has one", + "ssh_login_widget_placeholder_passphrase": "The key's passphrase, if it has one", # nosec B105 # NOSONAR S2068 — UI text "ssh_login_widget_placeholder_private_key": "Private key path (OpenSSH or PEM)", "ssh_login_widget_button_use_key_auth": "Use key auth", "ssh_login_widget_button_connect": "Connect", diff --git a/pybreeze/extend_multi_language/extend_traditional_chinese.py b/pybreeze/extend_multi_language/extend_traditional_chinese.py index dc586d5f..c9049ca5 100644 --- a/pybreeze/extend_multi_language/extend_traditional_chinese.py +++ b/pybreeze/extend_multi_language/extend_traditional_chinese.py @@ -265,11 +265,11 @@ "ssh_login_widget_label_user": "使用者", "ssh_login_widget_label_key": "金鑰", "ssh_login_widget_label_password": "密碼", - "ssh_login_widget_label_passphrase": "密語", + "ssh_login_widget_label_passphrase": "密語", # nosec B105 # NOSONAR S2068 — UI text "ssh_login_widget_placeholder_host": "主機名稱或 IP 位址", "ssh_login_widget_placeholder_username": "使用者名稱", "ssh_login_widget_placeholder_password": "密碼", - "ssh_login_widget_placeholder_passphrase": "私鑰的密語(沒有就留空)", + "ssh_login_widget_placeholder_passphrase": "私鑰的密語(沒有就留空)", # nosec B105 # NOSONAR S2068 — UI text "ssh_login_widget_placeholder_private_key": "私鑰路徑(OpenSSH 或 PEM)", "ssh_login_widget_button_use_key_auth": "使用金鑰驗證", "ssh_login_widget_button_connect": "連線", diff --git a/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_key_loader.py b/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_key_loader.py index 9b1dc5f3..7c739c1b 100644 --- a/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_key_loader.py +++ b/pybreeze/pybreeze_ui/connect_gui/ssh/ssh_key_loader.py @@ -33,7 +33,7 @@ _PUTTY_HEADER = b"PuTTY-User-Key-File-" # PKCS#8, which paramiko does not read (openssl genpkey, ssh-keygen -m PKCS8) -_PKCS8_PLAIN = b"-----BEGIN PRIVATE KEY-----" +_PKCS8_PLAIN = b"-----BEGIN PRIVATE KEY-----" # nosemgrep # gitleaks:allow — a format marker, not a key _PKCS8_ENCRYPTED = b"-----BEGIN ENCRYPTED PRIVATE KEY-----" diff --git a/pybreeze/pybreeze_ui/editor_main/main_ui.py b/pybreeze/pybreeze_ui/editor_main/main_ui.py index 544eccc7..9d099d4a 100644 --- a/pybreeze/pybreeze_ui/editor_main/main_ui.py +++ b/pybreeze/pybreeze_ui/editor_main/main_ui.py @@ -228,8 +228,9 @@ def start_editor(debug_mode: bool = False, theme: str | None = None, **kwargs) - # Qt objects on the worker and crashed the IDE later collect_garbage_on_gui_thread(new_ide) # Held until the application ends: the window is nobody else's - _window = open_main_window(new_ide, debug_mode=debug_mode, theme=theme, **kwargs) + window = open_main_window(new_ide, debug_mode=debug_mode, theme=theme, **kwargs) ret = new_ide.exec() + del window os._exit(ret) diff --git a/pybreeze/utils/curl_import/request_body.py b/pybreeze/utils/curl_import/request_body.py index ce52e8a0..b7289e1f 100644 --- a/pybreeze/utils/curl_import/request_body.py +++ b/pybreeze/utils/curl_import/request_body.py @@ -78,7 +78,8 @@ def _exact_float(text: str) -> float: survives = f"{text} does not survive as a float" if not math.isfinite(value): raise ValueError(survives) - if Decimal(repr(value)) != Decimal(text): + # Decimal compares by value: "1.5" round-trips and this is false + if Decimal(repr(value)) != Decimal(text): # NOSONAR S2583 raise ValueError(survives) return value