@@ -248,7 +248,7 @@ def clear_cache(func):
248248 """
249249def clear_cache_if_not_raised (self ,* args ,** kwargs ):
250250rval = func (self ,* args ,** kwargs )
251- del ( self .entries )
251+ self ._delete_entries_cache ( )
252252return rval
253253
254254# END wrapper method
@@ -345,6 +345,15 @@ def path(self):
345345 """
346346return self ._file_path
347347
348+ def _delete_entries_cache (self ):
349+ """Safely clear the entries cache so it can be recreated"""
350+ try :
351+ del (self .entries )
352+ except AttributeError :
353+ # fails in python 2.6.5 with this exception
354+ pass
355+ # END exception handling
356+
348357@classmethod
349358def _read_entry (cls ,stream ):
350359"""Return: One entry of the given stream"""
@@ -774,7 +783,7 @@ def update(self):
774783 Returns
775784 self
776785 """
777- del ( self .entries )
786+ self ._delete_entries_cache ()
778787# allows to lazily reread on demand
779788return self
780789
@@ -937,7 +946,7 @@ def add(self, items, force=True, fprogress=lambda *args: None):
937946self ._flush_stdin_and_wait (proc ,ignore_stdout = True )# ignore stdout
938947
939948# force rereading our entries once it is all done
940- del ( self .entries )
949+ self ._delete_entries_cache ()
941950entries_added .extend (self .entries [(f ,0 )]for f in added_files )
942951# END path handling
943952