Fix some type hints

This commit is contained in:
Keith Edmunds 2022-03-03 18:30:13 +00:00
parent 1c56505ab0
commit f22f209bee

View File

@ -268,7 +268,7 @@ class PlaylistTab(QTableWidget):
set note row to be end of playlist. set note row to be end of playlist.
""" """
row: int = self.get_selected_row() row: Optional[int] = self.get_selected_row()
if not row: if not row:
row = self.rowCount() row = self.rowCount()
@ -277,7 +277,7 @@ class PlaylistTab(QTableWidget):
dlg.setInputMode(QInputDialog.TextInput) dlg.setInputMode(QInputDialog.TextInput)
dlg.setLabelText("Note:") dlg.setLabelText("Note:")
dlg.resize(500, 100) dlg.resize(500, 100)
ok: bool = dlg.exec() ok: int = dlg.exec()
if ok: if ok:
with Session() as session: with Session() as session:
note: Notes = Notes( note: Notes = Notes(
@ -407,6 +407,8 @@ class PlaylistTab(QTableWidget):
# Mark next-track row as current # Mark next-track row as current
current_row = self._get_next_track_row() current_row = self._get_next_track_row()
if not current_row:
return
self._set_current_track_row(current_row) self._set_current_track_row(current_row)
# Mark current row as played # Mark current row as played
@ -656,9 +658,9 @@ class PlaylistTab(QTableWidget):
next_row: Optional[int] = self._get_next_track_row() next_row: Optional[int] = self._get_next_track_row()
notes: List[int] = self._get_notes_rows() notes: List[int] = self._get_notes_rows()
played: Optional[List[int]] = self._get_played_track_rows() played: Optional[List[int]] = self._get_played_track_rows()
unreadable: Optional[List[int]] = self._get_unreadable_track_rows() unreadable: List[int] = self._get_unreadable_track_rows()
last_played_str: Optional[str] last_played_str: str
last_playedtime: Optional[datetime] last_playedtime: Optional[datetime]
next_start_time: Optional[datetime] = None next_start_time: Optional[datetime] = None
note_colour: str note_colour: str
@ -811,8 +813,8 @@ class PlaylistTab(QTableWidget):
open_in_audacity(track.path) open_in_audacity(track.path)
@staticmethod @staticmethod
def _calculate_track_end_time(track: Tracks, def _calculate_track_end_time(
start: datetime) -> Optional[datetime]: track: Tracks, start: Optional[datetime]) -> Optional[datetime]:
"""Return this track's end time given its start time""" """Return this track's end time given its start time"""
if start is None: if start is None:
@ -828,7 +830,7 @@ class PlaylistTab(QTableWidget):
self.menu.exec_(self.mapToGlobal(pos)) self.menu.exec_(self.mapToGlobal(pos))
def _copy_path(self, row: int) -> Optional[str]: def _copy_path(self, row: int) -> None:
""" """
If passed row is track row, copy the track path to the clipboard. If passed row is track row, copy the track path to the clipboard.
Otherwise, return None. Otherwise, return None.
@ -842,7 +844,7 @@ class PlaylistTab(QTableWidget):
with Session() as session: with Session() as session:
track: Optional[Tracks] = self._get_row_track_object(row, session) track: Optional[Tracks] = self._get_row_track_object(row, session)
if track: if track:
cb: QApplication.clipboard = QApplication.clipboard() cb = QApplication.clipboard()
cb.clear(mode=cb.Clipboard) cb.clear(mode=cb.Clipboard)
cb.setText(track.path, mode=cb.Clipboard) cb.setText(track.path, mode=cb.Clipboard)
@ -1035,12 +1037,20 @@ class PlaylistTab(QTableWidget):
def _get_current_track_row(self) -> Optional[int]: def _get_current_track_row(self) -> Optional[int]:
"""Return row marked as current, or None""" """Return row marked as current, or None"""
return self._meta_search(RowMeta.CURRENT) row = self._meta_search(RowMeta.CURRENT)
if len(row) > 0:
return row[0]
else:
return None
def _get_next_track_row(self) -> Optional[int]: def _get_next_track_row(self) -> Optional[int]:
"""Return row marked as next, or None""" """Return row marked as next, or None"""
return self._meta_search(RowMeta.NEXT) row = self._meta_search(RowMeta.NEXT)
if len(row) > 0:
return row[0]
else:
return None
@staticmethod @staticmethod
def _get_note_text_time(text: str) -> Optional[datetime]: def _get_note_text_time(text: str) -> Optional[datetime]:
@ -1122,7 +1132,7 @@ class PlaylistTab(QTableWidget):
return self._meta_notset(RowMeta.NOTE) return self._meta_notset(RowMeta.NOTE)
def _get_unreadable_track_rows(self) -> Optional[List[int]]: def _get_unreadable_track_rows(self) -> List[int]:
"""Return rows marked as unreadable, or None""" """Return rows marked as unreadable, or None"""
return self._meta_search(RowMeta.UNREADABLE, one=False) return self._meta_search(RowMeta.UNREADABLE, one=False)
@ -1228,7 +1238,7 @@ class PlaylistTab(QTableWidget):
if next_row is not None: if next_row is not None:
self._meta_clear_attribute(next_row, RowMeta.NEXT) self._meta_clear_attribute(next_row, RowMeta.NEXT)
def _meta_get(self, row: int) -> Optional[int]: def _meta_get(self, row: int) -> int:
"""Return row metadata""" """Return row metadata"""
return self.item(row, self.COL_USERDATA).data(self.ROW_METADATA) return self.item(row, self.COL_USERDATA).data(self.ROW_METADATA)
@ -1249,8 +1259,7 @@ class PlaylistTab(QTableWidget):
return matches return matches
def _meta_search(self, metadata: int, one: bool = True) -> Union[ def _meta_search(self, metadata: int, one: bool = True) -> List[int]:
List[int], int, None]:
""" """
Search rows for metadata. Search rows for metadata.
@ -1269,10 +1278,8 @@ class PlaylistTab(QTableWidget):
if not one: if not one:
return matches return matches
if len(matches) == 0: if len(matches) <= 1:
return None return matches
elif len(matches) == 1:
return matches[0]
else: else:
ERROR( ERROR(
f"Multiple matches for metadata '{metadata}' found " f"Multiple matches for metadata '{metadata}' found "
@ -1288,9 +1295,9 @@ class PlaylistTab(QTableWidget):
current_metadata: int = self._meta_get(row) current_metadata: int = self._meta_get(row)
if not current_metadata: if not current_metadata:
new_metadata = (1 << attribute) new_metadata: int = (1 << attribute)
else: else:
new_metadata: int = self._meta_get(row) | (1 << attribute) new_metadata = self._meta_get(row) | (1 << attribute)
self.item(row, self.COL_USERDATA).setData( self.item(row, self.COL_USERDATA).setData(
self.ROW_METADATA, new_metadata) self.ROW_METADATA, new_metadata)
@ -1399,8 +1406,8 @@ class PlaylistTab(QTableWidget):
- Check row is a track row - Check row is a track row
- Check track is readable - Check track is readable
- Mark as next track - Mark as next track
- Notify musicmuster
- Update display - Update display
- Notify musicmuster
""" """
DEBUG(f"_set_next({row=})") DEBUG(f"_set_next({row=})")
@ -1421,12 +1428,12 @@ class PlaylistTab(QTableWidget):
# Mark as next track # Mark as next track
self._set_next_track_row(row) self._set_next_track_row(row)
# Notify musicmuster
self.musicmuster.this_is_the_next_track(self, track)
# Update display # Update display
self.update_display(session) self.update_display(session)
# Notify musicmuster
self.musicmuster.this_is_the_next_track(self, track)
def _set_row_bold(self, row: int, bold: bool = True) -> None: def _set_row_bold(self, row: int, bold: bool = True) -> None:
"""Make row bold (bold=True) or not bold""" """Make row bold (bold=True) or not bold"""