
#######
History
#######


=======================================
Changes in 0.15.1 (released 03/22/2005)
=======================================

  * Added a note about the package init file to the installation
    documentation.


=====================================
Changes in 0.15 (released 02/24/2005)
=====================================

  * The mimetype property of ReadResource is no longer a tuple, but a
    plain string.
  * ReadResource has a new property named encoding, which is the
    character encoding of the resource.
  * A bug in the lastmodified property of WriteResource has been fixed.


=======================================
Changes in 0.14.2 (released 02/22/2005)
=======================================

  * url.URL("file:foo/").local() will now always end in a directory
    separator. This didn't work on Windows before.


=======================================
Changes in 0.14.1 (released 01/13/2005)
=======================================

  * On Windows url.File("c:\\foo").abs() generated URL('file:///C|/
    foo'). Now the result will always be URL('file:/C|/foo'). The same
    fix has been made for real and the constructor.


=====================================
Changes in 0.14 (released 01/03/2005)
=====================================

  * url requires the core module and Python 2.4 now.


=====================================
Changes in 0.13 (released 11/25/2004)
=====================================

  * The helper function _unescape will now interpret %u escapes
    (produced by Microsoft software). The patch has been contributed by
    Artiom Morozov.


=======================================
Changes in 0.12.1 (released 11/03/2004)
=======================================

  * Fixed a bug in the C helper function _unescape (forget to clear the
    exception).
  * Dropped the system default encoding from the list of encodings that
    will be tried when UTF-8 fails in _unescape.


=====================================
Changes in 0.12 (released 01/12/2004)
=====================================

  * removefromimportcache has been dropped, now you can assign the
    import cache directly (as the module level attribute importcache.
    Removing modules from the import cache can now be done via
    url.importcache.remove(mod).


=======================================
Changes in 0.11.7 (released 12/23/2003)
=======================================

  * Fixed a bug in Path.real that only surfaced on Windows.


=======================================
Changes in 0.11.6 (released 12/06/2003)
=======================================

  * Added a function removefromimportcache.


=======================================
Changes in 0.11.5 (released 11/22/2003)
=======================================

  * Fixed a bug with the scheme argument of the methods real and abs.


=======================================
Changes in 0.11.4 (released 11/19/2003)
=======================================

  * realurl has been renamed to finalurl and now works for local URLs
    too (it will be the same as the original URL).


=======================================
Changes in 0.11.3 (released 11/17/2003)
=======================================

  * Added an attribute realurl to ReadResource which contains the real
    URL (which might be different from the URL passed to the
    constructor, because of a redirect).


=======================================
Changes in 0.11.2 (released 11/17/2003)
=======================================

  * URLs that have an authority part but a relative path will be
    properly formatted, i.e. the leading / will be included.


=======================================
Changes in 0.11.1 (released 08/13/2003)
=======================================

  * The URL method rename has been fixed.
  * A bug has been fixed that created relative paths for HTTP URLs that
    didn't have a trailing /.


=====================================
Changes in 0.11 (released 08/04/2003)
=====================================

  * A method withoutfrag has been added. withFragment has been renamed
    to withfrag and the property fragment has been renamed to frag.


=====================================
Changes in 0.10 (released 07/31/2003)
=====================================

  * url requires Python 2.3 now.
  * The method insert has been fixed.


======================================
Changes in 0.9.1 (released 07/17/2003)
======================================

  * Fixed a bug that drops the filename in relative when both URLs have
    the same filenames but a different query.
  * The fragment is now properly escaped when the URL is regenerated.


====================================
Changes in 0.9 (released 07/09/2003)
====================================

  * withExt and friends have been lowercased.
  * The path has been changed from a string to an object of the new
    class Path. This new class provides many of the path related
    functionality of URLs.
  * The method URL.import_ no longer uses the import machinery (from
    the imp module), but execfile. This has the following consequences:

      + You can only import files with the extension .py.
      + The imported module no longer retains deleted attributes of the
        previous version.
      + The file will be compiled even if a bytecode file exists.


====================================
Changes in 0.8 (released 06/04/2003)
====================================

  * Added methods abs and __rdiv__ to URL.
  * The method real now has an argument scheme that specifies which
    scheme should the use for the resulting URL.
  * Now the query part of an URL will be parsed into the attribute
    query_parts (which is a dictionary). If the query can't be parsed,
    query_parts will be False, but query will still contain the
    complete query part.


======================================
Changes in 0.7.1 (released 05/01/2003)
======================================

  * Made clearimportcache a class method.


====================================
Changes in 0.7 (released 04/23/2003)
====================================

  * Introduced local as a synonym for asFilename, Dir as a synonym for
    Dirname and File as a synonym for Filename.
  * Added functions first, firstdir and firstfile, that returns the
    first URL from a list that exists, is a directory or a file.
  * The method import_ uses a cache now. Different caching strategies
    can be chosen through the mode parameter.


======================================
Changes in 0.6.2 (released 03/07/2002)
======================================

  * The method real checked whether the referenced file really is a
    directory. This has the problem that the directory/file must exist.
    Now the directoryness of the URL itself is used.


======================================
Changes in 0.6.1 (released 03/06/2002)
======================================

  * Fixed a bug in chown: Attributes are not available for pwd.getpwnam
    () and grp.getgrnam() results under Python 2.2. Use the tuple entry
    instead.
  * Added methods mtime, atime and size to URL.


====================================
Changes in 0.6 (released 03/05/2002)
====================================

  * Now all arguments for walk default to False.
  * Added new convenience methods walkfiles and walkdirs.
  * An URL can now be iterated. This is equivalent to walk(dirsbefore=
    True, files=True).
  * Many functions from os and os.path have been added as methods to
    ll.url. This was inspired by Jason Orendorff's path module.
  * The method import_ is now available in the URL class too.
  * When Python 2.3 is used timestamp will now be datetime.datetime
    objects and mx.DateTime is no longer required. With Python 2.2
    mx.DateTime will still be used.


======================================
Changes in 0.5.1 (released 01/07/2002)
======================================

  * Added a LICENSE file.


====================================
Changes in 0.5 (released 11/14/2002)
====================================

  * WriteResource has been largely rewritten to elminate the overhead
    of calls the write. Access to properties might be a little slower
    now, because WriteResource has been optimized for maximum writing
    speed.
  * Added source code encoding statements to the Python files.


======================================
Changes in 0.4.3 (released 11/11/2002)
======================================

  * Fixed a refcounting leak in the new version of _normalizepath.


======================================
Changes in 0.4.2 (released 11/08/2002)
======================================

  * _normalizepath has been reimplemented in C for performance reasons.


======================================
Changes in 0.4.1 (released 10/29/2002)
======================================

  * ReadResource and WriteResource now have a method import_, that
    imports the file as a Python module (ignoring the file extension).


====================================
Changes in 0.4 (released 10/18/2002)
====================================

  * Added a HOWTO file.
  * Made the docstrings compatible with XIST 2.0.
  * The imagesize property now raises an IOError if the PIL is not
    available.


======================================
Changes in 0.3.1 (released 09/09/2002)
======================================

  * WriteResource will now generate an empty file, even if write is
    never called. This is checked in close.
  * WriteResource gained a destructor that will call close.


====================================
Changes in 0.3 (released 08/27/2002)
====================================

  * url has been moved to the ll package.


====================================
Changes in 0.2 (released 06/18/2002)
====================================

  * _escape now always uses unicode strings. 8bit strings will be
    converted to unicode before the UTF-8 version will be encoded.
  * _unescape now always emits unicode strings. If the UTF-8 decoding
    does not work, the system default encoding will be tried, and
    finally Latin-1 will be used.
  * _escape and _unescape have been rewritten in C for performance
    reasons.


======================================
Changes in 0.1.8 (released 05/07/2002)
======================================

  * Illegal % escapes now only issue a warning and will be used
    literally when the warning framework doesn't raise an exception.


======================================
Changes in 0.1.7 (released 04/30/2002)
======================================

  * Removed the illegal scheme handling change from 0.1.6 again. Now
    this has to be done before constructing an URL.


======================================
Changes in 0.1.6 (released 04/26/2002)
======================================

  * Now when the parser discovers an illegal scheme, you get another
    chance: Beginning whitespace will be stripped and it will be
    retried.


======================================
Changes in 0.1.5 (released 04/25/2002)
======================================

  * Fixed a bug in __div__: Now URL("http://foo/bar")/"/baz" works.


======================================
Changes in 0.1.4 (released 04/15/2002)
======================================

  * When assigning to the url property, the scheme will now only be set
    when it consists of legal characters. This means that parsing /
    foo.php?x=http://www.bar.com won't try to set a scheme /foo.php?x=
    http, but will use an empty scheme.


======================================
Changes in 0.1.3 (released 04/09/2002)
======================================

  * Make ext and file work with opaque URLs.
  * Forgot the make resdata assignable. Fixed.
  * Now the scheme to be used can be specified for the various filename
    functions.
  * Added a method withFragment that returns a copy of the URL with a
    new fragment.
  * Use the email package instead of rfc822 for formatdate.
  * No longer quote [ and ] to be compatible with the ezt templates
    from ViewCVS.
  * When joining URLs the right hand URL no longer inherits the scheme,
    if it has not scheme, but the path is absolute, i.e.

        >>> url.URL("root:foo.html")/url.URL("/cgi-bin/")
        URL('/cgi-bin/')


======================================
Changes in 0.1.2 (released 03/26/2002)
======================================

  * Fixed a bug in URL.__eq__ and URL.__hash__: query and fragment were
    not used. This has been fixed.


======================================
Changes in 0.1.1 (released 03/20/2002)
======================================

  * Fixed a bug in ReadResource.contentlength, which tried to convert
    the stat result to a DateTime object.


====================================
Changes in 0.1 (released 03/18/2002)
====================================

  * Initial release
