<commit_before>Changelog
=========

1.3.3 (in development)
----------------------

Version 1.3.3 brings a set of internal changes to how fields work. The
consequences for all users are:

* Plugin-provided fields can now be used in queries. For example, if you use
  the :doc:`/plugins/inline` to define a field called ``era``, you can now
  filter your library based on that field by typing something like
  ``beet list era:goldenage``.
* Album-level flexible attributes and plugin-provided attributes can now be
  used in path formats (and other item-level templates).

For developers, the short version of the story is that Item and Album objects
provide *uniform access* across fixed, flexible, and computed attributes.

Other little fixes:

* :doc:`/plugins/echonest`: Tempo (BPM) is now always stored as an integer.
  Thanks to <NAME>.
* Fix Python 2.6 compatibility in some logging statements in
  :doc:`/plugins/chroma` and :doc:`/plugins/lastgenre`.
* Prevent some crashes when things go really wrong when writing file metadata
  at the end of the import process.
* Add a new plugin event: ``item_removed``. Thanks to <NAME>.


1.3.2 (December 22, 2013)
-------------------------

This update brings new plugins for fetching acoustic metrics and listening
statistics, many more options for the duplicate detection plugin, and flexible
options for fetching multiple genres.

The "core" of beets gained a new built-in command: :ref:`beet write
<write-cmd>` updates the metadata tags for files, bringing them back
into sync with your database. Thanks to <NAME>.

We added some plugins and overhauled some existing ones:

* The new :doc:`/plugins/echonest` plugin can fetch a wide range of `acoustic<commit_msg>changelog/thanks for #493<commit_after>Changelog
=========

1.3.3 (in development)
----------------------

Version 1.3.3 brings a set of internal changes to how fields work. The
consequences for all users are:

* Plugin-provided fields can now be used in queries. For example, if you use
  the :doc:`/plugins/inline` to define a field called ``era``, you can now
  filter your library based on that field by typing something like
  ``beet list era:goldenage``.
* Album-level flexible attributes and plugin-provided attributes can now be
  used in path formats (and other item-level templates).

For developers, the short version of the story is that Item and Album objects
provide *uniform access* across fixed, flexible, and computed attributes.

Other little fixes:

* :doc:`/plugins/echonest`: Tempo (BPM) is now always stored as an integer.
  Thanks to <NAME>.
* Fix Python 2.6 compatibility in some logging statements in
  :doc:`/plugins/chroma` and :doc:`/plugins/lastgenre`.
* Prevent some crashes when things go really wrong when writing file metadata
  at the end of the import process.
* New plugin events: ``item_removed`` (thanks to <NAME>) and
  ``item_copied`` (thanks to <NAME>).


1.3.2 (December 22, 2013)
-------------------------

This update brings new plugins for fetching acoustic metrics and listening
statistics, many more options for the duplicate detection plugin, and flexible
options for fetching multiple genres.

The "core" of beets gained a new built-in command: :ref:`beet write
<write-cmd>` updates the metadata tags for files, bringing them back
into sync with your database. Thanks to <NAME>.

We added some plugins and overhauled some existing ones:

* The new :doc:`/plugins/echonest` plugin can fetch a wide range of `acoustic
{'fraction_non_alphanumeric': 0.10434032768036793, 'fraction_numerical': 0.010635240011497557, 'mean_word_length': 3.8467966573816157, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6842469', 'n_tokens_mistral': 965, 'n_tokens_neox': 910, 'n_words': 476}