Change some fileutils methods to use new-style exceptions
Use self._transport instead of obtaining the transport from self._client in a needlessly convoluted manner
Redesign of SSHFile: track an underlying SSHConnection that has a __del__ that disconnects its transport. SSHFiles are now automatically disconnected on garbage collection.

Also rename SSHFile.connect_with_password to SSHFile.connect and teach it to authenticate using ~/.ssh/id_rsa, and still create SSHFile even when paramiko's missing.
Make a base class, BaseFile, which all of the interface classes subclass
Teach URL to understand ssh:// URLs and return SSHFile objects
Also make URL act like File if the URL doesn't have a scheme or if it's exactly one letter long (like a Windows path)
Update documentation
Make SSHConnection private for now
Two bugfixes, including a fix for create_folder(recursive=True)
Fix "DeprecationWarning: object.__new__() takes no parameters" when constructing URL instances
Docstring changes
Python 2.6 compatibility fixes
Merge the various interface classes into BaseFile.

Having separate classes for each set of capabilities proved to be more confusing than useful, so I'm doing away with it. I've also scrapped having the interfaces be ABCs; they'll instead simply raise NotImplementedError, so subclasses can implement what they want and no more.

Also fix setup.py to notice that we're a package now instead of a module. I'll be uploading a new version of fileutils soon.
Add a skeleton fileutils.zip module, a module that will shortly provide a fileutils wrapper around zip files
Documentation changes, allow sftp:// as an alias for ssh:// in URL, and make SSHFile.__enter__/__exit__ reentrant across all SSHFile instances sharing the same underlying connection
Work around a Python 2.6.1 bug with urlparse

On Python versions 2.6.1 and earlier, urlparse.urlparse parses URLs with unknown schemes incorrectly, like so:

>>> urlparse.urlparse("ssh://user@host/path")
ParseResult(scheme='ssh', netloc='', path='//user@host/path', params='', query='', fragment='')

Work around this in URL.__new__.

I'll probably add a corresponding workaround to URL.__init__ later, but as only known schemes can be accessed anyway, this isn't nearly as high of a priority.
...ditto
Notes on fileutils3
Initial work on FileSystem, MountPoint, and local subclasses
Add support for calculating disk usage on POSIX-based systems