mirror of
https://github.com/beetbox/beets.git
synced 2026-02-09 17:01:55 +01:00
Background
The `_legalize_stage` function was causing issues with Mypy due to
inconsistent type usage between the `path` and `extension` parameters.
This inconsistency stemmed from the `fragment` parameter influencing the
types of these variables.
Key issues
1. `path` was defined as `str`, while `extension` was `bytes`.
2. Depending on `fragment`, `extension` could be either `str` or `bytes`.
3. `path` was sometimes converted to `bytes` within `_legalize_stage`.
Item.destination` method
- The `fragment` parameter determined the output format:
- `False`: Returned absolute path as bytes (default)
- `True`: Returned path relative to library directory as str
Thus
- Rename `fragment` parameter to `relative_to_libdir` for clarity
- Ensure `Item.destination` returns `bytes` in all cases
- Code expecting strings now converts the output to `str`
- Use only `str` type in `_legalize_stage` and `_legalize_path`
functions
- These functions are no longer dependent on `relative_to_libdir`
|
||
|---|---|---|
| .. | ||
| plugins | ||
| rsrc | ||
| __init__.py | ||
| conftest.py | ||
| test_art_resize.py | ||
| test_autotag.py | ||
| test_config_command.py | ||
| test_datequery.py | ||
| test_dbcore.py | ||
| test_files.py | ||
| test_hidden.py | ||
| test_importer.py | ||
| test_library.py | ||
| test_logging.py | ||
| test_m3ufile.py | ||
| test_mb.py | ||
| test_metasync.py | ||
| test_pipeline.py | ||
| test_plugins.py | ||
| test_query.py | ||
| test_release.py | ||
| test_sort.py | ||
| test_template.py | ||
| test_ui.py | ||
| test_ui_commands.py | ||
| test_ui_importer.py | ||
| test_ui_init.py | ||
| test_util.py | ||
| test_vfs.py | ||
| testall.py | ||