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.
Contents
- 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 :doc:`property synonyms </architecture/attributecontrol>`.
- Support for lxml.
- Switched the client from :py:mod:`httplib` to :py:mod:`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 :class:`pyamf.codec.IndexedCollection`. Any method that used to raise :class:`pyamf.ReferenceError` will now returnNone
for speed.amf3.Encoder.write*
methods no longer acceptuse_references
.amf*.Encoder.type_map
has been been removed. Usepyamf.add_type
instead. Standard types (e.g.str
,unicode
) are now hardcoded.django.contrib.auth.models.User
is now strongly typed, with the aliasdjango.contrib.auth.models.User
with the password and all messages excluded from the instance. In addition, theusername
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.