Fix Select.BLANK checks across all screens
Replace `is Select.BLANK` / `is not Select.BLANK` with isinstance checks, as the sentinel identity varies across Textual versions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -46,12 +46,12 @@ class BackupScreen(Screen):
|
|||||||
self.app.pop_screen()
|
self.app.pop_screen()
|
||||||
elif event.button.id == "btn-backup":
|
elif event.button.id == "btn-backup":
|
||||||
target_sel = self.query_one("#backup-target", Select)
|
target_sel = self.query_one("#backup-target", Select)
|
||||||
if target_sel.value is Select.BLANK:
|
if not isinstance(target_sel.value, str):
|
||||||
self.notify("Please select a target", severity="error")
|
self.notify("Please select a target", severity="error")
|
||||||
return
|
return
|
||||||
target = str(target_sel.value)
|
target = str(target_sel.value)
|
||||||
remote_sel = self.query_one("#backup-remote", Select)
|
remote_sel = self.query_one("#backup-remote", Select)
|
||||||
remote = str(remote_sel.value) if remote_sel.value != Select.BLANK else ""
|
remote = str(remote_sel.value) if isinstance(remote_sel.value, str) else ""
|
||||||
msg = f"Run backup for target '{target}'?"
|
msg = f"Run backup for target '{target}'?"
|
||||||
if remote:
|
if remote:
|
||||||
msg += f"\nRemote: {remote}"
|
msg += f"\nRemote: {remote}"
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ class RemoteEditScreen(Screen):
|
|||||||
|
|
||||||
def _update_field_visibility(self) -> None:
|
def _update_field_visibility(self) -> None:
|
||||||
type_sel = self.query_one("#re-type", Select)
|
type_sel = self.query_one("#re-type", Select)
|
||||||
rtype = str(type_sel.value) if type_sel.value is not Select.BLANK else "ssh"
|
rtype = str(type_sel.value) if isinstance(type_sel.value, str) else "ssh"
|
||||||
for w in self.query(".ssh-field"):
|
for w in self.query(".ssh-field"):
|
||||||
w.display = rtype == "ssh"
|
w.display = rtype == "ssh"
|
||||||
for w in self.query(".s3-field"):
|
for w in self.query(".s3-field"):
|
||||||
@@ -125,7 +125,7 @@ class RemoteEditScreen(Screen):
|
|||||||
name = self._edit_name
|
name = self._edit_name
|
||||||
|
|
||||||
type_sel = self.query_one("#re-type", Select)
|
type_sel = self.query_one("#re-type", Select)
|
||||||
rtype = str(type_sel.value) if type_sel.value is not Select.BLANK else "ssh"
|
rtype = str(type_sel.value) if isinstance(type_sel.value, str) else "ssh"
|
||||||
|
|
||||||
remote = Remote(
|
remote = Remote(
|
||||||
name=name,
|
name=name,
|
||||||
@@ -133,7 +133,7 @@ class RemoteEditScreen(Screen):
|
|||||||
host=self.query_one("#re-host", Input).value.strip(),
|
host=self.query_one("#re-host", Input).value.strip(),
|
||||||
port=self.query_one("#re-port", Input).value.strip() or "22",
|
port=self.query_one("#re-port", Input).value.strip() or "22",
|
||||||
user=self.query_one("#re-user", Input).value.strip() or "root",
|
user=self.query_one("#re-user", Input).value.strip() or "root",
|
||||||
auth_method=str(self.query_one("#re-auth", Select).value) if self.query_one("#re-auth", Select).value is not Select.BLANK else "key",
|
auth_method=str(self.query_one("#re-auth", Select).value) if isinstance(self.query_one("#re-auth", Select).value, str) else "key",
|
||||||
key=self.query_one("#re-key", Input).value.strip(),
|
key=self.query_one("#re-key", Input).value.strip(),
|
||||||
password=self.query_one("#re-password", Input).value,
|
password=self.query_one("#re-password", Input).value,
|
||||||
base=self.query_one("#re-base", Input).value.strip() or "/backups",
|
base=self.query_one("#re-base", Input).value.strip() or "/backups",
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class RestoreScreen(Screen):
|
|||||||
remote_sel = self.query_one("#restore-remote", Select)
|
remote_sel = self.query_one("#restore-remote", Select)
|
||||||
except Exception:
|
except Exception:
|
||||||
return
|
return
|
||||||
if target_sel.value is Select.BLANK or remote_sel.value is Select.BLANK:
|
if not isinstance(target_sel.value, str) or not isinstance(remote_sel.value, str):
|
||||||
return
|
return
|
||||||
target = str(target_sel.value)
|
target = str(target_sel.value)
|
||||||
remote = str(remote_sel.value)
|
remote = str(remote_sel.value)
|
||||||
@@ -85,13 +85,13 @@ class RestoreScreen(Screen):
|
|||||||
target_sel = self.query_one("#restore-target", Select)
|
target_sel = self.query_one("#restore-target", Select)
|
||||||
remote_sel = self.query_one("#restore-remote", Select)
|
remote_sel = self.query_one("#restore-remote", Select)
|
||||||
snap_sel = self.query_one("#restore-snapshot", Select)
|
snap_sel = self.query_one("#restore-snapshot", Select)
|
||||||
if target_sel.value is Select.BLANK:
|
if not isinstance(target_sel.value, str):
|
||||||
self.notify("Select a target", severity="error")
|
self.notify("Select a target", severity="error")
|
||||||
return
|
return
|
||||||
if remote_sel.value is Select.BLANK:
|
if not isinstance(remote_sel.value, str):
|
||||||
self.notify("Select a remote", severity="error")
|
self.notify("Select a remote", severity="error")
|
||||||
return
|
return
|
||||||
if snap_sel.value is Select.BLANK:
|
if not isinstance(snap_sel.value, str):
|
||||||
self.notify("Select a snapshot", severity="error")
|
self.notify("Select a snapshot", severity="error")
|
||||||
return
|
return
|
||||||
target = str(target_sel.value)
|
target = str(target_sel.value)
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class RetentionScreen(Screen):
|
|||||||
self.app.pop_screen()
|
self.app.pop_screen()
|
||||||
elif event.button.id == "btn-cleanup":
|
elif event.button.id == "btn-cleanup":
|
||||||
target_sel = self.query_one("#ret-target", Select)
|
target_sel = self.query_one("#ret-target", Select)
|
||||||
if target_sel.value is Select.BLANK:
|
if not isinstance(target_sel.value, str):
|
||||||
self.notify("Select a target first", severity="error")
|
self.notify("Select a target first", severity="error")
|
||||||
return
|
return
|
||||||
target = str(target_sel.value)
|
target = str(target_sel.value)
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ class ScheduleScreen(Screen):
|
|||||||
self.notify(f"Schedule '{name}' already exists.", severity="error")
|
self.notify(f"Schedule '{name}' already exists.", severity="error")
|
||||||
return
|
return
|
||||||
type_sel = self.query_one("#sched-type", Select)
|
type_sel = self.query_one("#sched-type", Select)
|
||||||
stype = str(type_sel.value) if type_sel.value is not Select.BLANK else "daily"
|
stype = str(type_sel.value) if isinstance(type_sel.value, str) else "daily"
|
||||||
sched = Schedule(
|
sched = Schedule(
|
||||||
name=name,
|
name=name,
|
||||||
schedule=stype,
|
schedule=stype,
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class SettingsScreen(Screen):
|
|||||||
|
|
||||||
def _get_select_val(self, sel_id: str, default: str) -> str:
|
def _get_select_val(self, sel_id: str, default: str) -> str:
|
||||||
sel = self.query_one(sel_id, Select)
|
sel = self.query_one(sel_id, Select)
|
||||||
return str(sel.value) if sel.value is not Select.BLANK else default
|
return str(sel.value) if isinstance(sel.value, str) else default
|
||||||
|
|
||||||
def _save(self) -> None:
|
def _save(self) -> None:
|
||||||
settings = AppSettings(
|
settings = AppSettings(
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ class SnapshotsScreen(Screen):
|
|||||||
async def _load_snapshots(self) -> None:
|
async def _load_snapshots(self) -> None:
|
||||||
target_sel = self.query_one("#snap-target", Select)
|
target_sel = self.query_one("#snap-target", Select)
|
||||||
remote_sel = self.query_one("#snap-remote", Select)
|
remote_sel = self.query_one("#snap-remote", Select)
|
||||||
if target_sel.value is Select.BLANK or remote_sel.value is Select.BLANK:
|
if not isinstance(target_sel.value, str) or not isinstance(remote_sel.value, str):
|
||||||
self.notify("Select target and remote first", severity="error")
|
self.notify("Select target and remote first", severity="error")
|
||||||
return
|
return
|
||||||
target = str(target_sel.value)
|
target = str(target_sel.value)
|
||||||
|
|||||||
Reference in New Issue
Block a user