Docopt helps you create most beautiful command-line interfaces easily.
The option parser is generated based on a docstring that is passed to docopt
function. docopt parses the usage pattern ("Usage: ...") and option
descriptions (lines starting with dash "-") and ensures that the program
invocation matches the usage pattern; it parses options, arguments and commands
based on that. The basic idea is that a good help message has all necessary
information in it to make a parser.
Collection.
Apache Libcloud is a Python library which hides differences between different
cloud provider APIs and allows you to manage different cloud resources through
a unified and easy to use API.
Resource you can manage with Libcloud are divided in the following categories:
* Cloud Servers and Block Storage - services such as Amazon EC2 and Rackspace
Cloud Servers (libcloud.compute.*)
* Cloud Object Storage and CDN - services such as Amazon S3 and Rackspace
CloudFiles (libcloud.storage.*)
* Load Balancers as a Service, LBaaS (libcloud.loadbalancer.*)
* DNS as a Service, DNSaaS (libcloud.dns.*)
Collection.
SoftLayer API bindings for Python. For use with SoftLayer's API.
This library provides a simple interface to interact with SoftLayer's XML-RPC
API and provides support for many of SoftLayer API's features like object masks
and a command-line interface that can be used to access various SoftLayer
services using the API.
xine-lib (1.2.5) 2014-04-08
* Update german translation.
* Add bass downmix support to AC3 decoder.
* Add experimental YCgCo colorspace support.
* Add avformat demux plugin.
- Support for new formats and protocols.
- Proper rtsp support (with avformat+rtsp://, rtsp+tcp:// and rtsp+http:// mrls).
- by default native xine demux plugins are probed first.
This can be overridden in config, by selecting demuxer in mrl (#demux:avformat),
or by using "avformat+" mrl prefix.
* Add avio (libavformat) input plugin:
- Support for new protocols (https://, ftp://, sftp://, ...).
- Support for seekable http streams (with "avio+http://" mrl).
- By default native xine input plugins are used. This can be overridden in config or by using "avio+" mrl prefix.
* Recognise & use HEVC/H.265. (ffmpeg)
* Add support for HEVC/H.265 to the mpeg-ts demuxer.
* Add support for HEVC/H.265 and VP9 to the matroska demuxer.
* Add VP8/VP9 decoder using libvpx.
* Modernise Quicktime demuxer:
- Multiple user selectable audio traks.
- Support AC3, EAC3, vorbis, Purevoice audio.
- Support ISO fragment media files.
- More safety on broken files.
- Slightly faster.
* Recognise & use ADPCM G.726 and ATRAC3. (ffmpeg/libva)
* Build fixes.
* Fix HDMV subtitle channel.
* FFmpeg compatibility fixes.
* Some colour format conversion fixes.
* Fix RealVideo re-ordered PTS: pass through, let the decoder re-order it.
* Fix some problems with COOK audio.
Changes between 6.0.0 and 6.0.0a:
Not documented.
Changes between GMP version 5.1.* and 6.0.0
BUGS FIXED
* The function mpz_invert now considers any number invertible in Z/1Z.
* The mpn multiply code now handles operands of more than 2^31 limbs
correctly. (Note however that the mpz code is limited to 2^32 bits on
32-bit hosts and 2^37 bits on 64-bit hosts.)
* Contains all fixes from release 5.1.3.
SPEEDUPS
* Plain division of large operands is faster and more monotonous in operand
size.
* Major speedup for ARM, in particular ARM Cortex-A15, thanks to improved
assembly.
* Major speedup for SPARC T4/T5 and speedup also for T3, thanks to a lot of
new assembly.
* Speedup for Intel Sandy Bridge, Ivy Bridge, Haswell, thanks to rewritten
and vastly expanded assembly support. Speedup also for the older Core 2
and Nehalem.
* Faster mixed arithmetic between mpq_class and double.
* With g++, optimise more operations when one argument is a simple constant.
FEATURES
* Support for new Intel and AMD CPUs.
* Support for ARM64 alias Aarch64 alias ARMv8.
* New public functions mpn_sec_mul and mpn_sec_sqr, implementing side-channel
silent multiplication and squaring.
* New public functions mpn_sec_div_qr and mpn_sec_div_r, implementing
side-channel silent division.
* New public functions mpn_cnd_add_n and mpn_cnd_sub_n. Side-channel silent
conditional addition and subtraction.
* New public function mpn_sec_powm, implementing side-channel silent modexp.
* New public function mpn_sec_invert, implementing side-channel silent
modular inversion.
* Better support for applications which use the mpz_t type, but nevertheless
need to call some of the lower-level mpn functions. See the documentation
for mpz_limbs_read and related functions.
MISC
[FreeBSD bashing removed]
New Features
Fetch news: Allow automatically creating custom news sources
by importing OPML files. Many RSS news reader programs can
export their list of RSS feeds in the OPML format.
Conversion: When inserting metadata as a jacket page, alter
the font sizes in the jacket so that the sizes match the sizes
used in the rest of the book. Also pretty print the generated
jacket HTML.
Allow searching for books by id and uuid using the id: and
uuid: prefixes
Allow specifying arbitrary colors for column coloring rules
Bug Fixes
Update the version of openssl shipped in the binary builds (the
version in the windows 64bit build was vulnerable to the
Heartbleed bug)
Edit Book: Fix book being marked as modified even when no actual
changes were done by various automated tools such as Smarten
Punctuation, Subset Fonts, etc.
Fix ebook-device cp -f failing when destination file already
exists
Closes tickets: 1303181
Ensure that the rendered dates in the book list and edit metadata
dialogs are always in the same language as the calibre interface,
regardless of system language setting
Edit metadata dialog: Remember window size for the cover download
window
DOCX Input: Dont fail on DOCX files that contain pages with
zero effective width.
Closes tickets: 1303022
Content server: Fix page not found error when clicking on a
category that has only a single item in it
Send books to the Books folder for the Tolino Vision, as it
cannot find books placed outside this folder
Edit book: Fix error when beautifying HTML files that contain
un-indented <script> or <style> tags
Improved news sources
Ekantipur
NRC Handelsblad
Frontline
* flex version 2.5.39
** no user visible changes in this release
* version 2.5.38 released 2014-02-14
** internationalization
*** add sr translation from the translation project
*** update da, es, ko, nl, pt_BR, ro, ru, sv, tr, vi, zh_CN translations from the translation project
*** rename zh_tw to its proper zh_TW name
* version 2.5.37 released 2012-08-03
** Import flex into git. See
git://flex.git.sourceforge.net/gitroot/flex/flex.
** Fix make install target to not fail when the flex++ program is
already installed
** New translations from the translation project: de, fi, pl, vi
Changes in 2.0.25
Fix copy right click menu not appearing when reviewing.
Possible fix for shortcut issues with some add-ons when reviewing.
Fix from Julien to fail more gracefully when templates need
updating.
Fix Qt4.7 Windows build failing to start.
Workaround a crash on Macs that was happening when a progress
bar was shown.
Roll back to a previous mplayer version on OSX to fix some
audio playing too fast.
Fix Anki failing to recognize clozes when user had defined
multiple cloze fields on a single line in their template.
Changes in 2.0.24
A required upgrade to continue syncing, as the encryption
certificate has been updated. More info is available at
https://anki.tenderapp.com/discussions/announcements/60-anki-and-heartbleed
An alternative build is now provided which uses an older version
of the toolkit. This addresses the Thai slowdown issue on
Windows, and continues support for OSX 10.5 & 10.6 on Mac, as
the primary build now requires 10.7 or later.
For people using add-ons that used multiple colons such as
{{ring:my_tag:file.mp3}}, you should update your template to
{{ring (my_tag):file.mp3}}. For add-on authors, this change is
an improvement by Julien that allows multiple filters to be
chained together.
If you get an error message about pyqtconfig, please contact
the author of the failing add-on and ask them to update the
add-on to use qtmajor/qtminor instead, as pyqtconfig was
obsoleted a while ago.
The deck list in the browser sidebar is now collapsible. This
and a few other changes thanks to Houssam.
Include buried cards in the suspended count of the graphs.
Fix crashes and corruption in column headers on qt5.2 (only
relevant for Linux users at the moment)
Fix for warnings in console on bleeding edge Linux distros,
thanks to ospalh.
Remove leech tag on undo if it was added during review.
Allow copy context menu for things like card preview.
Tweaks to supermemo importer thanks to Bryan.
Remove marked and leech tags when exporting without scheduling.
More friendly error when ssl fails.
Fix 1000 cap in overview screen.
Catch another invalid temp folder message.
Disallow \r and \n in filenames, and ./.. in profile names.
Changes in 2.0.23
Due to a build error, this version was skipped.
1.3.5 (April 15, 2014)
----------------------
This is a short-term release that adds some great new stuff to beets. There's
support for tracking and calculating musical keys, the ReplayGain plugin was
expanded to work with more music formats via GStreamer, we can now import
directly from compressed archives, and the lyrics plugin is more robust.
One note for upgraders and packagers: this version of beets has a new
dependency in `enum34`_, which is a backport of the new `enum`_ standard
library module.
The major new features are:
* Beets can now import `zip`, `tar` and `rar` archives. Just type ``beet
import music.zip`` to have beets transparently extract the files to import.
* :doc:`/plugins/replaygain`: Added support for calculating ReplayGain values
with GStreamer as well the mp3gain program. This enables ReplayGain
calculation for any audio format. Thanks to Yevgeny Bezman.
* :doc:`/plugins/lyrics`: Lyrics should now be found for more songs. Searching
is now sensitive to featured artists and parenthesized title suffixes.
When a song has multiple titles, lyrics from all the named songs are now
concatenated. Thanks to Fabrice Laporte and Paul Phillips.
In particular, a full complement of features for supporting musical keys are
new in this release:
* A new `initial_key` is available in the database and files' tags. You can
set the field manually using a command like ``beet modify
initial_key=Am``.
* The :doc:`/plugins/echonest` sets the `initial_key` field if the data is
available.
* A new :doc:`/plugins/keyfinder` runs a command-line tool to get the key from
audio data and store it in the `initial_key` field.
There are also many bug fixes and little enhancements:
* :doc:`/plugins/echonest`: Truncate files larger than 50MB before uploading for
analysis.
* :doc:`/plugins/fetchart`: Fix a crash when the server does not specify a
content type. Thanks to Lee Reinhardt.
* :doc:`/plugins/convert`: The ``--keep-new`` flag now works correctly
and the library includes the converted item.
* The importer now logs a message instead of crashing when errors occur while
opening the files to be imported.
* :doc:`/plugins/embedart`: Better error messages in exceptional conditions.
* Silenced some confusing error messages when searching for a non-MusicBrainz
ID. Using an invalid ID (of any kind---Discogs IDs can be used there too) at
the "Enter ID:" importer prompt now just silently returns no results. More
info is in the verbose logs.
* :doc:`/plugins/mbsync`: Fix application of album-level metadata. Due to a
regression a few releases ago, only track-level metadata was being updated.
* On Windows, paths on network shares (UNC paths) no longer cause "invalid
filename" errors.
* :doc:`/plugins/replaygain`: Fix crashes when attempting to log errors.
* The :ref:`modify-cmd` command can now accept query arguments that contain =
signs. An argument is considered a query part when a : appears before any
=s. Thanks to mook.
.. _enum34: https://pypi.python.org/pypi/enum34
.. _enum: https://docs.python.org/3.4/library/enum.html
1.3.4 (April 5, 2014)
---------------------
This release brings a hodgepodge of medium-sized conveniences to beets. A new
:ref:`config-cmd` command manages your configuration, we now have :ref:`bash
completion <completion>`, and the :ref:`modify-cmd` command can delete
attributes. There are also some significant performance optimizations to the
autotagger's matching logic.
One note for upgraders: if you use the :doc:`/plugins/fetchart`, it has a new
dependency, the `requests`_ module.
New stuff:
* Added a :ref:`config-cmd` command to manage your configuration. It can show
you what you currently have in your config file, point you at where the file
should be, or launch your text editor to let you modify the file. Thanks to
geigerzaehler.
* Beets now ships with a shell command completion script! See
:ref:`completion`. Thanks to geigerzaehler.
* The :ref:`modify-cmd` command now allows removing flexible attributes. For
example, ``beet modify artist:beatles oldies!`` deletes the ``oldies``
attribute from matching items. Thanks to brilnius.
* Internally, beets has laid the groundwork for supporting multi-valued
fields. Thanks to geigerzaehler.
* The importer interface now shows the URL for MusicBrainz matches. Thanks to
johtso.
* :doc:`/plugins/smartplaylist`: Playlists can now be generated from multiple
queries (combined with "or" logic). Album-level queries are also now
possible and automatic playlist regeneration can now be disabled. Thanks to
brilnius.
* :doc:`/plugins/echonest`: Echo Nest similarity now weights the tempo in
better proportion to other metrics. Also, options were added to specify
custom thresholds and output formats. Thanks to Adam M.
* Added the :ref:`after_write <plugin_events>` plugin event.
* :doc:`/plugins/lastgenre`: Separator in genre lists can now be
configured. Thanks to brilnius.
* We now only use "primary" aliases for artist names from MusicBrainz. This
eliminates some strange naming that could occur when the `languages` config
option was set. Thanks to Filipe Fortes.
* The performance of the autotagger's matching mechanism is vastly improved.
This should be noticeable when matching against very large releases such as
box sets.
* The :ref:`import-cmd` command can now accept individual files as arguments
even in non-singleton mode. Files are imported as one-track albums.
Fixes:
* Error messages involving paths no longer escape non-ASCII characters (for
legibility).
* Fixed a regression that made it impossible to use the :ref:`modify-cmd`
command to add new flexible fields. Thanks to brilnius.
* :doc:`/plugins/echonest`: Avoid crashing when the audio analysis fails.
Thanks to Pedro Silva.
* :doc:`/plugins/duplicates`: Fix checksumming command execution for files
with quotation marks in their names. Thanks again to Pedro Silva.
* Fix a crash when importing with both of the :ref:`group_albums` and
:ref:`incremental` options enabled. Thanks to geigerzaehler.
* Give a sensible error message when ``BEETSDIR`` points to a file. Thanks
again to geigerzaehler.
* Fix a crash when reading WMA files whose boolean-valued fields contain
strings. Thanks to johtso.
* :doc:`/plugins/fetchart`: The plugin now sends "beets" as the User-Agent
when making scraping requests. This helps resolve some blocked requests. The
plugin now also depends on the `requests`_ Python library.
* The :ref:`write-cmd` command now only shows the changes to fields that will
actually be written to a file.
* :doc:`/plugins/duplicates`: Spurious reports are now avoided for tracks with
missing values (e.g., no MBIDs). Thanks to Pedro Silva.
* The default :ref:`replace` sanitation options now remove leading whitespace
by default. Thanks to brilnius.
* :doc:`/plugins/importfeeds`: Fix crash when importing albums
containing ``/`` with the ``m3u_multi`` format.
* Avoid crashing on Mutagen bugs while writing files' tags.
* :doc:`/plugins/convert`: Display a useful error message when the FFmpeg
executable can't be found.
.. _requests: http://www.python-requests.org/
1.3.3 (February 26, 2014)
-------------------------
Version 1.3.3 brings a bunch changes to how item and album fields work
internally. Along with laying the groundwork for some great things in the
future, this brings a number of improvements to how you interact with beets.
Here's what's new with fields in particular:
* 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).
* :ref:`Date-based queries <datequery>` are now possible. Try getting every
track you added in February 2014 with ``beet ls added:2014-02`` or in the
whole decade with ``added:2010..``. Thanks to Stig Inge Lea Bjørnsen.
* The :ref:`modify-cmd` command is now better at parsing and formatting
fields. You can assign to boolean fields like ``comp``, for example, using
either the words "true" or "false" or the numerals 1 and 0. Any
boolean-esque value is normalized to a real boolean. The :ref:`update-cmd`
and :ref:`write-cmd` commands also got smarter at formatting and colorizing
changes.
For developers, the short version of the story is that Item and Album objects
provide *uniform access* across fixed, flexible, and computed attributes. You
can write ``item.foo`` to access the ``foo`` field without worrying about
where the data comes from.
Unrelated new stuff:
* The importer has a new interactive option (*G* for "Group albums"),
command-line flag (``--group-albums``), and config option
(:ref:`group_albums`) that lets you split apart albums that are mixed
together in a single directory. Thanks to geigerzaehler.
* A new ``--config`` command-line option lets you specify an additional
configuration file. This option *combines* config settings with your default
config file. (As part of this change, the ``BEETSDIR`` environment variable
no longer combines---it *replaces* your default config file.) Thanks again
to geigerzaehler.
* :doc:`/plugins/ihate`: The plugin's configuration interface was overhauled.
Its configuration is now much simpler---it uses beets queries instead of an
ad-hoc per-field configuration. This is *backwards-incompatible*---if you
use this plugin, you will need to update your configuration. Thanks to
BrainDamage.
Other little fixes:
* :doc:`/plugins/echonest`: Tempo (BPM) is now always stored as an integer.
Thanks to Heinz Wiesinger.
* 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 Romuald Conty) and
``item_copied`` (thanks to Stig Inge Lea Bjørnsen).
* The ``pluginpath`` config option can now point to the directory containing
plugin code. (Previously, it awkwardly needed to point at a directory
containing a ``beetsplug`` directory, which would then contain your code.
This is preserved as an option for backwards compatibility.) This change
should also work around a long-standing issue when using ``pluginpath`` when
beets is installed using pip. Many thanks to geigerzaehler.
* :doc:`/plugins/web`: The ``/item/`` and ``/album/`` API endpoints now
produce full details about albums and items, not just lists of IDs. Thanks
to geigerzaehler.
* Fix a potential crash when using image resizing with the
:doc:`/plugins/fetchart` or :doc:`/plugins/embedart` without ImageMagick
installed.
* Also, when invoking ``convert`` for image resizing fails, we now log an
error instead of crashing.
* :doc:`/plugins/fetchart`: The ``beet fetchart`` command can now associate
local images with albums (unless ``--force`` is provided). Thanks to
brilnius.
* :doc:`/plugins/fetchart`: Command output is now colorized. Thanks again to
brilnius.
* The :ref:`modify-cmd` command avoids writing files and committing to the
database when nothing has changed. Thanks once more to brilnius.
* The importer now uses the album artist field when guessing existing
metadata for albums (rather than just the track artist field). Thanks to
geigerzaehler.
* :doc:`/plugins/fromfilename`: Fix a crash when a filename contained only a
track number (e.g., ``02.mp3``).
* :doc:`/plugins/convert`: Transcoding should now work on Windows.
* :doc:`/plugins/duplicates`: The ``move`` and ``copy`` destination arguments
are now treated as directories. Thanks to Pedro Silva.
* The :ref:`modify-cmd` command now skips confirmation and prints a message if
no changes are necessary. Thanks to brilnius.
* :doc:`/plugins/fetchart`: When using the ``remote_priority`` config option,
local image files are no longer completely ignored.
* :doc:`/plugins/echonest`: Fix an issue causing the plugin to appear twice in
the output of the ``beet version`` command.
* :doc:`/plugins/lastgenre`: Fix an occasional crash when no tag weight was
returned by Last.fm.
* :doc:`/plugins/mpdstats`: Restore the ``last_played`` field. Thanks to
Johann Klähn.
* The :ref:`modify-cmd` command's output now clearly shows when a file has
been deleted.
* Album art in files with Vorbis Comments is now marked with the "front cover"
type. Thanks to Jason Lefley.