beets/docs/plugins
Sam Thursfield 2fa3717731 Optimise FormattedMapping when querying a specific set of fields
This changes greatly improves the speed of `beet export` and `beet info`
when the `--include-keys` option is used. It also removes the globbing
feature of `--include-keys` that was added in #1295. (See #3762 for
discussion).

Listing all fields for an item requires querying the database to find
any flex attributes. This is slow when done for every item being
exported. We already have a way for the user to specify a fixed set
of keys, but we previously queried everything and filtered it afterwards.
The new approach is more efficient.

Code that iterates through all fields now have to handle invalid field
names. The export and info plugins output invalid fields as None.

Timings before:

    > /usr/bin/time beet export -i title,path,artist -l  Bob Dylan
    13.26user 20.22system 0:34.01elapsed 98%CPU (0avgtext+0avgdata 52544maxresident)k

    > /usr/bin/time beet export -l  Bob Dylan
    12.93user 20.15system 0:33.58elapsed 98%CPU (0avgtext+0avgdata 53632maxresident)k

Timings after:

    > /usr/bin/time beet export -l  Bob Dylan
    13.33user 20.17system 0:34.02elapsed 98%CPU (0avgtext+0avgdata 53500maxresident)k

    > /usr/bin/time beet export -i title,path,artist -l  Bob Dylan
    0.49user 0.07system 0:00.56elapsed 98%CPU (0avgtext+0avgdata 50496maxresident)k

Notice the dramatic speedup in the last example!
2021-05-01 23:41:09 +02:00
..
absubmit.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
acousticbrainz.rst
aura.rst AURA: Small updates to docs and set server version 2021-03-07 18:24:57 +00:00
badfiles.rst Add docs for badfiles' check_on_import option. 2021-03-24 16:55:28 -05:00
bareasc.rst Make unicode handling explicit, to support python 2 and 3. 2021-03-16 16:29:57 +00:00
beatport.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
beetsweb.png
bpd.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
bpm.rst
bpsync.rst
bucket.rst
chroma.rst Swap links 2020-10-08 00:35:03 -07:00
convert.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
deezer.rst
discogs.rst Fix #3608: Replace discogs-client with python3-discogs-client 2021-02-27 10:09:23 +13:00
duplicates.rst
edit.rst
embedart.rst Docs tweaks for #3493 2020-02-26 19:15:44 -08:00
embyupdate.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
export.rst export: Add --format=jsonlines option 2020-10-02 12:41:29 +02:00
fetchart.rst fetchart/artresizer: add max_filesize support (#3560) 2021-03-23 12:00:14 +01:00
filefilter.rst
fish.rst Rewrite Fish completion plugin docs & code comments 2020-03-04 07:15:46 +01:00
freedesktop.rst
fromfilename.rst
ftintitle.rst
fuzzy.rst
gmusic.rst
hook.rst
ihate.rst
importadded.rst
importfeeds.rst
index.rst Add documentation for bareasc to the plugins index. 2021-03-15 15:53:14 +00:00
info.rst Optimise FormattedMapping when querying a specific set of fields 2021-05-01 23:41:09 +02:00
inline.rst
ipfs.rst
keyfinder.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
kodiupdate.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
lastgenre.rst lastgenre: Make TitleCasing optional 2020-12-15 23:37:16 +00:00
lastimport.rst
loadext.rst
lyrics.rst Shorten a ReST underline 2021-03-28 14:23:38 -04:00
mbcollection.rst docs: clarify mbcollection options 2020-06-08 16:29:33 -04:00
mbsubmit.rst
mbsync.rst
metasync.rst
missing.rst
mpdstats.rst Fix docs and changelog 2021-02-22 14:28:14 +01:00
mpdupdate.rst
parentwork.rst Get the date of the parentwork, which may be different from the date of the child work. 2020-07-03 09:35:15 -07:00
permissions.rst
play.rst
playlist.rst Fix simple typo: speicifying -> specifying 2019-11-12 08:07:37 +11:00
plexupdate.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
random.rst
replaygain.rst Disable replaygain parallelism during import 2020-12-21 19:19:20 +01:00
rewrite.rst
scrub.rst
smartplaylist.rst
sonosupdate.rst
spotify.rst
subsonicplaylist.rst Update docs/plugins/subsonicplaylist.rst 2020-05-05 10:45:43 +02:00
subsonicupdate.rst Add broken link checker to integration test (#3703) 2020-09-04 15:42:36 -05:00
the.rst
thumbnails.rst
types.rst
unimported.rst
web.rst Documentation and changelog for web `readonly` option fixing #3870. 2021-03-11 23:09:51 +00:00
zero.rst