PyAMF 0.6 represents the next step towards the holy grail that is 1.0. The focus
of this release has mainly been about speed and providing better support for
integrated frameworks (e.g. Django, SQLAlchemy, AppEngine). The C extensions
have been supercharged and now 90%+ of the encoding is done in C. This has given
some massive gains in both encoding and decoding.
- The default AMF version has been switched from AMF0 to AMF3.
- Introduced a new adapter for Elixir, a thin wrapper around SQLAlchemy.
- Provide support for property synonyms.
- Support for lxml.
- Switched the client from httplib to urllib2 to provide
support for gzipped responses and proper HTTP proxying. See #751.
- pyamf.util.IndexedMap has been removed. See #732.
- __new__ is used in favour of __init__. See #700.
- pyamf.ClientTypes served no purpose and was not compliant with the
AMF0 specification. It has been removed. See #651 for more information.
- exceptions attribute has been removed from Context objects and
pyamf.util.IndexedCollection. Any method that used to raise
pyamf.ReferenceError will now return None for speed.
- amf3.Encoder.write* methods no longer accept use_references.
- amf*.Encoder.type_map has been been removed. Use pyamf.add_type
instead. Standard types (e.g. str, unicode) are now hardcoded.
- django.contrib.auth.models.User is now strongly typed, with the alias
django.contrib.auth.models.User with the password and all messages
excluded from the instance. In addition, the username is now set to
readonly which means that a separate (read:deliberate) service method will
be required to update this directly (or you can override these defaults)
- AMF0 Remoting errors will now produce the details property as a list,
rather than a string.
- Empty relations are now encoded as None, not pyamf.Undefined.
- All model.Model fields are now encoded dynamically. See #677.
- Django 1.2 supported, including the new CSRF middleware.
- All db.Model properties are now encoded dynamically. See #677.
- All mapped properties are now encoded dynamically. See #677.
- Tested with SQLAlchemy 0.6. See #747.