----------------
- Added the ability to modify the timezones of dates being de/encoded for
legacy systems. (:ticket:`612`)
- Fixed a Django reference bug where ``parent.child.parent`` is parent
would encode 3 objects and not 2. (:ticket:`642`)
- Setting ``None`` on a Django ``DateField`` would blow up the encoder
(:ticket:`632`)
- ``rootCause`` in ``ErrorFault`` objects are now populated with the
traceback object. (:ticket:`637`)
- Support for encoding/decoding BlazeDS specific messages (:ticket:`581`)
- Removed tracebacks from exception messages if ``debug=False`` (:ticket:`552`)
- Support for ``google.appengine.ext.db.polymodel.PolyModel`` (:ticket:`633`)
- Support for Django ``File``/``ImageField`` (:ticket:`631`)
- Support for Django model inheritance (:ticket:`626`)
- Rewrote attribute handling code. Added the ability to exclude, set
read-only and static attributes. See
http://pyamf.org/architecture/attributecontrol.html for more details
(:ticket:`601`)
- Exposed the amf request object if ``expose_request=True``.
Twisted/Django/Google have an ``amf_request`` property on the http request
object. WSGI has an entry in the environ dict now - ``pyamf.request``
(:ticket:`234`)
- Added support for the :py:mod:`array` module (:ticket:`468`)
- Fixed an issue with Django model ``AutoFields`` being set to 0 by the Flex
client (:ticket:`556`)
- Added support for the :py:mod:`collections` module. (:ticket:`474`)
- Added type checks for class objects. (:ticket:`473`)
- GAE ``FloatProperty`` can now accept int without issue (:ticket:`609`)
- Revamped the lazy imports module to use :py:data:`sys.meta_path` instead.
Fixes all erroneous import errors (:ticket:`485`).
- Django models will now accept dynamic properties (:ticket:`575`)
- Django PK properties will be set first to allow related properties to apply
correctly (:ticket:`599`)
- p.r.encode/p.r.decode both have a new ``logger`` kwarg. Supply a
:py:class:`logging.Logger` instance if you want to see debug output
(:ticket:`588`)
- ``pyamf.TypedObjectClassAlias`` now forces the class type (:ticket:`537`)
- If a call to ``Decoder.readElement`` results in an ``IOError`` exception,
the original position of the stream will be restored (:ticket:`573`)
- Replaced hardcoded Python implementation title in p.r.gateway.SERVER_NAME
(:ticket:`541`)
- Provide a user friendly way to handle :py:class:`datetime.time` objects
(:ticket:`498`)
- Removed the useless ``pyamf.logging`` module (:ticket:`577`)
- Added a new ``register_package`` helper function to make bulk class
registration easier. Check the docstring for more info. (:ticket:`576`)
- ``cpyamf.amf3._decode_int`` now propagates exceptions correctly (:ticket:`506`)
- Fixed an incorrect ``OverflowError`` when encoding large integers in AMF3
(:ticket:`519`)
- Added ``append`` to ``pyamf.util.BufferedByteStream`` (:ticket:`574`)
- Added Epydoc signatures to all ``util.StringIOProxy``, ``util.DataTypeMixIn``
and ``util.BufferedByteStream`` classes (:ticket:`440`)
- Removed dependancy on ``fpconst``. Platforms with broken platforms are
detected and handled correctly internally (:ticket:`564`)
- ``amf0.Encoder`` now supports attribute ordering (:ticket:`558`)
- Removed duplicate method ``Context.reset``, in favour of ``Context.clear``
(:ticket:`527`)
- Rewrote ``cpyamf.util.BufferedByteStream`` to not depend on :py:mod:`cStringIO`.
Added a C based api for stream functions (:ticket:`513`)
- Unified exceptions for ``BufferedByteStream`` so that only ``IOError``
is raised. (:ticket:`520`)
- Made raising ``pyamf.ReferenceError`` optional for all Indexed* and
``Context`` classes. Refactored AMF3 so that only one ``ClassDefinition``
is created per class (:ticket:`524`)
- Strict type checking now on ``pyamf.util.BufferedByteStream`` (:ticket:`512`)
- Removed the default loggers from p.r.gateway.*. To re-enable supply a
``logger`` instance as a keyword arg to the gateway constructor (:ticket:`525`)
- Removed ``pyamf.util.make_classic_instance`` (as it is not used)
(:ticket:`521`)
- Removed ``pyamf.util.get_mro``, in favour of :py:func:`inspect.getmro`
(:ticket:`526`)
- Removed ``pyamf.util.Indexed[Collection|Map].remove`` (:ticket:`518`)