Fix crash on Python < 3.14 when paramiko is not installed

The return annotation of _ssh_connect referenced paramiko, which
Python < 3.14 evaluates at class definition, raising NameError when
paramiko (an optional dependency) is missing. Postpone evaluation
of annotations, and mark the return type as Optional.
This commit is contained in:
Fuxino
2026-10-08 17:47:02 +02:00
parent dadc4b0265
commit e2d8897a45
+4 -1
View File
@@ -11,6 +11,9 @@ Classes:
Backup Backup
""" """
# Avoid evaluating annotations at definition time, as they reference optional modules (paramiko)
from __future__ import annotations
# Import libraries # Import libraries
import traceback import traceback
import sys import sys
@@ -327,7 +330,7 @@ class Backup:
except IndexError: except IndexError:
logger.info('No previous backups available') logger.info('No previous backups available')
def _ssh_connect(self, homedir: str = '') -> paramiko.client.SSHClient: def _ssh_connect(self, homedir: str = '') -> Optional[paramiko.client.SSHClient]:
try: try:
ssh = paramiko.SSHClient() ssh = paramiko.SSHClient()
except NameError: except NameError: