Commit graph

13088 commits

Author SHA1 Message Date
J0J0 Todos
6601cbf8c0 lastgenre: canonical/whitelist setting None load default files 2025-09-10 07:36:47 +02:00
J0J0 Todos
6bc30eaf18 lastgenre: Add docstrings to file load methods 2025-09-10 07:36:47 +02:00
J0J0 Todos
6da72beeb0 lastgenre: Add expanduser to whitelist/tree load 2025-09-10 07:36:47 +02:00
J0J0 Todos
81d342b79f lastgenre: Simplify default tree loading 2025-09-10 07:36:47 +02:00
J0J0 Todos
c54a54682f lastgenre: Use pathlib and simplify whitelist load
- Read the whole file using Path().read_text()
- Strip whitespace and lower() transform

Drawbacks:

- Normalization gets lost (normpath did that)
2025-09-10 07:36:47 +02:00
J0J0 Todos
fbd90b0507 lastgenre: Use pathlib for opening tree file
instead of syspath(normpath())

Co-authored-by: Šarūnas Nejus <snejus@protonmail.com>
2025-09-10 07:36:47 +02:00
J0J0 Todos
0cdb1224b9 lastgenre: Fix c14n load log msg format 2025-09-10 07:36:47 +02:00
J0J0 Todos
856bde1efb Changelog for #5979 lastgenre move file loading 2025-09-10 07:36:47 +02:00
J0J0 Todos
bbde63d87e lastgenre: Accept AI suggested use open() for tree file
instead of codecs.open(), which most probably is a relict of beets' Python2/3 compatibility area.

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-09-10 07:36:47 +02:00
J0J0 Todos
a98fa054fe lastgenre: Fix failing CI tests by using syspath
when loading c14n file.
2025-09-10 07:36:47 +02:00
J0J0 Todos
5ff88b46cf lastgenre: Fix another mypy error in c14n load
(that was only happening in CI and not by local poe check-types)
2025-09-10 07:36:47 +02:00
J0J0 Todos
8ae29e42bf lastgenre: Fix mypy errors in file load methods 2025-09-10 07:36:47 +02:00
J0J0 Todos
6ed17912b4 lastgenre: Fix _load_whitelist return type bytes 2025-09-10 07:36:47 +02:00
J0J0 Todos
bf903fc27d lastgenre: Move file loading to helpers
and add return types.
2025-09-10 07:36:47 +02:00
Šarūnas Nejus
f24beca085
Create common info class (#5963)
### Context
See https://github.com/beetbox/beets/pull/5916 where we've come across a
need to define common logic between `TrackInfo` and `AlbumInfo`.

### Changes
- Introduce generic `Info` base (extends `AttrDict`) used by `AlbumInfo`
/ `TrackInfo` to centralize shared attributes and initialisation logic.
- Sort keyword parameters in each constructor alphabetically and make
them explicit.
- Deduplicate and simplify shared `copy()` method using `copy.deepcopy`
- Improve type hints and documentation.
- Drop unused logging artifacts.

## Summary by Sourcery

Refactor metadata-handling classes by extracting common functionality
into a new Info base, updating AlbumInfo and TrackInfo to extend it with
explicit sorted parameters, unify their copy logic, improve type
annotations and docs, and drop obsolete logging code

New Features:
- Introduce a generic Info base class to centralize shared logic for
AlbumInfo and TrackInfo

Enhancements:
- Alphabetically sort and explicitly declare constructor keyword
parameters for consistency
- Unify and simplify the copy() implementation in AttrDict using
deepcopy
- Enhance type hints and documentation for metadata classes

Chores:
- Remove unused logging imports and artifacts
2025-09-08 14:34:18 +01:00
Šarūnas Nejus
19c43c9796
hooks: Sort Info classes parameters and attr assignments alphabetically 2025-09-07 21:08:42 +01:00
Šarūnas Nejus
150db9c0d9
hooks: Update Info classes documentation 2025-09-07 21:08:42 +01:00
Šarūnas Nejus
e74646b8ae
hooks: Tidy up types and unused attributes 2025-09-07 21:08:42 +01:00
Šarūnas Nejus
60773d66b0
hooks: abstract common attrs info Info class 2025-09-07 21:08:42 +01:00
Šarūnas Nejus
e8d2c28e94
hooks: Generalise AlbumInfo and TrackInfo into Info 2025-09-07 21:08:41 +01:00
Šarūnas Nejus
7340f150e0
Add CODEOWNERS file (#5961)
Add CODEOWNERS file assigning all files (*) to
[`@beetbox/maintainers`](https://github.com/orgs/beetbox/teams/maintainers)
so that team is auto-requested for reviews.
2025-09-06 17:52:58 +01:00
Šarūnas Nejus
ecc4a72f2c
Add a note about ownership 2025-09-06 17:43:16 +01:00
Šarūnas Nejus
37ae23faf5
Add CODEOWNERS file to assign the entire repo to @maintainers 2025-09-06 17:43:15 +01:00
Sebastian Mohr
8fc38ad781
Removed data source from listenbrainz as it is not an metadata source plugin. (#5987)
closes #5975
2025-09-06 16:25:39 +02:00
Sebastian Mohr
e51de5de91 Removed data source as listenbrainz is not an metadata source plugin.
closes #5975
2025-09-04 17:41:12 +02:00
Sebastian Mohr
55667fa1e8
Metadatasource cleanup docs (#5861)
This PR includes documentation updates for the new `metadatasource`
plugin architecture, as requested by @snejus. The docs changes were
split out from the original implementation to keep things focused and
reviewable.

* Introduces comprehensive documentation for the new metadata plugin
system.
* Performs a general cleanup of the plugin-related developer
documentation for clarity and consistency.
* Splits and cleanup for quite some files in the dev docs
2025-09-04 17:11:35 +02:00
Sebastian Mohr
123075d511 Updated git blame hashes yet again :) 2025-09-04 16:07:25 +02:00
Šarūnas Nejus
b7e5357914
Run only html by default but allow adjustments 2025-09-04 12:52:37 +01:00
Šarūnas Nejus
4cb667cbb3
Fix formatting issues 2025-09-04 12:49:48 +01:00
Šarūnas Nejus
f8a98ac518
Add index for API Reference 2025-09-04 12:49:48 +01:00
Šarūnas Nejus
1736a5e735
Define MetadataSourcePlugin methods on the subclass only 2025-09-04 12:49:47 +01:00
Šarūnas Nejus
33feb0348d
Define replacements for commonly used classes 2025-09-04 12:49:47 +01:00
J0J0 Todos
67dd355968
docs: Ensure cleanup in poe docs shortcut
otherwise Sphinx output is unpredictable!
2025-09-04 12:49:47 +01:00
Sebastian Mohr
09da8a2991
- Updated git blame ignore with new hashes
- run docstrfmt
2025-09-04 12:49:47 +01:00
J0J0 Todos
e0d16c20f4
Add another docs file move to git blame ignore revs 2025-09-04 12:49:46 +01:00
J0J0 Todos
fddda507ea
docs: Reveal 3 nav levels in primary sidebar
and also allow a max level of 3 to expand.
2025-09-04 12:49:46 +01:00
J0J0 Todos
33f1a5d0be
docs: Split Further Reading chapter to files
to make it viewable in the primary sidebar instead of the secondary.
2025-09-04 12:49:46 +01:00
Sebastian Mohr
1c6921758c
Capitalization and some more minor adjustments. Updated docstrfmt. 2025-09-04 12:49:46 +01:00
Sebastian Mohr
db9a587492
Replaced named citations with number, seems to work for some reason. 2025-09-04 12:49:45 +01:00
Sebastian Mohr
4a8cabdaeb
Use rubric instead of list table. 2025-09-04 12:49:45 +01:00
Sebastian Mohr
dee906e1ae
Minor formatting issues. 2025-09-04 12:49:45 +01:00
Sebastian Mohr
037e59fe8f
Created autotagger file and enhanced the docs significantly. 2025-09-04 12:49:45 +01:00
Sebastian Mohr
676dc9c953
Replaced writing-plugins with basic-plugin-setup. 2025-09-04 12:49:44 +01:00
Sebastian Mohr
0dcd7caa9d
writing plugins label 2025-09-04 12:49:44 +01:00
Sebastian Mohr
ea80ecab36
Git blame for first commit 2025-09-04 12:49:44 +01:00
Sebastian Mohr
83eda27051
Update docstrfmt 2025-09-04 12:49:44 +01:00
Sebastian Mohr
d6e3548d4a
Formatting commands 2025-09-04 12:49:43 +01:00
Sebastian Mohr
1dfd232270
further reading formatting and changed extending the autotagger to
conform to new metadatasource plugin.
2025-09-04 12:49:43 +01:00
Sebastian Mohr
6627a0740c
Changed events doc list to table. Added references to api. 2025-09-04 12:49:43 +01:00
Sebastian Mohr
35ea9a7011
Enhanced index, changed wording slightly 2025-09-04 12:49:43 +01:00