refactor(hermes_cli): browse key handling early-returns; salvage helper one-liners
This commit is contained in:
@@ -459,8 +459,7 @@ def _probe_populated_edge(source: sqlite3.Connection, table: str, *, edge: str,
|
||||
span *= 2
|
||||
continue
|
||||
if row is None: # nothing beyond candidate: the synthetic domain tail is provably empty
|
||||
result["bound"] = candidate
|
||||
result["capped"] = True
|
||||
result.update(bound=candidate, capped=True)
|
||||
return result
|
||||
position = int(row[0]) # rows exist beyond; advance. Span never resets -> O(log range)
|
||||
span *= 2
|
||||
@@ -485,9 +484,7 @@ class _RowidRangeSalvage:
|
||||
self.stopped_at_query_limit = False
|
||||
|
||||
def _keep(self, values: list[tuple[Any, ...]]) -> list[tuple[Any, ...]]:
|
||||
if self.row_filter is None:
|
||||
return values
|
||||
return [row for row in values if self.row_filter(row, self.column_names)]
|
||||
return values if self.row_filter is None else [r for r in values if self.row_filter(r, self.column_names)]
|
||||
|
||||
def _skip(self, low: int, high: int, error: str) -> None:
|
||||
_append_skipped_range(self.result["skipped_rowid_ranges"], low, high, error)
|
||||
|
||||
@@ -150,16 +150,15 @@ class _CursesBrowser:
|
||||
c = self.curses
|
||||
if self.confirm_delete is not None: # y/n confirmation mode — only an explicit 'y' deletes
|
||||
target, self.confirm_delete = self.confirm_delete, None
|
||||
if key in {ord("y"), ord("Y")}:
|
||||
if self.delete_fn(target["id"]):
|
||||
self.sessions[:] = [s for s in self.sessions if s["id"] != target["id"]]
|
||||
self._refilter(reset_cursor=False)
|
||||
self.flash = "Deleted."
|
||||
if not self.sessions:
|
||||
return True
|
||||
else:
|
||||
self.flash = "Delete failed."
|
||||
return False
|
||||
if key not in {ord("y"), ord("Y")}:
|
||||
return False
|
||||
if not self.delete_fn(target["id"]):
|
||||
self.flash = "Delete failed."
|
||||
return False
|
||||
self.sessions[:] = [s for s in self.sessions if s["id"] != target["id"]]
|
||||
self._refilter(reset_cursor=False)
|
||||
self.flash = "Deleted."
|
||||
return not self.sessions
|
||||
if key in (c.KEY_UP, c.KEY_DOWN):
|
||||
if self.filtered:
|
||||
self.cursor = (self.cursor + (1 if key == c.KEY_DOWN else -1)) % len(self.filtered)
|
||||
@@ -167,9 +166,9 @@ class _CursesBrowser:
|
||||
if self.filtered:
|
||||
self.result = self.filtered[self.cursor]["id"]
|
||||
return True
|
||||
elif key == 27: # Esc: first clears the search, second exits
|
||||
if not self.search:
|
||||
return True
|
||||
elif key == 27 and not self.search: # Esc: first clears the search, second exits
|
||||
return True
|
||||
elif key == 27:
|
||||
self.search = ""
|
||||
self._refilter()
|
||||
elif key in {c.KEY_BACKSPACE, 127, 8}:
|
||||
|
||||
Reference in New Issue
Block a user