Refactor constructor of class MetadataCachingStore, to use an instance of Cache instead of MPLRUCache, as no entries are deleted from the cache, since all entries are non dirty anyway
Modify methods get_file, store_file, store_fileobject, create_directory, duplicate, move, get_modified, get_directory_listing, get_bytes, exists, is_dir of class MetadataCachingStore, to remove the side-effect of removing expired cache entries from the metadata cache
Modify method get_metadata of class MetadataCachingStore, to remove expired entries from time to time
Add method clean_expired_cache_entries to class MetadataCachingStore, so that the user may clean expired cache entries when he pleases
Bugfix method move of class MetadataCachingStore, retrieve correct entry from matadata cache otherwise a KeyError might be raised
Modify method get_directory_listing of class MetadataCachingStore, to make it slightly faster when used with many entries in cache
Modify method get_directory_listing of class MetadataCachingStore, to cache that the path is a directory
Modify methods get_metadata, get_bytes, and exists of class MetadataCachingStore, to remove metadata cache entry if it does not exist at the storage provider
Bugfix method get_metadata of class MetadataCachingStore, add retrieved item to parent directory listing
Refactor class MetadataCachingStore, to remove unused variable
Refactor method create_directory of class MetadataCachingStore, to explicitly catch and reraise AlreadyExists error, to make program flow more explicit
Refactor class MetadataCachingStore, remove active string formatting in logging statement
Bugfix methode get_file of class MetadataCachingStore, to remove file from parent directory listing if it does not exist
Modify methods rename, and unlink of class ConfigurablePyFuseBox, to give fusermount time to accomplish graceful termination before trying to kill the process; subprocess.Popen does not wait for it to complete otherwise