Commit graph

10900 commits

Author SHA1 Message Date
Michael Klein
a903e6649a zsh completion: handle destination for "convert"
Use directory name completion for -d/--dest option.
2022-01-30 18:22:42 +01:00
Julien Cassette
bf9bf4887c Merge branch 'master' into duplicate
# Conflicts:
#	docs/changelog.rst
2022-01-30 16:47:44 +01:00
Julien Cassette
bcf2e15d23 Move construct_match_queries() to dbcore.Model 2022-01-30 16:40:16 +01:00
Benedikt
10338c2a60
Merge pull request #4258 from beetbox/rectify-4226
convert: Revert some recent changes to convert-on-import path
2022-01-30 11:30:48 +01:00
Adrian Sampson
2b51b2443b
Remove a relevant test 2022-01-29 18:35:36 -05:00
Adrian Sampson
0788197c76
Remove a relevant changelog entry 2022-01-29 18:33:10 -05:00
Adrian Sampson
088cdfe995
Revert some of #4226
Rectify a couple of things in that PR, pointed out here:
https://github.com/beetbox/beets/pull/4226#issuecomment-1011499620

- Undo the `pretend` sensitivity in the import path, because it's not
  clear how this setting could ever be true.
- Preserve the log message in debug mode, even when quiet.
2022-01-29 18:31:48 -05:00
Adrian Sampson
19e4f41a72
Merge pull request #4251 from rcrowell/query_prefixes
Add query prefixes :~ and :=
2022-01-26 07:51:23 -05:00
Rob Crowell
2cab2d670a Fix bug in StringQuery.string_match 2022-01-25 16:24:04 -08:00
Rob Crowell
6457532274 Add query prefixes :~ and := 2022-01-24 19:19:48 -08:00
Julien Cassette
7633465734 Add duplicate_keys feature for singletons 2022-01-22 22:36:47 +01:00
Julien Cassette
f50d250c4a Review duplicate_keys feature 2022-01-22 16:49:45 +01:00
Julien Cassette
6ce29a6b1b Allow to use flexible attributes in duplicate_keys 2022-01-22 15:00:18 +01:00
Julien Cassette
3fdfaaa5f3 Allow to configure which fields are used to find duplicates 2022-01-22 15:00:18 +01:00
Benedikt
404229b845
Merge pull request #3996 from wisp3rwind/pr_rg_restructure
Refactoring of the replaygain plugin
2022-01-22 14:45:30 +01:00
wisp3rwind
6ddf2fa006 replaygain: update changelog for 3eb49fca 2022-01-22 14:01:13 +01:00
wisp3rwind
8572e9bcec replaygain: add docstrings 2022-01-22 14:00:32 +01:00
wisp3rwind
d19cc593e3 replaygain: better types to represent peak methods
thanks @ybnd in review https://github.com/beetbox/beets/pull/3996 for
this suggestion to properly represent the sum type
2022-01-22 14:00:32 +01:00
wisp3rwind
fd7919e627 replaygain test: add basic importer test 2022-01-22 14:00:32 +01:00
wisp3rwind
676c8fe45e replaygain test: add r128 targetlevel test 2022-01-22 14:00:32 +01:00
wisp3rwind
e8960501f2 replaygain test: extend tests for skipping items
Test more combinations of tags that might initially be present and
expected tags. The R128 codepath and the case of having the wrong type
of tags wasn't really tested before.
2022-01-22 14:00:32 +01:00
wisp3rwind
1442594e5b replaygain test: reorganize backend handling
in an attempt to make it simpler to add new test classes
2022-01-22 14:00:32 +01:00
wisp3rwind
80f7c58e5a replaygain test: add basic per_disc testcase
The per_disc codepath is currently not exercised at all by the tests.
This test is not very meaningful, but better than nothing.
2022-01-22 14:00:32 +01:00
wisp3rwind
81396412ef replaygain test: add album fixtures in individual tests instead of setUp
preparation for adding more tests that want different fixtures
2022-01-22 14:00:32 +01:00
wisp3rwind
ad4c68112f test helper: add support for multi-disc album fixtures 2022-01-22 14:00:32 +01:00
wisp3rwind
c0af86c04a replaygain tests: remove duplicated function
Not sure how this got here, the git blame doesn't make a lot of sense..
maybe an incorrect merge commit?
2022-01-22 14:00:32 +01:00
wisp3rwind
ea0d905b22 replaygain tests: remmove duplicate store()
probably leftover from debugging database issue
2022-01-22 14:00:32 +01:00
wisp3rwind
a2df6df9da replaygain: store_track, store_album are methods on *Task
Also, add a convenience function `store()` that dispatches two the
either of the two methods. This will be useful later, when rewriting the
parallel code (but doesn't simplify the code now).
2022-01-22 14:00:32 +01:00
wisp3rwind
9ead9cdbb8 replaygain: pass the write flag explicitly
The variable was previously captured by the closure. This is in
preparation for moving these nested functions elsewhere.
2022-01-22 14:00:32 +01:00
wisp3rwind
ad75cbf4a5 replaygain: Flatten data structures
Now that we have the *Task objects, the AlbumGain tuple can be removed.
2022-01-22 14:00:32 +01:00
wisp3rwind
67d85d18ad replaygain: introduce Task objects to bundle the state related to computations
Renames *GainHandler -> *Task and instead of having a singleton
instance, creates a *Task object for each album/item to process. The
advantage is that now, related data can be bundled in the instance,
instead of passing multiple arguments around.
2022-01-22 14:00:32 +01:00
wisp3rwind
ae3e95f9d3 replaygain: Convert the ad-hoc tag_specific_values to classes
The plugin has loads of indirection and nested functions which make it
really hard to reason about. The larger picture here is that I'd like to make
the code more manageable before reworking the parallelism issues.

In particular, instead of manually implementing an interface using a
function that returns a tuple of function pointers, this commit creates proper
classes. Again, no functionality is changed, this only moves code
around.
2022-01-22 14:00:32 +01:00
wisp3rwind
edf2bda1ce replaygain: store backend name as class attribute
Doesn't change any functionality, but appears a little cleaner to me.
2022-01-22 14:00:32 +01:00
wisp3rwind
96025c6de6 replaygain: avoid determining the method again and again 2022-01-22 14:00:32 +01:00
wisp3rwind
3eb49fca2e replaygain: clarify docs for overwrite/force and actually respect it correctly
The code used to always check the 'overwrite' config value, while that
should only apply during imports. The manual 'replaygain' command has it's
own '-f' flag.

The logic for this flag was changed quite a few times recently, see

https://github.com/beetbox/beets/pull/3816
https://github.com/beetbox/beets/issues/3872
https://github.com/beetbox/beets/pull/3890

but apparently we (me and @ybnd) never really got it right...
If it is some comfort, the logic was never correct in the first place.
2022-01-22 14:00:32 +01:00
wisp3rwind
6689502854 replaygain: rewrite long conditionals in a more imperative manner (2/2)
This is significantly easier to parse (for me, at least).
Also, void building some lists inside of any(...) in the process.
2022-01-22 14:00:32 +01:00
wisp3rwind
356a775c5e replaygain: rewrite long conditionals in a more imperative manner (1/2)
This is significantly easier to parse (for me, at least).
Also, void building some lists inside of any(...) in the process.
2022-01-22 14:00:32 +01:00
Benedikt
2744e593f6
Merge pull request #4244 from wisp3rwind/pr_fix_reraise
Fix exception handling in tests
2022-01-20 23:41:33 +01:00
wisp3rwind
c272696d9f test_logging: fix incorrect exception handling
Another incorrect py2 -> py3 translation. Since python 3 attached the
traceback to the exception, this should preserve the traceback without
needing to resort to sys.exc_info
2022-01-20 21:16:17 +01:00
wisp3rwind
d26b0bc19b test_replaygain: fix complicated and incorrect exception handling
This is an incorrect translation of a python 2 reraise to python 3.
With python 3, however, we can just rely on exception chaining to get
the traceback, so get rid of the complicated re-raising entirely, with
the additional benefit that the exception from the tear-down is also
shown.
2022-01-20 21:12:59 +01:00
Adrian Sampson
4905e0f5f5
Merge pull request #4240 from wisp3rwind/pr_contrib_py3
CONTRIBUTING.rst: minor Python 3 adaptation
2022-01-20 15:12:52 -05:00
Adrian Sampson
8e3e9c3d85
Merge pull request #4243 from beetbox/ci-sphinx-pin
Pin Sphinx <4.4.0 in CI to work around new warning
2022-01-20 14:47:31 -05:00
Adrian Sampson
1bcec4e5f0
Move Sphinx pin to tox.ini
Turns out the Sphinx installed "outside" of the tox virtualenv is not
the one that actually builds the docs...
2022-01-20 14:39:04 -05:00
Adrian Sampson
cf69cad56f
Pin Sphinx <4.4.0 in CI
A recent change in Sphinx introduced a new warning about missed extlink
opportunities:
https://github.com/sphinx-doc/sphinx/issues/10112

These warnings are causing spurious CI failures. Some of these
suggestions are good but many of them are not, and there is not
currently a way to disable the warning (globally or locally). So the
only workable solution currently seems to be to pin an old version of
Sphinx in CI for now. Hopefully there will be an option to disable this
in 4.4.1, at which point we can unpin.
2022-01-20 14:24:08 -05:00
Benedikt
c3a0bb1d81
Merge pull request #4241 from wisp3rwind/pr_really_remove_six
Really remove six
2022-01-20 18:50:29 +01:00
wisp3rwind
807f124ef8 really remove all six imports
apparently, pyupgrade didn't know how to handle these...
2022-01-20 00:26:01 +01:00
wisp3rwind
c1df4fc8c2 CONTRIBUTING.rst: minor Python 3 adaptation 2022-01-19 22:53:08 +01:00
Benedikt
ee77b6fbe2
Merge pull request #4232 from jmizv/master
Correct headers in limit plugin documentation
2022-01-14 23:37:46 +01:00
Alex
a09829f47f
Update changelog.rst 2022-01-14 23:22:27 +01:00
Alex
919e8be4e3
use correct headings 2022-01-14 23:13:29 +01:00