<commit_before>What's New in Python OpenID 2.1.0
=================================

This implementation of OpenID has been upgraded to support version 2.0
of the OpenID Authentication specification.

New in this version is:

 * Verification of relying party return_to addresses, to screen out RPs
   hiding behind open redirect relays.  Server code can invoke this with
   the returnToVerified method on CheckIDRequest.

 * Helper module for the Provider Authentication Policy Extension (PAPE) in
   openid.extensions.pape.

 * Helper module for Attribute Exchange in openid.extensions.ax.

Bugfixes:

 * Allow the use of lxml as an ElementTree implemenation.

 * Provide compatability with a wider range of versions for SQL stores.


Upgrading from 2.0.1
--------------------

The third argument to Consumer.complete() is required.

The sreg module should be imported from openid.extensions.sreg instead of
openid.sreg.

The ax module should likewise be imported from openid.extensions.ax
instead of openid.ax

The openid.extensions.ax.FetchRequest.fromOpenIDRequest method now
takes a CheckIDRequest object instead of a Message object

The OpenID response (the result of Consumer.complete()) now has a
getDisplayIdentifier() method which should be called instead of
accessing response.identity_url.  The value of getDisplayIdentifier()
will be the XRI i-name if XRI is used.  The value of
response.identity_url SHOULD, however, be used as the application's
database key for storing account information.

What's New in Python OpenID 2.0
===============================

The big news here is compatibility with svn revision 313 of the OpenID 2.0 
draft specification.

Highlights include:

 * Simple Registration support in a new module openid.sreg.  (Those
   previously using SuccessResponse.extensionResponse are advised to
   look here.)
 * OpenID provider-driven identifier selection.
 * "Negotiators" allow you to define which association types to use.
 * Examples for Django.

Dependencies
------------

Python 2.5 is now supported.  Support for Python 2.2 discontinued.
Seperate installation of yadis and urljr packages is no longer
required; they have been included in this package.  


Upgrading from 1.1 or 1.2
-------------------------

One of the additions to the OpenID protocol was a specified nonce
format for one-way nonces.  As a result, the nonce table in the store
has changed.  You'll need to run contrib/upgrade-store-1.1-to-2.0 to
upgrade your store, or you'll encounter errors about the wrong number
of columns in the oid_nonces table.

If you've written your own custom store or code that interacts directly with it,
you'll need to review the change notes in openid.store.interface.

Consumers should now pass an additional parameter to Consumer.complete() 
to defend against return_to tampering.


What's New in Python OpenID 1.1.2
=================================<commit_msg>Add note about port to Python 3<commit_after>What's New in Python3-OpenID 3.0.1
=================================

This implementation of OpenID has been ported to Python 3 -- all but one test
is known to pass.

What's New in Python OpenID 2.1.0
=================================

This implementation of OpenID has been upgraded to support version 2.0
of the OpenID Authentication specification.

New in this version is:

 * Verification of relying party return_to addresses, to screen out RPs
   hiding behind open redirect relays.  Server code can invoke this with
   the returnToVerified method on CheckIDRequest.

 * Helper module for the Provider Authentication Policy Extension (PAPE) in
   openid.extensions.pape.

 * Helper module for Attribute Exchange in openid.extensions.ax.

Bugfixes:

 * Allow the use of lxml as an ElementTree implemenation.

 * Provide compatability with a wider range of versions for SQL stores.


Upgrading from 2.0.1
--------------------

The third argument to Consumer.complete() is required.

The sreg module should be imported from openid.extensions.sreg instead of
openid.sreg.

The ax module should likewise be imported from openid.extensions.ax
instead of openid.ax

The openid.extensions.ax.FetchRequest.fromOpenIDRequest method now
takes a CheckIDRequest object instead of a Message object

The OpenID response (the result of Consumer.complete()) now has a
getDisplayIdentifier() method which should be called instead of
accessing response.identity_url.  The value of getDisplayIdentifier()
will be the XRI i-name if XRI is used.  The value of
response.identity_url SHOULD, however, be used as the application's
database key for storing account information.

What's New in Python OpenID 2.0
===============================

The big news here is compatibility with svn revision 313 of the OpenID 2.0
draft specification.

Highlights include:

 * Simple Registration support in a new module openid.sreg.  (Those
   previously using SuccessResponse.extensionResponse are advised to
   look here.)
 * OpenID provider-driven identifier selection.
 * "Negotiators" allow you to define which association types to use.
 * Examples for Django.

Dependencies
------------

Python 2.5 is now supported.  Support for Python 2.2 discontinued.
Seperate installation of yadis and urljr packages is no longer
required; they have been included in this package.


Upgrading from 1.1 or 1.2
-------------------------

One of the additions to the OpenID protocol was a specified nonce
format for one-way nonces.  As a result, the nonce table in the store
has changed.  You'll need to run contrib/upgrade-store-1.1-to-2.0 to
upgrade your store, or you'll encounter errors about the wrong number
of columns in the oid_nonces table.

If you've written your own custom store or code that interacts directly with it,
you'll need to review the change notes in openid.store.interface.

Consumers should now pass an additional parameter to Consumer.complete()
to defend against return_to tampering.


What's New in Python OpenID 1.1.2
=================================
{'fraction_non_alphanumeric': 0.09821279438784032, 'fraction_numerical': 0.011023885084349424, 'mean_word_length': 4.015075376884422, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, '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': '4339188', 'n_tokens_mistral': 1631, 'n_tokens_neox': 1504, 'n_words': 775}