mbpseudo `missing 2 required positional arguments: 'pseudo_release' and 'official_release'`
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 2.1k
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 31
Description
### Problem
Running this command in verbose (`-vv`) mode:
```sh
$ beet import -L
```
Led to this problem:
```
Traceback (most recent call last):
File "/home/konstantink/.local/bin/beet", line 10, in
sys.exit(main())
~~~~^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/ui/__init__.py", line 1009, in main
_raw_main(args)
~~~~~~~~~^^^^^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/ui/__init__.py", line 990, in _raw_main
subcommand.func(lib, suboptions, subargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/ui/commands/import_/__init__.py", line 131, in import_func
import_files(lib, byte_paths, query)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/ui/commands/import_/__init__.py", line 75, in import_files
session.run()
~~~~~~~~~~~^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/importer/session.py", line 237, in run
pl.run_parallel(QUEUE_SIZE)
~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/util/pipeline.py", line 489, in run_parallel
raise exc_info[1].with_traceback(exc_info[2])
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/util/pipeline.py", line 343, in run
out = self._run_in_context(self.coro.send, msg)
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/util/pipeline.py", line 252, in _run_in_context
return self.ctx.run(func, *args)
~~~~~~~~~~~~^^^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/util/pipeline.py", line 196, in coro
task = func(*args, task)
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/importer/stages.py", line 217, in user_query
_apply_choice(session, task)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/importer/stages.py", line 323, in _apply_choice
task.apply_metadata()
~~~~~~~~~~~~~~~~~~~^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/importer/tasks.py", line 264, in apply_metadata
self.match.apply_metadata()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/autotag/hooks.py", line 622, in apply_metadata
for item, data in self.merged_pairs:
^^^^^^^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/autotag/hooks.py", line 616, in merged_pairs
(i, ti.merge_with_album(self.info))
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/autotag/hooks.py", line 504, in merge_with_album
album = album_info.raw_data
^^^^^^^^^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/python/cpython-3.13.13-linux-x86_64-gnu/lib/python3.13/functools.py", line 1025, in __get__
val = self.func(instance)
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/autotag/hooks.py", line 301, in raw_data
data = {**super().raw_data}
^^^^^^^^^^^^^^^^
File "/home/konstantink/.local/share/uv/python/cpython-3.13.13-linux-x86_64-gnu/lib/python3.13/functools.py", line 1025, in __get__
val = self.func(instance)
File "/home/konstantink/.local/share/uv/tools/beets/lib/python3.13/site-packages/beets/autotag/hooks.py", line 176, in raw_data
data = self.__class__(**self.copy())
TypeError: PseudoAlbumInfo.__init__() missing 2 required positional arguments: 'pseudo_release' and 'official_release'
```
Here's a link to the music files that trigger the bug (if relevant):
https://musicbrainz.org/release/a05ac5b2-4962-46a0-9f83-688fb80f35c5
### Setup
* OS: Fedora Linux 44 (Workstation Edition)
* Python version: 3.13.13
* beets version: 2.11.0
* Turning off plugins made problem go away (yes/no): yes
My configuration (output of `beet config`) is:
```yaml
# relevant part
plugins:
- mbpseudo
...
```
Contributor guide
Research direction
Start in beets/autotag/hooks.py around PseudoAlbumInfo.__init__ and raw_data, then trace how the mbpseudo plugin supplies album data during `beet import -L`. Reproduce with the linked MusicBrainz release and the shown plugin configuration; done means the import no longer raises the missing-arguments TypeError, ideally with coverage for this case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100