<commit_before>PyAMF Changelog
===============

This file contains information about the changes between the different versions
of PyAMF.

0.3.1 (unreleased)
----------------

0.3 (2008-04-14)
----------------
 - Added compatibility module for Google App Engine (Ticket:247)
 - Fixed the signed interpretation of compressed integers in AMF3 (Ticket:241)
 - Classic class decoding would throw an AttributeError (Ticket:248)
 - Reloading adapter modules caused errors in Django, Pylons and Google App
   Engine. Resolved by removing dependancy on Importing module and incorporating
   into pyamf.util (Ticket:250)
 - Adapter framework can now be fired when only loading submodules (Ticket:246)
 - Made util.BufferedByteStream endian aware (Ticket:231)
 - Fixed issue with Twisted threads (Ticket:233)

0.2 (2008-03-12)
----------------

 - Removed amfinfo console_script (Ticket:226)
 - Encoders/Decoders now check for __getstate__/__setstate__ respectively
   (Ticket:209)
 - Gateway import hack has now been removed - permanently (Ticket:224)
 - Encoding/decoding performance has been increased 2x for AMF0 and upto 10x(!)
   for AMF3 (Ticket:198)
 - Logging is now possible in all the supported gateways (Ticket:173)
 - A new preprocessor function that runs after authentication, but before
   invoking the service method (Ticket:196)
 - authenticator can now be decorated with expose_request (Ticket:195)
 - Python 2.3 support (Ticket:33)
 - Python 2.6 support (Ticket:222)
 - Made PyAMF distributable as zip-based Python Egg (Ticket:193)

0.1.1 (2008-02-18)
------------------

 - AMF3 encoder reported incorrect byte length header for non-ASCII string data.
   Patch supplied by akaihola. (Ticket:194)
 - Decoder context not cleared between reading the remoting header and body.
   Reported by gerard. (Ticket:192)

0.1 (2008-02-11)
----------------

 - New error handling api useful for registering custom exception classes
   (Ticket:185)
 - When a client receives a remoting error, an exception is generated (Ticket:167)
 - expose_request per service control vastly improved (Ticket:169)
 - Authentication per service control vastly improved (Ticket:166)
 - uuid is no longer installed when using Python 2.5 or newer (Ticket:182)
 - The inheritance tree was not consulted when encoding attributes (Ticket:172)
 - TypedObjects didn't work with old style classes (Ticket:171)
 - ErrorFault now prints details (Ticket:168)
 - Added expose_request to TwistedGateway (Ticket:165)
 - TwistedGateway now expects deferred from service functions (Ticket:164)

0.1b (2008-01-13)
-------------------

 - IExternalizable now takes its methods from the class and fine grain control
   over attr encoding (Ticket:110)
 - Added an adapter framework that gets imported when the related module is
   imported. See http://pyamf.org/wiki/AdapterFramework for more info
 - Added 'expose_environ' argument to WSGIGateway to expose the WSGI environ
   as the first arg in the called services.
 - Implemented Local Shared Object (LSO) support (Ticket:11)
 - ByteArray now implements IDataInput and IDataOutput instead of
   StringIOProxy (Ticket:151)
 - dicts are now used as the default for anonymous objects (Ticket:131)
 - remoting.client mostly fully supports the predefined headers (defined at
   http://osflash.org/documentation/amf/envelopes/remoting/headers). The only
   one missing is amf_server_debug (Ticket:39)
 - LazyImporter objects now set the __file__ attribute to None, so that
   querying sys.modules don't accidentally import the underlying module.
   (Ticket:147)
 - Fixed argument positioning for RemoteObject processing. Thanks akaihola!
   (Ticket:145)
 - ElementTree requirement is now ignored when using Python >= 2.5 (Ticket:144)
 - Added tests for TwistedGateway (Ticket:132)
 - Workaround for Python 2.4 float shortcomings (Ticket:78) 
 - Service Browser ('DescribeService' header) requests supported. (Ticket:138)
 - Remoting client now supports authentication. (Ticket:137)
 - Proper encoding for aliased subclassed builtin types, specifically
   flex.ArrayCollection.
 - Added support for easy encoding of Django object queries (Foo.objects.all())
 - Added 'add_type' allowing finer grain control of how a class is encoded in
   an AMF stream. (Ticket:130)
 - 'authenticator' keyword added to all gateways (moved from ServiceRequest)
   (Ticket:129)
 - Added 'expose_request' argument to DjangoGateway to expose the underlying
   HTTP Request object as the first arg in the called services. (Ticket:103)

0.1.0a (2007-12-12)
-------------------

 - AMF0 and AMF3 encoders/decoders
 - Additional support for IExternalizable, ArrayCollection, ObjectProxy,
   ByteArray, RecordSet and RemoteObject
 - Remoting gateways for Twisted, WSGI, and Django
 - Authentication/setCredentials support
 - zlib compression support for ByteArray
 - Remoting client with httplib

2007-10-19
----------

 - Started project based on previous work done in the RTMPy (http://rtmpy.org)
   project.
<commit_msg>Changelog update.<commit_after>PyAMF Changelog
===============

This file contains information about the changes between the different versions
of PyAMF.

0.3.1 (unreleased)
------------------
 - Fixed issue with url parsing in AMF client (Ticket:256)

0.3 (2008-04-14)
----------------
 - Added compatibility module for Google App Engine (Ticket:247)
 - Fixed the signed interpretation of compressed integers in AMF3 (Ticket:241)
 - Classic class decoding would throw an AttributeError (Ticket:248)
 - Reloading adapter modules caused errors in Django, Pylons and Google App
   Engine. Resolved by removing dependancy on Importing module and incorporating
   into pyamf.util (Ticket:250)
 - Adapter framework can now be fired when only loading submodules (Ticket:246)
 - Made util.BufferedByteStream endian aware (Ticket:231)
 - Fixed issue with Twisted threads (Ticket:233)

0.2 (2008-03-12)
----------------

 - Removed amfinfo console_script (Ticket:226)
 - Encoders/Decoders now check for __getstate__/__setstate__ respectively
   (Ticket:209)
 - Gateway import hack has now been removed - permanently (Ticket:224)
 - Encoding/decoding performance has been increased 2x for AMF0 and upto 10x(!)
   for AMF3 (Ticket:198)
 - Logging is now possible in all the supported gateways (Ticket:173)
 - A new preprocessor function that runs after authentication, but before
   invoking the service method (Ticket:196)
 - authenticator can now be decorated with expose_request (Ticket:195)
 - Python 2.3 support (Ticket:33)
 - Python 2.6 support (Ticket:222)
 - Made PyAMF distributable as zip-based Python Egg (Ticket:193)

0.1.1 (2008-02-18)
------------------

 - AMF3 encoder reported incorrect byte length header for non-ASCII string data.
   Patch supplied by akaihola. (Ticket:194)
 - Decoder context not cleared between reading the remoting header and body.
   Reported by gerard. (Ticket:192)

0.1 (2008-02-11)
----------------

 - New error handling api useful for registering custom exception classes
   (Ticket:185)
 - When a client receives a remoting error, an exception is generated (Ticket:167)
 - expose_request per service control vastly improved (Ticket:169)
 - Authentication per service control vastly improved (Ticket:166)
 - uuid is no longer installed when using Python 2.5 or newer (Ticket:182)
 - The inheritance tree was not consulted when encoding attributes (Ticket:172)
 - TypedObjects didn't work with old style classes (Ticket:171)
 - ErrorFault now prints details (Ticket:168)
 - Added expose_request to TwistedGateway (Ticket:165)
 - TwistedGateway now expects deferred from service functions (Ticket:164)

0.1b (2008-01-13)
-------------------

 - IExternalizable now takes its methods from the class and fine grain control
   over attr encoding (Ticket:110)
 - Added an adapter framework that gets imported when the related module is
   imported. See http://pyamf.org/wiki/AdapterFramework for more info
 - Added 'expose_environ' argument to WSGIGateway to expose the WSGI environ
   as the first arg in the called services.
 - Implemented Local Shared Object (LSO) support (Ticket:11)
 - ByteArray now implements IDataInput and IDataOutput instead of
   StringIOProxy (Ticket:151)
 - dicts are now used as the default for anonymous objects (Ticket:131)
 - remoting.client mostly fully supports the predefined headers (defined at
   http://osflash.org/documentation/amf/envelopes/remoting/headers). The only
   one missing is amf_server_debug (Ticket:39)
 - LazyImporter objects now set the __file__ attribute to None, so that
   querying sys.modules don't accidentally import the underlying module.
   (Ticket:147)
 - Fixed argument positioning for RemoteObject processing. Thanks akaihola!
   (Ticket:145)
 - ElementTree requirement is now ignored when using Python >= 2.5 (Ticket:144)
 - Added tests for TwistedGateway (Ticket:132)
 - Workaround for Python 2.4 float shortcomings (Ticket:78) 
 - Service Browser ('DescribeService' header) requests supported. (Ticket:138)
 - Remoting client now supports authentication. (Ticket:137)
 - Proper encoding for aliased subclassed builtin types, specifically
   flex.ArrayCollection.
 - Added support for easy encoding of Django object queries (Foo.objects.all())
 - Added 'add_type' allowing finer grain control of how a class is encoded in
   an AMF stream. (Ticket:130)
 - 'authenticator' keyword added to all gateways (moved from ServiceRequest)
   (Ticket:129)
 - Added 'expose_request' argument to DjangoGateway to expose the underlying
   HTTP Request object as the first arg in the called services. (Ticket:103)

0.1.0a (2007-12-12)
-------------------

 - AMF0 and AMF3 encoders/decoders
 - Additional support for IExternalizable, ArrayCollection, ObjectProxy,
   ByteArray, RecordSet and RemoteObject
 - Remoting gateways for Twisted, WSGI, and Django
 - Authentication/setCredentials support
 - zlib compression support for ByteArray
 - Remoting client with httplib

2007-10-19
----------

 - Started project based on previous work done in the RTMPy (http://rtmpy.org)
   project.

{'fraction_non_alphanumeric': 0.09441080115159337, 'fraction_numerical': 0.04397895363843939, 'mean_word_length': 3.7994282991900907, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6361090', 'n_tokens_mistral': 3103, 'n_tokens_neox': 2758, 'n_words': 1156}