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:
@@ -11,6 +11,9 @@ Classes:
|
||||
Backup
|
||||
"""
|
||||
|
||||
# Avoid evaluating annotations at definition time, as they reference optional modules (paramiko)
|
||||
from __future__ import annotations
|
||||
|
||||
# Import libraries
|
||||
import traceback
|
||||
import sys
|
||||
@@ -327,7 +330,7 @@ class Backup:
|
||||
except IndexError:
|
||||
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:
|
||||
ssh = paramiko.SSHClient()
|
||||
except NameError:
|
||||
|
||||
Reference in New Issue
Block a user