Bugfix methods get_metadata,  get_directory_listing, and get_bulk_metadata of class TinyDAV, to append a trailing slash to the path, as seems to be required for webdav collections - in the case of get_metadata it might as well be directory instead of a file directory; the server will then order a redirect to the directory which must be handled accordingly
Bugfix methods get_overall_space, and get_used_space, to be able to deal with empty root
Bugfix methods get_directory_listing, and get_bulk_metadata, not to include root directory in result
Modify class SugarsyncStore, to get a partial directory listing to discern if a filesystem item exists; the range of the partial listing is guessed according to a cached ordered directory listing
Add parameters index and max to method get_dir_listing of class SugarsyncClient, to allow partial listings
Bugfix method store_fileobject of class WebdavStore, to allow to pass in fileobjects with an undefined name attribute
Bugfix methods get_overall_space, and get_used_space of class TinyDAVClient, catch exception in case the response cannot be parsed
Modify class WriteWorker, to use a process pool instead of instantiating a new process for every file

Modify setup.py, to include dependency psutil
Add methods kill, and is_sleeping to class WriteWorker
Modify class StoreSyncThread, to stop upload threads if they do nothing instead of stopping threads that are slow
Add Feature Adapt Upload Speed According to File Throughput
Modify class StoreSyncThread, to use fewer upload threads if the file size is large and the average upload time for single upload threads over the last ten minutes is low
Modify class StoreSyncThread, to sleep a minute between cycles if no files are to be uploaded, and otherwise wait until at least two thirds of the upload workers have finished before scheduling new workers
Modify method enqueue_lru_entries of class StoreSyncThread, to use an optimistic approach and catch a key error if the shared resource is deleted asynchronously instead of locking shared resource
Bugfix methods get_directory_listing of classes ChunkMultiprocessingCachingStore and MultiprocessingCachingStore, to remove limit of number of files that can be listed
Bugfix method get_dirty_files of class TransparentMultiprocessingCachingStore, to remove limit of number of files
Refactor class ChunkStoreSyncThread, remove unused variables
Add Feature Adapt Upload Speed According to File Throughput
Modify class ChunkStoreSyncThread, to use fewer upload threads if the file size is large and the average upload time for single upload threads over the last ten minutes is low
Modify class ChunkStoreSyncThread, to stop upload threads if they do nothing instead of stopping threads that are slow
Bugfix class ChunkStoreSyncThread
Modify method enqueue_lru_entries of class ChunkStoreSyncThread, to use an optimistic approach and catch a key error if the shared resource is deleted asynchronously instead of locking shared resource
Modify class ChunkStoreSyncThread, to sleep a minute between cycles if no files are to be uploaded, and otherwise wait until at least two thirds of the upload workers have finished before scheduling new workers
Bugfix methods get_overall_space, and get_used_space of class TinyDAVClient, introduced with commit 8365b37, to be able to deal with empty root