2004-12-18 08:35:46

Classes and functions related to IRI processing

Copyright 2004 Fourthought, Inc. (USA). Detailed license and copyright information: http://4suite.org/COPYRIGHT Project home, documentation, distributions: http://4suite.org/

On Python 2.3 and higher, converts the given ireg-name component of an IRI to a string suitable for use as a URI reg-name in pre- rfc2396bis schemes and resolvers. Returns the ireg-name unmodified on Python 2.2.

Converts an IRI or IRI reference to a URI or URI reference, implementing sec. 3.1 of draft-duerst-iri-10.

The convertHost flag indicates whether to perform conversion of the ireg-name (host) component of the IRI to an RFC 2396-compatible URI reg-name (IDNA encoded), e.g. IriToUri(u'http://r\xe9sum\xe9.example.org/', convertHost=False) => u'http://r%C3%A9sum%C3%A9.example.org/' IriToUri(u'http://r\xe9sum\xe9.example.org/', convertHost=True) => u'http://xn--rsum-bpad.example.org/'

Ordinarily, the IRI should be given as a unicode string. If the IRI is instead given as a byte string, then it will be assumed to be in UTF-8 encoded, will be decoded accordingly, and as per the requirements of the conversion algorithm, will NOT be normalized.

On Python 2.3 and higher, normalizes the given unicode string according to Unicode Normalization Form C (NFC), so that it can be used as an IRI or IRI reference.