Commit graph

12875 commits

Author SHA1 Message Date
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
Sebastian Mohr
69b47b3071
A number of smaller additions. 2025-09-04 12:49:43 +01:00
Sebastian Mohr
07549ed896
Moved plugin docs into folder. 2025-09-04 12:49:42 +01:00
Šarūnas Nejus
c60f0ceb3c
Add configurable search limit to Spotify and Deezer plugins, and make the option name consistent (#5960)
- Add configurable `search_limit` option to Deezer and Spotify plugins
(default 5) and enforce it when returning search results.
- Rename `musicbrainz.searchlimit` to `musicbrainz.search_limit` (old
key still read with deprecation warning; slated for removal in 3.0.0).
- Update docs and changelog to reflect the changes.
2025-09-04 12:42:52 +01:00
Šarūnas Nejus
17bc11034f
Limit search query results using request parameters 2025-09-01 04:36:54 +01:00
Šarūnas Nejus
20497d3d9b
Dedupe search_limit config option init 2025-09-01 04:10:53 +01:00
Šarūnas Nejus
a674fd3095
musicbrainz: Rename searchlimit config option to search_limit 2025-08-31 18:48:46 +01:00
Šarūnas Nejus
d00d51e0bf
Add configurable search_limit to Spotify and Deezer plugins 2025-08-31 18:48:46 +01:00
Šarūnas Nejus
b1c93552a3
Replace percent, string concat, format calls with f-strings (#5890)
This PR modernizes the codebase by replacing all `str.format()` calls,
`%` operator, and most of string concatenation with f-string literals.

Fixes #5293
Supersedes #5337

Once this is reviewed, I will squash all commits into one and add the
hash to `.git-blame-ignore-revs` file.
2025-08-30 23:19:45 +01:00
Šarūnas Nejus
99a060b01d
Exclude certain commits from git blame 2025-08-30 23:10:51 +01:00