Key error on random sort of entire playlist #244

Closed
opened 2024-05-22 10:43:47 +01:00 by kae · 0 comments
Owner

1171 rows (0→1170)

File "/home/kae/mm/app/playlists.py", line 496, in <lambda>
    492      parent_menu=sort_menu,
    493  )
    494  self._add_context_menu(
    495      "randomly",
--> 496      lambda: proxy_model.sort_randomly(self.get_selected_rows()),
    497      parent_menu=sort_menu,
    ..................................................
     self._add_context_menu = <method 'PlaylistTab._add_context_menu' of <playlists.Playli
                               stTab object at 0x7f668c50bac0> playlists.py:312>
     proxy_model.sort_randomly = <method 'PlaylistProxyModel.sort_randomly' of <PlaylistProxy
                                  Model: source_model=<PlaylistModel: playlist_id=8, 1171 rows
>> playlistmodel.py:1687>
     self.get_selected_rows = <method 'PlaylistTab.get_selected_rows' of <playlists.Playli
                               stTab object at 0x7f668c50bac0> playlists.py:620>
    ..................................................

File "/home/kae/mm/app/playlistmodel.py", line 1688, in sort_randomly
    1687  def sort_randomly(self, row_numbers: List[int]) -> None:
--> 1688      return self.source_model.sort_randomly(row_numbers)
    ..................................................
     self = <PlaylistProxyModel: source_model=<PlaylistModel: playlist_i
             d=8, 1171 rows>>
     row_numbers = [607, 117, 1014, 608, 1135, 1059, 963, 196, 143, 205, 1145, 
                    265, 202, 1001, 213, 485, 533, 938, 474, 518, 83, 955, 835, 
                    1004, 928, 634, 116, 798, 627, 690, 868, 1052, 531, 920, 982
                    , 985, 216, 1094, 941, 824, 187, 903, 702, 84, 45, 387, 756,
                     30, 586, 126, 837, 330, 1107, 862, 914, 423, 249, 892, 816,
                     178, 47, 964, 994, 1147, 145, 38, 659, 475, 359, 842, 302, 
                    427, 328, 50, 1126, 1097, 1102, 1161, 840, 812, 405, 907, 94
                    9, 802, 142, 313, 62, 1162, 210, 375, 28, 872, 433, 472, 185
                    , 887, 161, 357, 89,...
     self.source_model.sort_randomly = <method 'PlaylistModel.sort_randomly' of <PlaylistModel: pla
                                        ylist_id=8, 1171 rows> playlistmodel.py:1367>
    ..................................................

File "/home/kae/mm/app/playlistmodel.py", line 1373, in sort_randomly
    1367  def sort_randomly(self, row_numbers: List[int]) -> None:
 (...)
    1369      Sort selected rows randomly
    1370      """
    1371  
    1372      shuffle(row_numbers)
--> 1373      self.move_rows(row_numbers, min(row_numbers))
    ..................................................
     self = <PlaylistModel: playlist_id=8, 1171 rows>
     row_numbers = [607, 117, 1014, 608, 1135, 1059, 963, 196, 143, 205, 1145, 
                    265, 202, 1001, 213, 485, 533, 938, 474, 518, 83, 955, 835, 
                    1004, 928, 634, 116, 798, 627, 690, 868, 1052, 531, 920, 982
                    , 985, 216, 1094, 941, 824, 187, 903, 702, 84, 45, 387, 756,
                     30, 586, 126, 837, 330, 1107, 862, 914, 423, 249, 892, 816,
                     178, 47, 964, 994, 1147, 145, 38, 659, 475, 359, 842, 302, 
                    427, 328, 50, 1126, 1097, 1102, 1161, 840, 812, 405, 907, 94
                    9, 802, 142, 313, 62, 1162, 210, 375, 28, 872, 433, 472, 185
                    , 887, 161, 357, 89,...
     shuffle = <method 'Random.shuffle' of <random.Random object at 0x20ab7
                a0> random.py:376>
     self.move_rows = <method 'PlaylistModel.move_rows' of <PlaylistModel: playlis
                       t_id=8, 1171 rows> playlistmodel.py:850>
    ..................................................

File "/home/kae/mm/app/playlistmodel.py", line 921, in move_rows
    850  def move_rows(self, from_rows: List[int], to_row_number: int) -> None:
 (...)
    917          # Update playlist_rows
    918          self.refresh_data(session)
    919  
    920      # Update display
--> 921      self.reset_track_sequence_row_numbers()
    922      self.invalidate_rows(list(row_map.keys()))
    ..................................................
     self = <PlaylistModel: playlist_id=8, 1171 rows>
     from_rows = [607, 117, 1014, 608, 1135, 1059, 963, 196, 143, 205, 1145, 
                  265, 202, 1001, 213, 485, 533, 938, 474, 518, 83, 955, 835, 
                  1004, 928, 634, 116, 798, 627, 690, 868, 1052, 531, 920, 982
                  , 985, 216, 1094, 941, 824, 187, 903, 702, 84, 45, 387, 756,
                   30, 586, 126, 837, 330, 1107, 862, 914, 423, 249, 892, 816,
                   178, 47, 964, 994, 1147, 145, 38, 659, 475, 359, 842, 302, 
                  427, 328, 50, 1126, 1097, 1102, 1161, 840, 812, 405, 907, 94
                  9, 802, 142, 313, 62, 1162, 210, 375, 28, 872, 433, 472, 185
                  , 887, 161, 357, 89,...
     to_row_number = 0
     self.refresh_data = <method 'PlaylistModel.refresh_data' of <PlaylistModel: play
                          list_id=8, 1171 rows> playlistmodel.py:1085>
     session = <sqlalchemy.orm.session.Session object at 0x7f66277a1c10>
     self.reset_track_sequence_row_numbers = <method 'PlaylistModel.reset_track_sequence_row_numbers' of 
                                              <PlaylistModel: playlist_id=8, 1171 rows> playlistmodel.py:1
                                              130>
     self.invalidate_rows = <method 'PlaylistModel.invalidate_rows' of <PlaylistModel: p
                             laylist_id=8, 1171 rows> playlistmodel.py:798>
    ..................................................

File "/home/kae/mm/app/playlistmodel.py", line 1153, in reset_track_sequence_row_numbers
    1130  def reset_track_sequence_row_numbers(self) -> None:
 (...)
    1149              previous_plr = session.get(PlaylistRows, track_sequence.previous.plr_id)
    1150              if previous_plr:
    1151                  track_sequence.previous.plr_rownum = previous_plr.plr_rownum
    1152  
--> 1153      self.update_track_times()
    ..................................................
     self = <PlaylistModel: playlist_id=8, 1171 rows>
     session.get = <method 'Session.get' of <sqlalchemy.orm.session.Session obj
                    ect at 0x7f662769c1d0> session.py:3523>
     track_sequence.previous.plr_id = None
     track_sequence.previous.plr_rownum = None
     self.update_track_times = <method 'PlaylistModel.update_track_times' of <PlaylistModel
                                : playlist_id=8, 1171 rows> playlistmodel.py:1406>
    ..................................................

File "/home/kae/mm/app/playlistmodel.py", line 1420, in update_track_times
    1406  def update_track_times(self) -> None:
 (...)
    1416      if not playlist_length:
    1417          return
    1418  
    1419      for row_number in range(playlist_length):
--> 1420          prd = self.playlist_rows[row_number]
    1421  
    ..................................................
     self = <PlaylistModel: playlist_id=8, 1171 rows>
     playlist_length = 1171
     row_number = 1170
     prd = <PlaylistRowData: plrid=567667, plr_rownum=1169, note='Scott
            ', title='Streets of Philadelphia', artist='Bruce Springstee
            n'>
     self.playlist_rows = {-1: <PlaylistRowData: plrid=561654, plr_rownum=-1, note='',
                            title='Car 67', artist='Driver 67'>,
                           0: <PlaylistRowData: plrid=565448, plr_rownum=0, note='Kim'
                           , title='Bend Me Shape Me', artist='Amen Corner'>,
                           1: <PlaylistRowData: plrid=567491, plr_rownum=1, note='', t
                           itle='Picture This', artist='Blondie'>,
                           2: <PlaylistRowData: plrid=560533, plr_rownum=2, note='', t
                           itle='Virginia Plain', artist='Roxy Music'>,
                           3: <PlaylistRowData: plrid=561640, plr_rownum=3, note='', t
                           itle='Big One', artist='Ba...
    ..................................................

---- (full traceback above) ----
File "/home/kae/mm/app/playlists.py", line 496, in <lambda>
    lambda: proxy_model.sort_randomly(self.get_selected_rows()),
File "/home/kae/mm/app/playlistmodel.py", line 1688, in sort_randomly
    return self.source_model.sort_randomly(row_numbers)
File "/home/kae/mm/app/playlistmodel.py", line 1373, in sort_randomly
    self.move_rows(row_numbers, min(row_numbers))
File "/home/kae/mm/app/playlistmodel.py", line 921, in move_rows
    self.reset_track_sequence_row_numbers()
File "/home/kae/mm/app/playlistmodel.py", line 1153, in reset_track_sequence_row_numbers
    self.update_track_times()
File "/home/kae/mm/app/playlistmodel.py", line 1420, in update_track_times
    prd = self.playlist_rows[row_number]

KeyError: 1170
1171 rows (0→1170) ``` File "/home/kae/mm/app/playlists.py", line 496, in <lambda> 492 parent_menu=sort_menu, 493 ) 494 self._add_context_menu( 495 "randomly", --> 496 lambda: proxy_model.sort_randomly(self.get_selected_rows()), 497 parent_menu=sort_menu, .................................................. self._add_context_menu = <method 'PlaylistTab._add_context_menu' of <playlists.Playli stTab object at 0x7f668c50bac0> playlists.py:312> proxy_model.sort_randomly = <method 'PlaylistProxyModel.sort_randomly' of <PlaylistProxy Model: source_model=<PlaylistModel: playlist_id=8, 1171 rows >> playlistmodel.py:1687> self.get_selected_rows = <method 'PlaylistTab.get_selected_rows' of <playlists.Playli stTab object at 0x7f668c50bac0> playlists.py:620> .................................................. File "/home/kae/mm/app/playlistmodel.py", line 1688, in sort_randomly 1687 def sort_randomly(self, row_numbers: List[int]) -> None: --> 1688 return self.source_model.sort_randomly(row_numbers) .................................................. self = <PlaylistProxyModel: source_model=<PlaylistModel: playlist_i d=8, 1171 rows>> row_numbers = [607, 117, 1014, 608, 1135, 1059, 963, 196, 143, 205, 1145, 265, 202, 1001, 213, 485, 533, 938, 474, 518, 83, 955, 835, 1004, 928, 634, 116, 798, 627, 690, 868, 1052, 531, 920, 982 , 985, 216, 1094, 941, 824, 187, 903, 702, 84, 45, 387, 756, 30, 586, 126, 837, 330, 1107, 862, 914, 423, 249, 892, 816, 178, 47, 964, 994, 1147, 145, 38, 659, 475, 359, 842, 302, 427, 328, 50, 1126, 1097, 1102, 1161, 840, 812, 405, 907, 94 9, 802, 142, 313, 62, 1162, 210, 375, 28, 872, 433, 472, 185 , 887, 161, 357, 89,... self.source_model.sort_randomly = <method 'PlaylistModel.sort_randomly' of <PlaylistModel: pla ylist_id=8, 1171 rows> playlistmodel.py:1367> .................................................. File "/home/kae/mm/app/playlistmodel.py", line 1373, in sort_randomly 1367 def sort_randomly(self, row_numbers: List[int]) -> None: (...) 1369 Sort selected rows randomly 1370 """ 1371 1372 shuffle(row_numbers) --> 1373 self.move_rows(row_numbers, min(row_numbers)) .................................................. self = <PlaylistModel: playlist_id=8, 1171 rows> row_numbers = [607, 117, 1014, 608, 1135, 1059, 963, 196, 143, 205, 1145, 265, 202, 1001, 213, 485, 533, 938, 474, 518, 83, 955, 835, 1004, 928, 634, 116, 798, 627, 690, 868, 1052, 531, 920, 982 , 985, 216, 1094, 941, 824, 187, 903, 702, 84, 45, 387, 756, 30, 586, 126, 837, 330, 1107, 862, 914, 423, 249, 892, 816, 178, 47, 964, 994, 1147, 145, 38, 659, 475, 359, 842, 302, 427, 328, 50, 1126, 1097, 1102, 1161, 840, 812, 405, 907, 94 9, 802, 142, 313, 62, 1162, 210, 375, 28, 872, 433, 472, 185 , 887, 161, 357, 89,... shuffle = <method 'Random.shuffle' of <random.Random object at 0x20ab7 a0> random.py:376> self.move_rows = <method 'PlaylistModel.move_rows' of <PlaylistModel: playlis t_id=8, 1171 rows> playlistmodel.py:850> .................................................. File "/home/kae/mm/app/playlistmodel.py", line 921, in move_rows 850 def move_rows(self, from_rows: List[int], to_row_number: int) -> None: (...) 917 # Update playlist_rows 918 self.refresh_data(session) 919 920 # Update display --> 921 self.reset_track_sequence_row_numbers() 922 self.invalidate_rows(list(row_map.keys())) .................................................. self = <PlaylistModel: playlist_id=8, 1171 rows> from_rows = [607, 117, 1014, 608, 1135, 1059, 963, 196, 143, 205, 1145, 265, 202, 1001, 213, 485, 533, 938, 474, 518, 83, 955, 835, 1004, 928, 634, 116, 798, 627, 690, 868, 1052, 531, 920, 982 , 985, 216, 1094, 941, 824, 187, 903, 702, 84, 45, 387, 756, 30, 586, 126, 837, 330, 1107, 862, 914, 423, 249, 892, 816, 178, 47, 964, 994, 1147, 145, 38, 659, 475, 359, 842, 302, 427, 328, 50, 1126, 1097, 1102, 1161, 840, 812, 405, 907, 94 9, 802, 142, 313, 62, 1162, 210, 375, 28, 872, 433, 472, 185 , 887, 161, 357, 89,... to_row_number = 0 self.refresh_data = <method 'PlaylistModel.refresh_data' of <PlaylistModel: play list_id=8, 1171 rows> playlistmodel.py:1085> session = <sqlalchemy.orm.session.Session object at 0x7f66277a1c10> self.reset_track_sequence_row_numbers = <method 'PlaylistModel.reset_track_sequence_row_numbers' of <PlaylistModel: playlist_id=8, 1171 rows> playlistmodel.py:1 130> self.invalidate_rows = <method 'PlaylistModel.invalidate_rows' of <PlaylistModel: p laylist_id=8, 1171 rows> playlistmodel.py:798> .................................................. File "/home/kae/mm/app/playlistmodel.py", line 1153, in reset_track_sequence_row_numbers 1130 def reset_track_sequence_row_numbers(self) -> None: (...) 1149 previous_plr = session.get(PlaylistRows, track_sequence.previous.plr_id) 1150 if previous_plr: 1151 track_sequence.previous.plr_rownum = previous_plr.plr_rownum 1152 --> 1153 self.update_track_times() .................................................. self = <PlaylistModel: playlist_id=8, 1171 rows> session.get = <method 'Session.get' of <sqlalchemy.orm.session.Session obj ect at 0x7f662769c1d0> session.py:3523> track_sequence.previous.plr_id = None track_sequence.previous.plr_rownum = None self.update_track_times = <method 'PlaylistModel.update_track_times' of <PlaylistModel : playlist_id=8, 1171 rows> playlistmodel.py:1406> .................................................. File "/home/kae/mm/app/playlistmodel.py", line 1420, in update_track_times 1406 def update_track_times(self) -> None: (...) 1416 if not playlist_length: 1417 return 1418 1419 for row_number in range(playlist_length): --> 1420 prd = self.playlist_rows[row_number] 1421 .................................................. self = <PlaylistModel: playlist_id=8, 1171 rows> playlist_length = 1171 row_number = 1170 prd = <PlaylistRowData: plrid=567667, plr_rownum=1169, note='Scott ', title='Streets of Philadelphia', artist='Bruce Springstee n'> self.playlist_rows = {-1: <PlaylistRowData: plrid=561654, plr_rownum=-1, note='', title='Car 67', artist='Driver 67'>, 0: <PlaylistRowData: plrid=565448, plr_rownum=0, note='Kim' , title='Bend Me Shape Me', artist='Amen Corner'>, 1: <PlaylistRowData: plrid=567491, plr_rownum=1, note='', t itle='Picture This', artist='Blondie'>, 2: <PlaylistRowData: plrid=560533, plr_rownum=2, note='', t itle='Virginia Plain', artist='Roxy Music'>, 3: <PlaylistRowData: plrid=561640, plr_rownum=3, note='', t itle='Big One', artist='Ba... .................................................. ---- (full traceback above) ---- File "/home/kae/mm/app/playlists.py", line 496, in <lambda> lambda: proxy_model.sort_randomly(self.get_selected_rows()), File "/home/kae/mm/app/playlistmodel.py", line 1688, in sort_randomly return self.source_model.sort_randomly(row_numbers) File "/home/kae/mm/app/playlistmodel.py", line 1373, in sort_randomly self.move_rows(row_numbers, min(row_numbers)) File "/home/kae/mm/app/playlistmodel.py", line 921, in move_rows self.reset_track_sequence_row_numbers() File "/home/kae/mm/app/playlistmodel.py", line 1153, in reset_track_sequence_row_numbers self.update_track_times() File "/home/kae/mm/app/playlistmodel.py", line 1420, in update_track_times prd = self.playlist_rows[row_number] KeyError: 1170 ```
kae added the
bug
label 2024-05-22 10:43:47 +01:00
kae referenced this issue from a commit 2024-05-22 15:27:06 +01:00
kae closed this issue 2024-05-22 15:27:06 +01:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kae/musicmuster#244
No description provided.