-
Bug
-
Resolution: Fixed
-
Normal
-
None
-
None
In some pipelines we catch exceptions and wrap them in RuntimeError: https://github.com/metabrainz/troi-recommendation-playground/blob/2628ae8436eb85fde73565d0e179942d592be384/troi/musicbrainz/recording_lookup.py#L43-L48
Later, in the Playlist command we catch this error and output it so that the process doesn't quit: https://github.com/metabrainz/troi-recommendation-playground/blob/645966f6940853f3802bcf6ffe4f13d1f7728a19/troi.py#L54-L56
However, this means that exceptions are lacking a traceback, which makes it difficult to work out where the error is coming from:
Failed to generate playlist: 'Response' object has no attribute 'tet'
There are still some places where we don't catch exceptions and they filter up and exit the playlister:
Traceback (most recent call last): File "troi.py", line 99, in <module> cli() File "/Users/alastair/code/metabrainz/troi-recommendation-playground/env/lib/python3.8/site-packages/click/core.py", line 829, in __call__ return self.main(*args, **kwargs) File "/Users/alastair/code/metabrainz/troi-recommendation-playground/env/lib/python3.8/site-packages/click/core.py", line 782, in main rv = self.invoke(ctx) File "/Users/alastair/code/metabrainz/troi-recommendation-playground/env/lib/python3.8/site-packages/click/core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/Users/alastair/code/metabrainz/troi-recommendation-playground/env/lib/python3.8/site-packages/click/core.py", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File "/Users/alastair/code/metabrainz/troi-recommendation-playground/env/lib/python3.8/site-packages/click/core.py", line 610, in invoke return callback(*args, **kwargs) File "troi.py", line 53, in playlist playlist.generate(debug) File "/Users/alastair/code/metabrainz/troi-recommendation-playground/troi/__init__.py", line 48, in generate recordings = self.read(source_lists, debug) File "/Users/alastair/code/metabrainz/troi-recommendation-playground/troi/playlist.py", line 37, in read 'artist_name' : e.artist.name , AttributeError: 'NoneType' object has no attribute 'name'
We should determine where it makes sense to swallow exceptions and continue, however in this case we should still provide some ability to print the full traceback for debugging