----------------
* Dropped official support for Python 2.6, 3.2, 3.3, 3.4 (mainly because
our test tools don't support them any more).
* Added support for getting amount in sub units (fixed point)
* Format ``Money`` instances using CLDR and Babel. This is a large change with lots of parts.
Many thanks to pooyamb for all the hard work that went into this and other
related changes.
* Added new ``moneyed.l10n`` module, containing a new ``format_money``
function. This is a very thin wrapper around `babel.numbers.format_currency
<http://babel.pocoo.org/en/latest/api/numbers.html#babel.numbers.format_currency>`_
and has all the same options. This allows us to get the official CLDR
formats for currencies, in all the different locales.
See docs in README.
Note especially that you need to specify ``locale`` (e.g.
``locale="en_US"``), or you will get the ``LC_NUMERIC`` default.
* Deprecated the ``format_money`` function in ``moneyed.localization``. There
is no immediate plan to remove, but it should not be relied on. Also, this
function relies on our own manually entered data for formatting of
currencies in different locales. This data is very incomplete and will not
be updated any more.
So you need to use ``moneyed.l10n.format_money`` instead now.
If you were relying on the ``decimal_places`` argument to the old function,
there is no exact equivalent in the new ``format_money`` function, but see
the ``decimal_quantization`` option (documented in
`babel.numbers.format_currency
<http://babel.pocoo.org/en/latest/api/numbers.html#babel.numbers.format_currency>`_)
* ``Money.__str__`` (``Money.__unicode__`` on Python 2) now uses new
``format_money`` with the default locale ``LC_NUMERIC``, which can produce
different results from the old function. Use the new ``format_money`` to control
output.
* On Python 2, ``Money.__str__`` (bytestring) output has changed to be more
basic. You should use the new ``format_money`` function to control output.
* Get currency names from Babel data. Several changes, including:
* For all built-in currencies, ``Currency.name`` now comes from Babel ("en_US"
locale). This means there have been various corrections to currency names.
If you pass a non-None ``name`` to the ``Currency`` constructor, you can
still specify any name you want.
* ``Currency.get_name(locale)`` has been added.
* Get currency 'countries' from Babel data. Several changes, including:
* ``Currency.countries`` now sources from Babel, so some names may be different.
* ``Currency.country_codes`` has been added.
* ``Currency.countries`` is deprecated, because it is not the most useful form
for the data (e.g. upper cased strings, and names in US English only). It is
recommended to use ``Currency.country_codes`` and convert to names using
``get_country_name``.
* Changed the repr of ``Money`` so that ``eval(repr(money_object) ==
money_object`` (at least in some environments, and most of the typical ones).
See `Python docs on __repr__
<https://docs.python.org/3/reference/datamodel.html?highlight=__repr__#object.__repr__>`_
for rationale. Thanks `davidtvs <https://github.com/davidtvs>`_. This could
be backwards incompatible if you were relying on the old output of ``repr()``.
* Added ``list_all_currencies()`` utility function.